A tiny JavaScript interpreter written in TypeScript.
npm install jintr[actions]: https://github.com/LuanRT/Jinter/actions
A tiny JavaScript interpreter written in TypeScript
![Tests][actions]
> Note: This project was originally developed for use in YouTube.js.
- Installation
- Usage
- API
- evaluate(input: string)
- visitor
- scope
- License
sh
npm install jintr
`Usage
Execute some JavaScript code:
`ts
// const Jinter = require('jintr').default;
import { Jinter } from 'jintr';const code =
const jinter = new Jinter();
jinter.evaluate(code);
`
---
Inject your own functions, objects, etc:
`ts
import { Jinter } from 'jintr';const jinter = new Jinter();
const code =
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.