sucrase
Version:
Super-fast alternative to Babel for when you can target modern JS runtimes
42 lines (41 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-ignore: no types available.
const pirates = require("pirates");
const index_1 = require("./index");
function addHook(extension, transforms) {
pirates.addHook((code, filename) => {
try {
return index_1.transform(code, { transforms });
}
catch (e) {
// eslint-disable-next-line no-console
console.error(`Error processing file ${filename}`);
throw e;
}
}, { exts: [extension] });
}
exports.addHook = addHook;
function registerJS() {
addHook(".js", ["imports", "flow", "jsx", "react-display-name"]);
}
exports.registerJS = registerJS;
function registerJSX() {
addHook(".jsx", ["imports", "flow", "jsx", "react-display-name"]);
}
exports.registerJSX = registerJSX;
function registerTS() {
addHook(".ts", ["imports", "typescript"]);
}
exports.registerTS = registerTS;
function registerTSX() {
addHook(".tsx", ["imports", "typescript", "jsx"]);
}
exports.registerTSX = registerTSX;
function registerAll() {
registerJS();
registerJSX();
registerTS();
registerTSX();
}
exports.registerAll = registerAll;