amis-rpc-design/node_modules/@babel/register/lib/hook.js
2023-10-07 19:42:30 +08:00

72 lines
1.8 KiB
JavaScript

"use strict";
const {
addHook
} = require("pirates");
const sourceMapSupport = require("source-map-support");
let piratesRevert;
const maps = Object.create(null);
function installSourceMapSupport() {
installSourceMapSupport = () => {};
sourceMapSupport.install({
handleUncaughtExceptions: false,
environment: "node",
retrieveSourceMap(filename) {
const map = maps == null ? void 0 : maps[filename];
if (map) {
return {
url: null,
map: map
};
} else {
return null;
}
}
});
}
{
const Module = require("module");
let compiling = false;
const internalModuleCache = Module._cache;
var compileBabel7 = function compileBabel7(client, code, filename) {
if (!client.isLocalClient) return compile(client, code, filename);
if (compiling) return code;
const globalModuleCache = Module._cache;
try {
compiling = true;
Module._cache = internalModuleCache;
return compile(client, code, filename);
} finally {
compiling = false;
Module._cache = globalModuleCache;
}
};
}
function compile(client, inputCode, filename) {
const result = client.transform(inputCode, filename);
if (result === null) return inputCode;
const {
code,
map
} = result;
if (map) {
maps[filename] = map;
installSourceMapSupport();
}
return code;
}
exports.register = function register(client, opts = {}) {
var _opts$extensions;
if (piratesRevert) piratesRevert();
piratesRevert = addHook(compileBabel7.bind(null, client), {
exts: (_opts$extensions = opts.extensions) != null ? _opts$extensions : client.getDefaultExtensions(),
ignoreNodeModules: false
});
client.setOptions(opts);
};
exports.revert = function revert() {
if (piratesRevert) piratesRevert();
};
//# sourceMappingURL=hook.js.map