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.
32 lines
1.3 KiB
32 lines
1.3 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.isPathSimpleArrayWithLength = isPathSimpleArrayWithLength; |
|
exports.shouldTransform = shouldTransform; |
|
var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers"); |
|
function isPathSimpleArrayWithLength(path, N) { |
|
var _path$node$extra; |
|
if (!path.isArrayExpression()) { |
|
return false; |
|
} |
|
const elementPaths = path.get("elements"); |
|
return elementPaths.length === N && elementPaths.every(elementPath => elementPath.node && !elementPath.isSpreadElement()) && !((_path$node$extra = path.node.extra) != null && _path$node$extra.trailingComma); |
|
} |
|
function shouldTransform(path) { |
|
const elementPaths = path.get("elements"); |
|
const elementPathsLength = elementPaths.length; |
|
if (elementPaths[elementPathsLength - 1].isRestElement()) { |
|
const { |
|
parentPath |
|
} = path; |
|
const rhsPath = parentPath.isVariableDeclarator() ? parentPath.get("init") : parentPath.isAssignmentExpression() ? parentPath.get("right") : null; |
|
if (rhsPath != null && rhsPath.node && isPathSimpleArrayWithLength((0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(rhsPath), elementPathsLength)) { |
|
return rhsPath; |
|
} |
|
} |
|
return false; |
|
} |
|
|
|
//# sourceMappingURL=util.js.map
|
|
|