Evaluate any code in any language
npm install tryitonline
Try It Online is a family of online interpreters for an evergrowing list of practical and recreational programming languages. This module - tryitonline
- is an API wrapper for it.
You can view some examples here.
npm install tryitonline
yarn add tryitonline
pnpm add tryitonline
const tio = require('tryitonline');
// OR
import tio from 'tryitonline';
tryitonline
uses the new Node.js fetch
, in order to use this in older versions of Node.js, you must polyfill the fetch API.
For example using cross-fetch:
require('cross-fetch/polyfill');
Use the languages
method to get a list of programming languages that Try It Online provides.
tio.languages(): Promise<Language[]>;
TypeScript Interfaces
interface Language {
/** ID */
id: string;
/** Name */
name: string;
/** Language URL */
link: string;
/** Categories */
categories: Category[];
/** Encoding */
encoding: Encoding;
/** Method of updating */
update: Update;
/** Examples for how to use this language */
examples: EvaluateOptions & { expected: string }[];
/** Unmask */
unmask: Unmask[];
/** The language this language piggybacks */
piggyback?: string;
/** Short ID for this language */
prettify?: string;
/** Tab */
tab?: string;
}
The evaluate
method is used to evaluate a piece of code, by sending a request to Try It Online.
tio.evaluate(options: EvaluateOptions, timeout?: number): Promise<EvaluateResult>
TypeScript Interfaces
interface EvaluateOptions {
/** Language ID */
language: string;
/** Compiler flags */
flags?: string[];
/** Command-line options */
options?: string[];
/** Driver */
driver?: string[];
/** Code */
code: string;
/** Input */
input?: string;
/** Arguments */
args?: string[];
}
interface EvaluateResult {
/** Evaluation status */
status: ResultStatus.Passed | ResultStatus.TimedOut;
/** Language */
language: Language;
/** Output */
output: string;
/** Debug log */
debug: string;
/** Warnings */
warnings: string;
}
The constants
function is used to change things such as the TIO url and default timeout.
tio.constants(options: Constants): void
TypeScript Interfaces
interface Constants {
/** The TIO url to use */
baseUrl?: string;
/** The default max time to evaluate */
defaultTimeout?: number;
/** How often to reprepare */
refreshInterval?: number;
}