Detalhes do pacote

jintr

LuanRT170.6kMIT3.3.1

A tiny JavaScript interpreter written in TypeScript.

js, vm, typescript, javascript

readme (leia-me)

Jinter

A tiny JavaScript interpreter written in TypeScript

Tests
> Note: This project was originally developed for use in YouTube.js. ## Table of Contents - Installation - Usage - API - evaluate(input: string) - visitor - scope - License ## Installation sh npm install jintr ## Usage Execute some JavaScript code: ts // const Jinter = require('jintr').default; import { Jinter } from 'jintr'; const code = ` function sayHiTo(person) { console.log('Hi ' + person + '!'); } sayHiTo('mom'); ` const jinter = new Jinter(); jinter.evaluate(code); --- Inject your own functions, objects, etc: ts import { Jinter } from 'jintr'; const jinter = new Jinter(); const code = ` console.log(new SomeClass().a); console.log('hello'.toArray()); function myFn() { console.log('[myFn]: Who called me?'); } myFn(); `; class SomeClass { constructor() { this.a = 'this is a test'; } } jinter.defineObject('SomeClass', SomeClass); // Ex: str.toArray(); jinter.visitor.on('toArray', (node, visitor) => { if (node.type === 'CallExpression' && node.callee.type === 'MemberExpression') { const obj = visitor.visitNode(node.callee.object); return obj.split(''); } }); // Intercept function calls jinter.visitor.on('myFn', (node) => { if (node.type == 'CallExpression') console.info('myFn was called!'); return '__continue_exec'; }); jinter.evaluate(code); For more examples see /test and /examples. ## API Jinter() evaluate(input: string) visitor scope ### evaluate(input: string) Evaluates the given JavaScript code. ### visitor The node visitor. This is responsible for walking the AST and executing the nodes. ### scope Represents the global scope of the program. ## License Distributed under the MIT License.

(back to top)