Вы можете создать Typescript как исполняемый файл, выполнив что-то вроде -
const executableTypescript = new Function(typescriptDataAsText);
Код машинописного текста в строке уже будет скомпилирован.
Чтобы выполнить его, вы просто вызываете вновь созданную функцию, например -
executableTypescript();
Проверьте, запустив приведенный ниже фрагмент кода, что код Typescript для записи сообщения в переменную выполняется.
Примечание: Для вашего случая, если включены такие данные Typescript modelData
и более, они должны быть частью нового модуля, поскольку в нем есть операторы импорта, и они должны находиться поверхмодуль.
var path = "/filepath"
var data = [
{
name: "IParam"
},
{
name: "IError"
}
]
function createInterfaces(path, data){
const imports = data.map(d => d.name).join(', ');
return `import { ${imports} } from '${path}';\n\n`;
}
function buildTypescript(data) {
// To include this data as part of your text, make sure that it's a part of a new module
const modelData = createInterfaces(path,data);
const text = `
let message = "Typecript executed";\n\n
console.log(message)`;
return text;
}
const typescriptDataAsText = buildTypescript(data);
const executableTypescript = new Function(typescriptDataAsText);
executableTypescript()