Skip to content

Commit

Permalink
Add error callback to amd interop
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Jun 9, 2019
1 parent 195a7c3 commit 97b0ac4
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 9 deletions.
@@ -1,5 +1,5 @@
define(["require"], function (_require) {
"use strict";

var modP = new Promise(_resolve => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported))));
var modP = new Promise((_resolve, _reject) => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported)), _reject));
});
@@ -1,3 +1,3 @@
define(["require"], function (_require) {
var modP = new Promise(_resolve => _require(["mod"], imported => _resolve(imported)));
var modP = new Promise((_resolve, _reject) => _require(["mod"], imported => _resolve(imported), _reject));
});
@@ -1,3 +1,3 @@
define(["require"], function (_require) {
var modP = new Promise(_resolve => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported))));
var modP = new Promise((_resolve, _reject) => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported)), _reject));
});
Expand Up @@ -8,5 +8,5 @@ define(["require", "exports", "foo"], function (_require, _exports, _foo) {
_foo = babelHelpers.interopRequireDefault(_foo);
var mod;
_exports.mod = mod;
new Promise(_resolve => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported)))).then(m => _exports.mod = mod = m);
new Promise((_resolve, _reject) => _require(["mod"], imported => _resolve(babelHelpers.interopRequireWildcard(imported)), _reject)).then(m => _exports.mod = mod = m);
});
14 changes: 9 additions & 5 deletions packages/babel-plugin-transform-modules-amd/src/index.js
Expand Up @@ -49,24 +49,28 @@ export default declare((api, options) => {
if (!this.file.has("@babel/plugin-proposal-dynamic-import")) return;
if (!path.get("callee").isImport()) return;

let { requireId, resolveId } = state;
let { requireId, resolveId, rejectId } = state;
if (!requireId) {
requireId = path.scope.generateUidIdentifier("require");
state.requireId = requireId;
}
if (!resolveId) {
if (!resolveId || !rejectId) {
resolveId = path.scope.generateUidIdentifier("resolve");
rejectId = path.scope.generateUidIdentifier("reject");
state.resolveId = resolveId;
state.rejectId = rejectId;
}

let result = t.identifier("imported");
if (!noInterop) result = wrapInterop(path, result, "namespace");

path.replaceWith(
template.expression.ast`
new Promise((${resolveId}) =>
${requireId}([${path.node.arguments[0]}], imported =>
${resolveId}(${result})
new Promise((${resolveId}, ${rejectId}) =>
${requireId}(
[${path.node.arguments[0]}],
imported => ${resolveId}(${result}),
${rejectId}
)
)`,
);
Expand Down

0 comments on commit 97b0ac4

Please sign in to comment.