Skip to content

A full feature API wrapper for Try It Online (tio.run).

Notifications You must be signed in to change notification settings

apteryxxyz/tryitonline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Evaluate any code in any language
npm install tryitonline
package version total downloads
apteryxxyz followers tryitonline repo stars

🤔 What is 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.

🏓 Table Of Contents

📩 Installation

npm install tryitonline
yarn add tryitonline
pnpm add tryitonline

🍕 API

const tio = require('tryitonline');
// OR
import tio from 'tryitonline';

🟢 Node < 17.5

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');

<tio>.languages

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;
}

<tio>.evaluate

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;
}

<tio>.constants

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;
}

About

A full feature API wrapper for Try It Online (tio.run).

Resources

Stars

Watchers

Forks