tio.js
Version:
A small TypeScript library that lets you evaluate code in a sandboxed environment everywhere with TryItOnline.
709 lines (705 loc) • 10.2 kB
TypeScript
export type TioLanguage =
| '05ab1e'
| '1l-a'
| '1l-aoi'
| '2dfuck'
| '2l'
| '2sable'
| '33'
| '3var'
| '4'
| '7'
| '99'
| 'a-gram'
| 'a-pear-tree'
| 'abc'
| 'abc-assembler'
| 'accbb'
| 'aceto'
| 'actually'
| 'ada-gnat'
| 'adapt'
| 'addpp'
| 'adjust'
| 'agda'
| 'agony'
| 'ahead'
| 'aheui'
| 'alchemist'
| 'algol68g'
| 'alice'
| 'alice-bob'
| 'aliceml'
| 'alphabeta'
| 'alphabetti-spaghetti'
| 'alphuck'
| 'alumin'
| 'amnesiac-from-minsk'
| 'ante'
| 'anyfix'
| 'apl-dyalog'
| 'apl-dyalog-classic'
| 'apl-dyalog-extended'
| 'apl-dzaima'
| 'apl-ngn'
| 'appleseed'
| 'arble'
| 'archway'
| 'archway2'
| 'arcyou'
| 'arnoldc'
| 'asciidots'
| 'asperix'
| 'assembly-as'
| 'assembly-fasm'
| 'assembly-gcc'
| 'assembly-jwasm'
| 'assembly-nasm'
| 'ats2'
| 'attache'
| 'aubergine'
| 'awk'
| 'axo'
| 'backhand'
| 'bash'
| 'bc'
| 'bctbww'
| 'bctbww2'
| 'beam'
| 'bean'
| 'beanshell'
| 'beatnik'
| 'beeswax'
| 'befunge'
| 'befunge-93-fbbi'
| 'befunge-93-mtfi'
| 'befunge-93-pyfunge'
| 'befunge-96-mtfi'
| 'befunge-97-mtfi'
| 'befunge-98'
| 'befunge-98-pyfunge'
| 'bit'
| 'bitbitjump'
| 'bitch'
| 'bitch-bith'
| 'bitch-shifty'
| 'bitchanger'
| 'bitcycle'
| 'bitwise'
| 'blak'
| 'blc'
| 'boo'
| 'boolfuck'
| 'bosh'
| 'bot-engine'
| 'brachylog'
| 'brachylog2'
| 'bracmat'
| 'braille'
| 'brain-flak'
| 'brainbash'
| 'brainbool'
| 'brainflump'
| 'brainfuck'
| 'braingolf'
| 'brainhack'
| 'brainlove'
| 'brainspace'
| 'brat'
| 'brian-chuck'
| 'broccoli'
| 'bubblegum'
| 'burlesque'
| 'buzzfizz'
| 'bwfuckery'
| 'c-clang'
| 'c-gcc'
| 'c-tcc'
| 'caboose'
| 'cakeml'
| 'calc2'
| 'canvas'
| 'cardinal'
| 'carol-dave'
| 'carrot'
| 'cascade'
| 'catholicon'
| 'cauliflower'
| 'ceres'
| 'ceylon'
| 'chain'
| 'charm'
| 'chef'
| 'changeling'
| 'chapel'
| 'charcoal'
| 'check'
| 'checkedc'
| 'cheddar'
| 'chip'
| 'cil-mono'
| 'cinnamon-gum'
| 'cixl'
| 'cjam'
| 'clam'
| 'clean'
| 'clips'
| 'clisp'
| 'clojure'
| 'cobol-gnu'
| 'cobra'
| 'coconut'
| 'coffeescript'
| 'coffeescript2'
| 'commata'
| 'commentator'
| 'commercial'
| 'condit'
| 'convex'
| 'cood'
| 'corea'
| 'cow'
| 'cpp-clang'
| 'cpp-gcc'
| 'cpy'
| 'cquents'
| 'crayon'
| 'cryptol'
| 'crystal'
| 'cs-core'
| 'cs-csc'
| 'cs-csi'
| 'cs-mono'
| 'cs-mono-shell'
| 'csl'
| 'cubically'
| 'cubix'
| 'curlyfrick'
| 'curry-pakcs'
| 'curry-sloth'
| 'cy'
| 'cyclone'
| 'd'
| 'd2'
| 'dafny'
| 'dart'
| 'dash'
| 'dc'
| 'deadfish-'
| 'decimal'
| 'delimit'
| 'deorst'
| 'dirty'
| 'detour'
| 'dg'
| 'dobela'
| 'dobela-dobcon'
| 'dodos'
| 'dreaderef'
| 'drive-in-window'
| 'dscript'
| 'dstack'
| 'eacal'
| 'ec'
| 'ecndpcaalrlp'
| 'ecpp-c'
| 'ecpp-cpp'
| 'dyvil'
| 'ed'
| 'egel'
| 'element'
| 'elf'
| 'elixir'
| 'elvm-ir'
| 'emacs-lisp'
| 'emmental'
| 'emoji'
| 'emoji-gramming'
| 'emojicode'
| 'emojicode6'
| 'emojicoder'
| 'emotifuck'
| 'emotinomicon'
| 'empty-nest'
| 'enlist'
| 'erlang-escript'
| 'es'
| 'esopunk'
| 'eta'
| 'euphoria3'
| 'euphoria4'
| 'evil'
| 'explode'
| 'extended-brainfuck-type-i'
| 'extrac'
| 'face'
| 'factor'
| 'false'
| 'fantom'
| 'farnsworth'
| 'felix'
| 'fernando'
| 'feu'
| 'fimpp'
| 'fish'
| 'fish-shell'
| 'fission'
| 'fission2'
| 'flipbit'
| 'floater'
| 'flobnar'
| 'foam'
| 'focal'
| 'foo'
| 'forget'
| 'forked'
| 'forte'
| 'forth-gforth'
| 'fortran-gfortran'
| 'fourier'
| 'fractran'
| 'fs-core'
| 'fs-mono'
| 'fueue'
| 'funciton'
| 'functoid'
| 'funky'
| 'funky2'
| 'fynyl'
| 'gaia'
| 'gaotpp'
| 'gap'
| 'gema'
| 'geo'
| 'glypho'
| 'glypho-shorthand'
| 'gnuplot'
| 'go'
| 'golfish'
| 'golfscript'
| 'granule'
| 'grass'
| 'grime'
| 'groovy'
| 'gs2'
| 'gwion'
| 'hades'
| 'haskell'
| 'haskell-gofer'
| 'haskell-hugs'
| 'haskell-literate'
| 'hasm'
| 'haxe'
| 'haystack'
| 'hbcht'
| 'hdbf'
| 'hexagony'
| 'hobbes'
| 'hodor'
| 'homespring'
| 'hspal'
| 'huginn'
| 'husk'
| 'hy'
| 'i'
| 'iag'
| 'icon'
| 'idris'
| 'incident'
| 'ink'
| 'intercal'
| 'io'
| 'j'
| 'jael'
| 'jq'
| 'jx'
| 'j-uby'
| 'japt'
| 'java-jdk'
| 'java-openjdk'
| 'javascript-babel-node'
| 'javascript-node'
| 'javascript-spidermonkey'
| 'javascript-v8'
| 'jelly'
| 'jellyfish'
| 'joy'
| 'julia'
| 'julia1x'
| 'julia5'
| 'julia6'
| 'julia7'
| 'k-kona'
| 'k-ngn'
| 'k-ok'
| 'kavod'
| 'keg'
| 'kipple-cipple'
| 'klein'
| 'koberi-c'
| 'koka'
| 'kotlin'
| 'krrp'
| 'ksh'
| 'l33t'
| 'labyrinth'
| 'lean'
| 'lily'
| 'llvm'
| 'lmbm'
| 'lnusp'
| 'locksmith'
| 'logicode'
| 'lolcode'
| 'lost'
| 'lower'
| 'lua'
| 'lua-luajit'
| 'lua-openresty'
| 'ly'
| 'm'
| 'm4'
| 'machinecode'
| 'make'
| 'malbolge'
| 'malbolge-unshackled'
| 'mamba'
| 'mariolang'
| 'mascarpone'
| 'mathgolf'
| 'mathematica'
| 'mathics'
| 'matl'
| 'maverick'
| 'maxima'
| 'maybelater'
| 'memory-gap'
| 'milambda'
| 'milky-way'
| 'minefriff'
| 'minimal-2d'
| 'miniml'
| 'minkolang'
| 'mirror'
| 'momema'
| 'monkeys'
| 'moonscript'
| 'moorhens'
| 'mornington-crescent'
| 'mouse'
| 'mouse2002'
| 'mouse83'
| 'mu6'
| 'mumps'
| 'muriel'
| 'my'
| 'my-basic'
| 'nameless'
| 'nandy'
| 'nial'
| 'nikud'
| 'nim'
| 'neim'
| 'neutrino'
| 'nhohnhehr'
| 'no'
| 'noether'
| 'nqt'
| 'ntfjc'
| 'numberwang'
| 'oasis'
| 'obcode'
| 'oberon-07'
| 'object-pascal-fpc'
| 'objective-c-clang'
| 'objective-c-gcc'
| 'occam-pi'
| 'ocaml'
| 'octave'
| 'odin'
| 'ohm'
| 'ohm2'
| 'oml'
| 'ooocode'
| 'oration'
| 'ork'
| 'orst'
| 'osabie'
| 'osh'
| 'pain-flak'
| 'paradoc'
| 'parenthesis-hell'
| 'parenthetic'
| 'pari-gp'
| 'pascal-fpc'
| 'path'
| 'pbrain'
| 'perl4'
| 'perl5'
| 'perl5-cperl'
| 'perl6'
| 'perl6-niecza'
| 'phoenix'
| 'phooey'
| 'php'
| 'physica'
| 'picolisp'
| 'piet'
| 'pike'
| 'pilot-pspilot'
| 'pilot-rpilot'
| 'pingpong'
| 'pip'
| 'pixiedust'
| 'pl'
| 'pony'
| 'positron'
| 'postl'
| 'postscript-xpost'
| 'powershell'
| 'powershell-core'
| 'prelude'
| 'premier'
| 'preproc'
| 'prolog-ciao'
| 'prolog-swi'
| 'proton'
| 'proton2'
| 'ps-core'
| 'pure'
| 'purescript'
| 'purple'
| 'pushy'
| 'puzzlang'
| 'pyke'
| 'pylons'
| 'pyn-tree'
| 'pyon'
| 'pyramid-scheme'
| 'pyret'
| 'pyt'
| 'pyth'
| 'python1'
| 'python2'
| 'python2-cython'
| 'python2-iron'
| 'python2-jython'
| 'python2-pypy'
| 'python3'
| 'python38pr'
| 'python3-cython'
| 'python3-pypy'
| 'python3-stackless'
| 'qqq'
| 'qs-core'
| 'quadr'
| 'quadrefunge-97-mtfi'
| 'quads'
| 'quarterstaff'
| 'quintefunge-97-mtfi'
| 'r'
| 'racket'
| 'rad'
| 'rail'
| 'random-brainfuck'
| 'rapira'
| 're-direction'
| 'reason'
| 'rebol'
| 'rebol3'
| 'recursiva'
| 'red'
| 'reng'
| 'reregex'
| 'res'
| 'resplicate'
| 'reticular'
| 'retina'
| 'retina1'
| 'return'
| 'rexx'
| 'ring'
| 'rk'
| 'rockstar'
| 'roda'
| 'roop'
| 'ropy'
| 'rotor'
| 'rprogn'
| 'rprogn-2'
| 'ruby'
| 'runic'
| 'rust'
| 'rutger'
| 'sad-flak'
| 'sakura'
| 'sbf'
| 'scala'
| 'scheme-chez'
| 'scheme-chicken'
| 'scheme-gambit'
| 'scheme-guile'
| 'sed'
| 'sed-gnu'
| 'seed'
| 'septefunge-97-mtfi'
| 'seriously'
| 'sesos'
| 'set'
| 'sexefunge-97-mtfi'
| 'sfk'
| 'shapescript'
| 'shnap'
| 'shortc'
| 'shove'
| 'shp'
| 'shtriped'
| 'silos'
| 'sidef'
| 'silberjoder'
| 'simplefunge'
| 'simplestack'
| 'simplex'
| 'simula'
| 'sisal'
| 'sisi'
| 'slashes'
| 'smbf'
| 'sml-mlton'
| 'smol'
| 'snails'
| 'snobol4'
| 'snowman'
| 'snusp'
| 'snusp-bloated'
| 'snuspi'
| 'somme'
| 'spaced'
| 'spim'
| 'spl'
| 'spoon'
| 'sqlite'
| 'squirrel'
| 'stackcats'
| 'stacked'
| 'starfish'
| 'starry'
| 'stax'
| 'stencil'
| 'stones'
| 'str'
| 'straw'
| 'subskin'
| 'sumerian'
| 'supermariolang'
| 'superstack'
| 'surface'
| 'swap'
| 'swift4'
| 'syms'
| 'symbolic-python'
| 'taco'
| 'tampio'
| 'tampioi'
| 'tamsin'
| 'tapebagel'
| 'taxi'
| 'tcl'
| 'tcsh'
| 'templat'
| 'templates'
| 'thing'
| 'threead'
| 'thue'
| 'thutu'
| 'tidy'
| 'tincan'
| 'tinybf'
| 'tinylisp'
| 'tir'
| 'tis'
| 'toi'
| 'tmbww'
| 'transcript'
| 'trefunge-97-mtfi'
| 'trefunge-98-pyfunge'
| 'triangular'
| 'triangularity'
| 'trigger'
| 'triple-threat'
| 'trumpscript'
| 'turtled'
| 'typescript'
| 'ubasic'
| 'underload'
| 'unefunge-97-mtfi'
| 'unefunge-98-pyfunge'
| 'unicat'
| 'unlambda'
| 'uno'
| 'unreadable'
| 'ursala'
| 'v'
| 'v-fmota'
| 'vala'
| 'var'
| 'vb-core'
| 'verbosity'
| 'verbosity2'
| 'versert'
| 'visual-basic-net-mono'
| 'visual-basic-net-vbc'
| 'vitsy'
| 'vlang'
| 'vsl'
| 'wasm'
| 'waterfall'
| 'whirl'
| 'whispers'
| 'whispers2'
| 'whitespace'
| 'width'
| 'wierd'
| 'wise'
| 'woefully'
| 'wren'
| 'wsf'
| 'wumpus'
| 'wyalhein'
| 'xeec'
| 'xeraph'
| 'yaball'
| 'yabasic'
| 'yash'
| 'ybc'
| 'yup'
| 'z3'
| 'z80golf'
| 'zephyr'
| 'zig'
| 'zkl'
| 'zoidberg'
| 'zsh'
export interface TioOptions {
language?: TioLanguage
timeout?: number
cflags?: string[]
argv?: string[]
}
export interface TioResponse {
readonly output: string
readonly timedOut: boolean
readonly realTime: number
readonly userTime: number
readonly sysTime: number
readonly CPUshare: number
readonly exitCode: number
}
export type Tio = {
(code: string, options?: TioOptions): Promise<TioResponse>
defaultLanguage: TioLanguage
defaultTimeout: number
defaultCflags: string[]
defaultArgv: string[]
refreshTimeout: number
}