feat: refactoring project
This commit is contained in:
34
node_modules/@babel/plugin-transform-destructuring/lib/index.js
generated
vendored
34
node_modules/@babel/plugin-transform-destructuring/lib/index.js
generated
vendored
@@ -105,7 +105,39 @@ class DestructuringTransformer {
|
||||
if (this.iterableIsArray || core.types.isIdentifier(node) && this.arrayRefSet.has(node.name)) {
|
||||
return node;
|
||||
} else {
|
||||
return this.scope.toArray(node, count, this.arrayLikeIsIterable);
|
||||
const {
|
||||
scope,
|
||||
arrayLikeIsIterable
|
||||
} = this;
|
||||
if (core.types.isIdentifier(node)) {
|
||||
const binding = scope.getBinding(node.name);
|
||||
if (binding != null && binding.constant && binding.path.isGenericType("Array")) {
|
||||
return node;
|
||||
}
|
||||
}
|
||||
if (core.types.isArrayExpression(node)) {
|
||||
return node;
|
||||
}
|
||||
if (core.types.isIdentifier(node, {
|
||||
name: "arguments"
|
||||
})) {
|
||||
return core.template.expression.ast`
|
||||
Array.prototype.slice.call(${node})
|
||||
`;
|
||||
}
|
||||
let helperName;
|
||||
const args = [node];
|
||||
if (typeof count === "number") {
|
||||
args.push(core.types.numericLiteral(count));
|
||||
helperName = "slicedToArray";
|
||||
} else {
|
||||
helperName = "toArray";
|
||||
}
|
||||
if (arrayLikeIsIterable) {
|
||||
args.unshift(scope.path.hub.addHelper(helperName));
|
||||
helperName = "maybeArrayLike";
|
||||
}
|
||||
return core.types.callExpression(scope.path.hub.addHelper(helperName), args);
|
||||
}
|
||||
}
|
||||
pushAssignmentPattern({
|
||||
|
||||
2
node_modules/@babel/plugin-transform-destructuring/lib/index.js.map
generated
vendored
2
node_modules/@babel/plugin-transform-destructuring/lib/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user