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.
36 lines
1.1 KiB
36 lines
1.1 KiB
"use strict"; |
|
|
|
exports.__esModule = true; |
|
exports.default = void 0; |
|
|
|
/** |
|
* Converts destructured parameters with default values to non-shorthand syntax. |
|
* This fixes the only arguments-related bug in ES Modules-supporting browsers (Edge 16 & 17). |
|
* Use this plugin instead of @babel/plugin-transform-parameters when targeting ES Modules. |
|
*/ |
|
var _default = ({ |
|
types: t |
|
}) => { |
|
const isArrowParent = p => p.parentKey === "params" && p.parentPath && t.isArrowFunctionExpression(p.parentPath); |
|
|
|
return { |
|
name: "transform-edge-default-parameters", |
|
visitor: { |
|
AssignmentPattern(path) { |
|
const arrowArgParent = path.find(isArrowParent); |
|
|
|
if (arrowArgParent && path.parent.shorthand) { |
|
// In Babel 7+, there is no way to force non-shorthand properties. |
|
path.parent.shorthand = false; |
|
(path.parent.extra || {}).shorthand = false; // So, to ensure non-shorthand, rename the local identifier so it no longer matches: |
|
|
|
path.scope.rename(path.parent.key.name); |
|
} |
|
} |
|
|
|
} |
|
}; |
|
}; |
|
|
|
exports.default = _default; |
|
module.exports = exports.default; |