Vm2: Prise en charge de TypeScript.

Créé le 12 oct. 2020  ·  5Commentaires  ·  Source: patriksimek/vm2

Bonjour, avez-vous l'intention de prendre en charge le script dactylographié ?
Ou peut-être y a-t-il quelqu'un qui utilise le compilateur ts personnalisé en production, si oui, aimeriez-vous le partager ?

stale

Commentaire le plus utile

Avez-vous essayé d'utiliser l' API du compilateur TypeScript ? Il fournit des méthodes pour transformer dynamiquement le code TypeScript en code JavaScript. Je l'ai déjà utilisé et il fonctionne très 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

Tous les 5 commentaires

J'aimerais vraiment voir cela, car j'essayais de créer un bot discord qui exécute du code dactylographié, mais je n'ai pas trouvé d'autre bibliothèque d'exécution de dactylographe qui prend en charge le sandboxing et c'est probablement la meilleure qui soit.
EDIT : il semble que cette bibliothèque utilise https://nodejs.org/api/vm.html dans les coulisses, qui ne semble pas non plus prendre en charge le tapuscrit.

Avez-vous essayé d'utiliser l' API du compilateur TypeScript ? Il fournit des méthodes pour transformer dynamiquement le code TypeScript en code JavaScript. Je l'ai déjà utilisé et il fonctionne très 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, pour une raison quelconque, je n'ai pas pensé à l'utiliser en combinaison avec vm2 lol. Je vais essayer ça, merci.

Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.

Il devrait également être possible de définir ts.transpile comme compilateur.
```JS
const {VM} = require('vm2');
const ts = require('typescript');

const vm = nouvelle VM({compilateur : ts.transpile});

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

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

unxcepted picture unxcepted  ·  11Commentaires

patriksimek picture patriksimek  ·  5Commentaires

ozsay picture ozsay  ·  5Commentaires

somebody1234 picture somebody1234  ·  4Commentaires

wojpawlik picture wojpawlik  ·  4Commentaires