forked from daren.hsu/line_push
update
This commit is contained in:
+21
-12
@@ -13,11 +13,12 @@ var _core = require("@babel/core");
|
||||
|
||||
var _utils = require("babel-plugin-dynamic-import-node/utils");
|
||||
|
||||
const buildWrapper = (0, _core.template)(`
|
||||
const buildWrapper = _core.template.statement(`
|
||||
define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {
|
||||
})
|
||||
`);
|
||||
const buildAnonymousWrapper = (0, _core.template)(`
|
||||
|
||||
const buildAnonymousWrapper = _core.template.statement(`
|
||||
define(["require"], function(REQUIRE) {
|
||||
})
|
||||
`);
|
||||
@@ -29,21 +30,26 @@ function injectWrapper(path, wrapper) {
|
||||
} = path.node;
|
||||
path.node.directives = [];
|
||||
path.node.body = [];
|
||||
const amdWrapper = path.pushContainer("body", wrapper)[0];
|
||||
const amdFactory = amdWrapper.get("expression.arguments").filter(arg => arg.isFunctionExpression())[0].get("body");
|
||||
const amdFactoryCall = path.pushContainer("body", wrapper)[0].get("expression");
|
||||
const amdFactoryCallArgs = amdFactoryCall.get("arguments");
|
||||
const amdFactory = amdFactoryCallArgs[amdFactoryCallArgs.length - 1].get("body");
|
||||
amdFactory.pushContainer("directives", directives);
|
||||
amdFactory.pushContainer("body", body);
|
||||
}
|
||||
|
||||
var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
var _api$assumption, _api$assumption2;
|
||||
|
||||
api.assertVersion(7);
|
||||
const {
|
||||
loose,
|
||||
allowTopLevelThis,
|
||||
strict,
|
||||
strictMode,
|
||||
importInterop,
|
||||
noInterop
|
||||
} = options;
|
||||
const constantReexports = (_api$assumption = api.assumption("constantReexports")) != null ? _api$assumption : options.loose;
|
||||
const enumerableModuleMeta = (_api$assumption2 = api.assumption("enumerableModuleMeta")) != null ? _api$assumption2 : options.loose;
|
||||
return {
|
||||
name: "transform-modules-amd",
|
||||
|
||||
@@ -80,8 +86,8 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
new Promise((${resolveId}, ${rejectId}) =>
|
||||
${requireId}(
|
||||
[${(0, _utils.getImportSource)(_core.types, path.node)}],
|
||||
imported => ${resolveId}(${result}),
|
||||
${rejectId}
|
||||
imported => ${_core.types.cloneNode(resolveId)}(${result}),
|
||||
${_core.types.cloneNode(rejectId)}
|
||||
)
|
||||
)`);
|
||||
},
|
||||
@@ -93,7 +99,7 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
if (!(0, _helperModuleTransforms.isModule)(path)) {
|
||||
if (requireId) {
|
||||
injectWrapper(path, buildAnonymousWrapper({
|
||||
REQUIRE: requireId
|
||||
REQUIRE: _core.types.cloneNode(requireId)
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -105,7 +111,7 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
|
||||
if (requireId) {
|
||||
amdArgs.push(_core.types.stringLiteral("require"));
|
||||
importNames.push(requireId);
|
||||
importNames.push(_core.types.cloneNode(requireId));
|
||||
}
|
||||
|
||||
let moduleName = (0, _helperModuleTransforms.getModuleName)(this.file.opts, options);
|
||||
@@ -114,11 +120,14 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
meta,
|
||||
headers
|
||||
} = (0, _helperModuleTransforms.rewriteModuleStatementsAndPrepareHeader)(path, {
|
||||
loose,
|
||||
enumerableModuleMeta,
|
||||
constantReexports,
|
||||
strict,
|
||||
strictMode,
|
||||
allowTopLevelThis,
|
||||
noInterop
|
||||
importInterop,
|
||||
noInterop,
|
||||
filename: this.file.opts.filename
|
||||
});
|
||||
|
||||
if ((0, _helperModuleTransforms.hasExports)(meta)) {
|
||||
@@ -141,7 +150,7 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
|
||||
}
|
||||
}
|
||||
|
||||
headers.push(...(0, _helperModuleTransforms.buildNamespaceInitStatements)(meta, metadata, loose));
|
||||
headers.push(...(0, _helperModuleTransforms.buildNamespaceInitStatements)(meta, metadata, constantReexports));
|
||||
}
|
||||
|
||||
(0, _helperModuleTransforms.ensureStatementsHoisted)(headers);
|
||||
|
||||
Reference in New Issue
Block a user