Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. function _helperPluginUtils() {
  7. const data = require("@babel/helper-plugin-utils");
  8. _helperPluginUtils = function () {
  9. return data;
  10. };
  11. return data;
  12. }
  13. function _helperModuleTransforms() {
  14. const data = require("@babel/helper-module-transforms");
  15. _helperModuleTransforms = function () {
  16. return data;
  17. };
  18. return data;
  19. }
  20. function _core() {
  21. const data = require("@babel/core");
  22. _core = function () {
  23. return data;
  24. };
  25. return data;
  26. }
  27. function _utils() {
  28. const data = require("babel-plugin-dynamic-import-node/utils");
  29. _utils = function () {
  30. return data;
  31. };
  32. return data;
  33. }
  34. const buildWrapper = (0, _core().template)(`
  35. define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {
  36. })
  37. `);
  38. const buildAnonymousWrapper = (0, _core().template)(`
  39. define(["require"], function(REQUIRE) {
  40. })
  41. `);
  42. function injectWrapper(path, wrapper) {
  43. const {
  44. body,
  45. directives
  46. } = path.node;
  47. path.node.directives = [];
  48. path.node.body = [];
  49. const amdWrapper = path.pushContainer("body", wrapper)[0];
  50. const amdFactory = amdWrapper.get("expression.arguments").filter(arg => arg.isFunctionExpression())[0].get("body");
  51. amdFactory.pushContainer("directives", directives);
  52. amdFactory.pushContainer("body", body);
  53. }
  54. var _default = (0, _helperPluginUtils().declare)((api, options) => {
  55. api.assertVersion(7);
  56. const {
  57. loose,
  58. allowTopLevelThis,
  59. strict,
  60. strictMode,
  61. noInterop
  62. } = options;
  63. return {
  64. name: "transform-modules-amd",
  65. pre() {
  66. this.file.set("@babel/plugin-transform-modules-*", "amd");
  67. },
  68. visitor: {
  69. CallExpression(path, state) {
  70. if (!this.file.has("@babel/plugin-proposal-dynamic-import")) return;
  71. if (!path.get("callee").isImport()) return;
  72. let {
  73. requireId,
  74. resolveId,
  75. rejectId
  76. } = state;
  77. if (!requireId) {
  78. requireId = path.scope.generateUidIdentifier("require");
  79. state.requireId = requireId;
  80. }
  81. if (!resolveId || !rejectId) {
  82. resolveId = path.scope.generateUidIdentifier("resolve");
  83. rejectId = path.scope.generateUidIdentifier("reject");
  84. state.resolveId = resolveId;
  85. state.rejectId = rejectId;
  86. }
  87. let result = _core().types.identifier("imported");
  88. if (!noInterop) result = (0, _helperModuleTransforms().wrapInterop)(path, result, "namespace");
  89. path.replaceWith(_core().template.expression.ast`
  90. new Promise((${resolveId}, ${rejectId}) =>
  91. ${requireId}(
  92. [${(0, _utils().getImportSource)(_core().types, path.node)}],
  93. imported => ${resolveId}(${result}),
  94. ${rejectId}
  95. )
  96. )`);
  97. },
  98. Program: {
  99. exit(path, {
  100. requireId
  101. }) {
  102. if (!(0, _helperModuleTransforms().isModule)(path)) {
  103. if (requireId) {
  104. injectWrapper(path, buildAnonymousWrapper({
  105. REQUIRE: requireId
  106. }));
  107. }
  108. return;
  109. }
  110. const amdArgs = [];
  111. const importNames = [];
  112. if (requireId) {
  113. amdArgs.push(_core().types.stringLiteral("require"));
  114. importNames.push(requireId);
  115. }
  116. let moduleName = this.getModuleName();
  117. if (moduleName) moduleName = _core().types.stringLiteral(moduleName);
  118. const {
  119. meta,
  120. headers
  121. } = (0, _helperModuleTransforms().rewriteModuleStatementsAndPrepareHeader)(path, {
  122. loose,
  123. strict,
  124. strictMode,
  125. allowTopLevelThis,
  126. noInterop
  127. });
  128. if ((0, _helperModuleTransforms().hasExports)(meta)) {
  129. amdArgs.push(_core().types.stringLiteral("exports"));
  130. importNames.push(_core().types.identifier(meta.exportName));
  131. }
  132. for (const [source, metadata] of meta.source) {
  133. amdArgs.push(_core().types.stringLiteral(source));
  134. importNames.push(_core().types.identifier(metadata.name));
  135. if (!(0, _helperModuleTransforms().isSideEffectImport)(metadata)) {
  136. const interop = (0, _helperModuleTransforms().wrapInterop)(path, _core().types.identifier(metadata.name), metadata.interop);
  137. if (interop) {
  138. const header = _core().types.expressionStatement(_core().types.assignmentExpression("=", _core().types.identifier(metadata.name), interop));
  139. header.loc = metadata.loc;
  140. headers.push(header);
  141. }
  142. }
  143. headers.push(...(0, _helperModuleTransforms().buildNamespaceInitStatements)(meta, metadata, loose));
  144. }
  145. (0, _helperModuleTransforms().ensureStatementsHoisted)(headers);
  146. path.unshiftContainer("body", headers);
  147. injectWrapper(path, buildWrapper({
  148. MODULE_NAME: moduleName,
  149. AMD_ARGUMENTS: _core().types.arrayExpression(amdArgs),
  150. IMPORT_NAMES: importNames
  151. }));
  152. }
  153. }
  154. }
  155. };
  156. });
  157. exports.default = _default;