UNPKG

@tsukiroku/tiny

Version:
41 lines (40 loc) 1.33 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const evaluator_1 = require("./tiny/evaluator"); const index_1 = __importDefault(require("./index")); const express_1 = __importDefault(require("express")); const app = (0, express_1.default)(); app.listen(5050, () => console.log('http://localhost:5050')); app.get('/eval', (req, res) => { res.header('Content-Type', 'application/json'); res.header('Access-Control-Allow-Origin', '*'); res.json({ result: [], errors: [], }); }); app.get('/eval/:code', (req, res) => { const result = []; const errors = []; const tiny = new index_1.default(req.params.code, { useStdLibAutomatically: true, allowEval: true, stderrPrefix: false, stderrColor: false, }) .setStdout((x) => result.push(x)) .setStderr((x) => errors.push(x)) .setStdin(() => evaluator_1.NULL); const parsed = tiny.parseProgram(); tiny.evalProgram(parsed); res.header('Content-Type', 'application/json'); res.header('Access-Control-Allow-Origin', '*'); res.json({ result, errors, ast: parsed, }); });