A small TypeScript library that lets you evaluate code in a sandboxed environment everywhere.
Repository
Current version released
2 years ago
Versions
tio.js
A small TypeScript library that lets you evaluate code in a sandboxed environment everywhere.
Installation
Node.js
In your shell:
$ npm install tio.js
In your code:
import tio from 'tio.js'
Deno
In your code:
import tio from 'npm:tio.js'
Bun
In your shell:
$ bun install tio.js
In your code:
import tio from 'tio.js'
Examples
Getting a list of available languages
console.log(tio.languages)
Evaluating a string
Evaluating a string is really simple.
// Evaluate a code (Node.js is the default language).
let response = await tio('console.log("Hello, World!");')
console.log(response)
// Evaluate a code from another programming language (e.g. Python).
response = await tio('print("Hello, World!")', 'python3')
console.log(response)
Console output (for the first console.log
):
{
output: 'Hello, World!\n',
language: 'javascript-node',
timedOut: false,
realTime: 0.069,
userTime: 0.069,
sysTime: 0.069,
CPUshare: 99.99,
exitCode: 0
}
Setting a default language
Set a default language so you donāt have to repeat the same arguments all over again.
tio.defaultLanguage = 'python3'
const response = await tio('print("Hello, World!")')
console.log(response)
Timeouts
Use this to contain scripts that runs longer than it shouldāve been. (e.g. infinite loop)
// Make the response time out after waiting for 10000 ms (10 seconds).
const response = await tio('for (;;);', 'javascript-node', 10000)
console.log(response)
Console output:
{
output: 'Request timed out after 10000ms',
language: 'javascript-node',
timedOut: true,
realTime: 10,
userTime: 10,
sysTime: 10,
CPUshare: 0,
exitCode: 0
}
Setting a default timeout
Just like setting a default language beforehand, you can set default timeouts so you donāt have to enter the same arguments again.
tio.defaultTimeout = 10000
const response = await tio('for (;;);', 'javascript-node')
console.log(response) // Does the same as the example before.