first
This commit is contained in:
42
node_modules/@babel/plugin-transform-object-rest-spread/lib/shouldStoreRHSInTemporaryVariable.js
generated
vendored
Normal file
42
node_modules/@babel/plugin-transform-object-rest-spread/lib/shouldStoreRHSInTemporaryVariable.js
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = shouldStoreRHSInTemporaryVariable;
|
||||
var _core = require("@babel/core");
|
||||
const {
|
||||
isObjectProperty,
|
||||
isArrayPattern,
|
||||
isObjectPattern,
|
||||
isAssignmentPattern,
|
||||
isRestElement,
|
||||
isIdentifier
|
||||
} = _core.types;
|
||||
function shouldStoreRHSInTemporaryVariable(node) {
|
||||
if (isArrayPattern(node)) {
|
||||
const nonNullElements = node.elements.filter(element => element !== null);
|
||||
if (nonNullElements.length > 1) return true;else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);
|
||||
} else if (isObjectPattern(node)) {
|
||||
const {
|
||||
properties
|
||||
} = node;
|
||||
if (properties.length > 1) return true;else if (properties.length === 0) return false;else {
|
||||
const firstProperty = properties[0];
|
||||
if (isObjectProperty(firstProperty)) {
|
||||
return shouldStoreRHSInTemporaryVariable(firstProperty.value);
|
||||
} else {
|
||||
return shouldStoreRHSInTemporaryVariable(firstProperty);
|
||||
}
|
||||
}
|
||||
} else if (isAssignmentPattern(node)) {
|
||||
return shouldStoreRHSInTemporaryVariable(node.left);
|
||||
} else if (isRestElement(node)) {
|
||||
if (isIdentifier(node.argument)) return true;
|
||||
return shouldStoreRHSInTemporaryVariable(node.argument);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=shouldStoreRHSInTemporaryVariable.js.map
|
Reference in New Issue
Block a user