| 1 | "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);
|
|---|
| 2 |
|
|---|
| 3 | var _index = require('./index');
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 | function addHook(
|
|---|
| 13 | extension,
|
|---|
| 14 | sucraseOptions,
|
|---|
| 15 | hookOptions,
|
|---|
| 16 | ) {
|
|---|
| 17 | let mergedSucraseOptions = sucraseOptions;
|
|---|
| 18 | const sucraseOptionsEnvJSON = process.env.SUCRASE_OPTIONS;
|
|---|
| 19 | if (sucraseOptionsEnvJSON) {
|
|---|
| 20 | mergedSucraseOptions = {...mergedSucraseOptions, ...JSON.parse(sucraseOptionsEnvJSON)};
|
|---|
| 21 | }
|
|---|
| 22 | return pirates.addHook(
|
|---|
| 23 | (code, filePath) => {
|
|---|
| 24 | const {code: transformedCode, sourceMap} = _index.transform.call(void 0, code, {
|
|---|
| 25 | ...mergedSucraseOptions,
|
|---|
| 26 | sourceMapOptions: {compiledFilename: filePath},
|
|---|
| 27 | filePath,
|
|---|
| 28 | });
|
|---|
| 29 | const mapBase64 = Buffer.from(JSON.stringify(sourceMap)).toString("base64");
|
|---|
| 30 | const suffix = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${mapBase64}`;
|
|---|
| 31 | return `${transformedCode}\n${suffix}`;
|
|---|
| 32 | },
|
|---|
| 33 | {...hookOptions, exts: [extension]},
|
|---|
| 34 | );
|
|---|
| 35 | } exports.addHook = addHook;
|
|---|
| 36 |
|
|---|
| 37 | function registerJS(hookOptions) {
|
|---|
| 38 | return addHook(".js", {transforms: ["imports", "flow", "jsx"]}, hookOptions);
|
|---|
| 39 | } exports.registerJS = registerJS;
|
|---|
| 40 |
|
|---|
| 41 | function registerJSX(hookOptions) {
|
|---|
| 42 | return addHook(".jsx", {transforms: ["imports", "flow", "jsx"]}, hookOptions);
|
|---|
| 43 | } exports.registerJSX = registerJSX;
|
|---|
| 44 |
|
|---|
| 45 | function registerTS(hookOptions) {
|
|---|
| 46 | return addHook(".ts", {transforms: ["imports", "typescript"]}, hookOptions);
|
|---|
| 47 | } exports.registerTS = registerTS;
|
|---|
| 48 |
|
|---|
| 49 | function registerTSX(hookOptions) {
|
|---|
| 50 | return addHook(".tsx", {transforms: ["imports", "typescript", "jsx"]}, hookOptions);
|
|---|
| 51 | } exports.registerTSX = registerTSX;
|
|---|
| 52 |
|
|---|
| 53 | function registerTSLegacyModuleInterop(hookOptions) {
|
|---|
| 54 | return addHook(
|
|---|
| 55 | ".ts",
|
|---|
| 56 | {
|
|---|
| 57 | transforms: ["imports", "typescript"],
|
|---|
| 58 | enableLegacyTypeScriptModuleInterop: true,
|
|---|
| 59 | },
|
|---|
| 60 | hookOptions,
|
|---|
| 61 | );
|
|---|
| 62 | } exports.registerTSLegacyModuleInterop = registerTSLegacyModuleInterop;
|
|---|
| 63 |
|
|---|
| 64 | function registerTSXLegacyModuleInterop(hookOptions) {
|
|---|
| 65 | return addHook(
|
|---|
| 66 | ".tsx",
|
|---|
| 67 | {
|
|---|
| 68 | transforms: ["imports", "typescript", "jsx"],
|
|---|
| 69 | enableLegacyTypeScriptModuleInterop: true,
|
|---|
| 70 | },
|
|---|
| 71 | hookOptions,
|
|---|
| 72 | );
|
|---|
| 73 | } exports.registerTSXLegacyModuleInterop = registerTSXLegacyModuleInterop;
|
|---|
| 74 |
|
|---|
| 75 | function registerAll(hookOptions) {
|
|---|
| 76 | const reverts = [
|
|---|
| 77 | registerJS(hookOptions),
|
|---|
| 78 | registerJSX(hookOptions),
|
|---|
| 79 | registerTS(hookOptions),
|
|---|
| 80 | registerTSX(hookOptions),
|
|---|
| 81 | ];
|
|---|
| 82 |
|
|---|
| 83 | return () => {
|
|---|
| 84 | for (const fn of reverts) {
|
|---|
| 85 | fn();
|
|---|
| 86 | }
|
|---|
| 87 | };
|
|---|
| 88 | } exports.registerAll = registerAll;
|
|---|