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.
53 lines
1.1 KiB
53 lines
1.1 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, '__esModule', { value: true }); |
|
|
|
var helperPluginUtils = require('@babel/helper-plugin-utils'); |
|
|
|
function shouldTransform(path) { |
|
const { |
|
node |
|
} = path; |
|
const functionId = node.id; |
|
if (!functionId) return false; |
|
const name = functionId.name; |
|
const paramNameBinding = path.scope.getOwnBinding(name); |
|
|
|
if (paramNameBinding === undefined) { |
|
return false; |
|
} |
|
|
|
if (paramNameBinding.kind !== "param") { |
|
return false; |
|
} |
|
|
|
if (paramNameBinding.identifier === paramNameBinding.path.node) { |
|
return false; |
|
} |
|
|
|
return name; |
|
} |
|
|
|
var index = helperPluginUtils.declare(api => { |
|
api.assertVersion("^7.16.0"); |
|
return { |
|
name: "plugin-bugfix-safari-id-destructuring-collision-in-function-expression", |
|
visitor: { |
|
FunctionExpression(path) { |
|
const name = shouldTransform(path); |
|
|
|
if (name) { |
|
const { |
|
scope |
|
} = path; |
|
const newParamName = scope.generateUid(name); |
|
scope.rename(name, newParamName); |
|
} |
|
} |
|
|
|
} |
|
}; |
|
}); |
|
|
|
exports.default = index; |
|
//# sourceMappingURL=index.js.map
|
|
|