保誠-保戶業務員媒合平台
Tomas
2022-05-19 957a1f10a06fdbb76f1a0ba94fe44126c613fee3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"use strict";
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = shouldStoreRHSInTemporaryVariable;
 
var _core = require("@babel/core");
 
function shouldStoreRHSInTemporaryVariable(node) {
  if (_core.types.isArrayPattern(node)) {
    const nonNullElements = node.elements.filter(element => element !== null);
    if (nonNullElements.length > 1) return true;else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);
  } else if (_core.types.isObjectPattern(node)) {
    if (node.properties.length > 1) return true;else if (node.properties.length === 0) return false;else return shouldStoreRHSInTemporaryVariable(node.properties[0]);
  } else if (_core.types.isObjectProperty(node)) {
    return shouldStoreRHSInTemporaryVariable(node.value);
  } else if (_core.types.isAssignmentPattern(node)) {
    return shouldStoreRHSInTemporaryVariable(node.left);
  } else if (_core.types.isRestElement(node)) {
    if (_core.types.isIdentifier(node.argument)) return true;
    return shouldStoreRHSInTemporaryVariable(node.argument);
  } else {
    return false;
  }
}