feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

View File

@@ -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({

File diff suppressed because one or more lines are too long