You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vizality/renderer/src/compilers/TSX.js

24 lines
529 B

const { readFileSync } = require('fs');
const sucrase = require('sucrase');
const Compiler = require('./Compiler');
/**
* TSX compiler
* @extends {Compiler}
*/
module.exports = class TSX extends Compiler {
_compile () {
const tsx = readFileSync(this.file, 'utf8');
return sucrase.transform(tsx, {
transforms: [ 'jsx', 'imports', 'typescript' ],
enableLegacyBabel5ModuleInterop: true,
filePath: this.file
}).code;
}
get _metadata () {
return `sucrase ${sucrase.getVersion()}`;
}
};