Files
papercrate/frontend/tests/ts-register.js
T
2025-11-13 01:07:55 +01:00

23 lines
581 B
JavaScript

const { readFileSync } = require('node:fs');
const ts = require('typescript');
const compilerOptions = {
module: ts.ModuleKind.CommonJS,
target: ts.ScriptTarget.ES2022,
jsx: ts.JsxEmit.ReactJSX,
esModuleInterop: true,
};
const compileTs = (module, filename) => {
const source = readFileSync(filename, 'utf8');
const { outputText } = ts.transpileModule(source, {
compilerOptions,
fileName: filename,
reportDiagnostics: false,
});
module._compile(outputText, filename);
};
require.extensions['.ts'] = compileTs;
require.extensions['.tsx'] = compileTs;