Няма описание

register.js 2.5KB

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