summaryrefslogtreecommitdiff
path: root/node_modules/sucrase/dist/register.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/sucrase/dist/register.js')
-rw-r--r--node_modules/sucrase/dist/register.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/node_modules/sucrase/dist/register.js b/node_modules/sucrase/dist/register.js
new file mode 100644
index 0000000..1325f30
--- /dev/null
+++ b/node_modules/sucrase/dist/register.js
@@ -0,0 +1,88 @@
+"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }var _pirates = require('pirates'); var pirates = _interopRequireWildcard(_pirates);
+
+var _index = require('./index');
+
+
+
+
+
+
+
+
+ function addHook(
+ extension,
+ sucraseOptions,
+ hookOptions,
+) {
+ let mergedSucraseOptions = sucraseOptions;
+ const sucraseOptionsEnvJSON = process.env.SUCRASE_OPTIONS;
+ if (sucraseOptionsEnvJSON) {
+ mergedSucraseOptions = {...mergedSucraseOptions, ...JSON.parse(sucraseOptionsEnvJSON)};
+ }
+ return pirates.addHook(
+ (code, filePath) => {
+ const {code: transformedCode, sourceMap} = _index.transform.call(void 0, code, {
+ ...mergedSucraseOptions,
+ sourceMapOptions: {compiledFilename: filePath},
+ filePath,
+ });
+ const mapBase64 = Buffer.from(JSON.stringify(sourceMap)).toString("base64");
+ const suffix = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${mapBase64}`;
+ return `${transformedCode}\n${suffix}`;
+ },
+ {...hookOptions, exts: [extension]},
+ );
+} exports.addHook = addHook;
+
+ function registerJS(hookOptions) {
+ return addHook(".js", {transforms: ["imports", "flow", "jsx"]}, hookOptions);
+} exports.registerJS = registerJS;
+
+ function registerJSX(hookOptions) {
+ return addHook(".jsx", {transforms: ["imports", "flow", "jsx"]}, hookOptions);
+} exports.registerJSX = registerJSX;
+
+ function registerTS(hookOptions) {
+ return addHook(".ts", {transforms: ["imports", "typescript"]}, hookOptions);
+} exports.registerTS = registerTS;
+
+ function registerTSX(hookOptions) {
+ return addHook(".tsx", {transforms: ["imports", "typescript", "jsx"]}, hookOptions);
+} exports.registerTSX = registerTSX;
+
+ function registerTSLegacyModuleInterop(hookOptions) {
+ return addHook(
+ ".ts",
+ {
+ transforms: ["imports", "typescript"],
+ enableLegacyTypeScriptModuleInterop: true,
+ },
+ hookOptions,
+ );
+} exports.registerTSLegacyModuleInterop = registerTSLegacyModuleInterop;
+
+ function registerTSXLegacyModuleInterop(hookOptions) {
+ return addHook(
+ ".tsx",
+ {
+ transforms: ["imports", "typescript", "jsx"],
+ enableLegacyTypeScriptModuleInterop: true,
+ },
+ hookOptions,
+ );
+} exports.registerTSXLegacyModuleInterop = registerTSXLegacyModuleInterop;
+
+ function registerAll(hookOptions) {
+ const reverts = [
+ registerJS(hookOptions),
+ registerJSX(hookOptions),
+ registerTS(hookOptions),
+ registerTSX(hookOptions),
+ ];
+
+ return () => {
+ for (const fn of reverts) {
+ fn();
+ }
+ };
+} exports.registerAll = registerAll;