Vm2: Soporta TypeScript.

Creado en 12 oct. 2020  ·  5Comentarios  ·  Fuente: patriksimek/vm2

Hola, ¿algún plan para admitir mecanografiado?
O tal vez hay alguien que usa el compilador ts personalizado en producción, si es así, ¿le gustaría compartirlo?

stale

Comentario más útil

¿Ha intentado utilizar la API del compilador de TypeScript ? Proporciona métodos para transformar el código TypeScript en código JavaScript de forma dinámica. Lo he usado antes y funciona muy bien.

const {VM} = require('vm2');
const ts = require('typescript');

const vm = new VM();

const res = ts.transpile(`
    let x: number = 3;
    x + 5;
`);

console.log(vm.run(res)); // 8

Todos 5 comentarios

Definitivamente me gustaría ver esto, ya que estaba tratando de hacer un bot de discordia que ejecute código mecanografiado, pero no pude encontrar otra biblioteca de ejecución mecanografiada que admita sandboxing y esta es probablemente la mejor que existe.
EDITAR: parece que esta biblioteca usa https://nodejs.org/api/vm.html detrás de escena, que tampoco parece ser compatible con el mecanografiado.

¿Ha intentado utilizar la API del compilador de TypeScript ? Proporciona métodos para transformar el código TypeScript en código JavaScript de forma dinámica. Lo he usado antes y funciona muy bien.

const {VM} = require('vm2');
const ts = require('typescript');

const vm = new VM();

const res = ts.transpile(`
    let x: number = 3;
    x + 5;
`);

console.log(vm.run(res)); // 8

Oh, por alguna razón no pensé en usarlo en combinación con vm2 lol. Intentaré esto, gracias.

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

También debería ser posible establecer ts.transpile como compilador.
`` JS
const {VM} = require ('vm2');
const ts = require ('mecanografiado');

const vm = nueva VM ({compilador: ts.transpile});

console.log (vm.run ( let x: number = 3; x + 5; )); // 8

¿Fue útil esta página
0 / 5 - 0 calificaciones