| | |
| | | function findOutermostTransparentParent(path) { |
| | | let maybeWrapped = path; |
| | | path.findParent(p => { |
| | | if (!helperSkipTransparentExpressionWrappers.isTransparentExprWrapper(p)) return true; |
| | | if (!helperSkipTransparentExpressionWrappers.isTransparentExprWrapper(p.node)) return true; |
| | | maybeWrapped = p; |
| | | }); |
| | | return maybeWrapped; |
| | |
| | | } = core.template.expression; |
| | | |
| | | function isSimpleMemberExpression(expression) { |
| | | expression = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(expression); |
| | | expression = helperSkipTransparentExpressionWrappers.skipTransparentExprWrapperNodes(expression); |
| | | return core.types.isIdentifier(expression) || core.types.isSuper(expression) || core.types.isMemberExpression(expression) && !expression.computed && isSimpleMemberExpression(expression.object); |
| | | } |
| | | |
| | |
| | | const isCall = core.types.isCallExpression(node); |
| | | const replaceKey = isCall ? "callee" : "object"; |
| | | const chainWithTypes = node[replaceKey]; |
| | | let chain = chainWithTypes; |
| | | |
| | | while (helperSkipTransparentExpressionWrappers.isTransparentExprWrapper(chain)) { |
| | | chain = chain.expression; |
| | | } |
| | | |
| | | const chain = helperSkipTransparentExpressionWrappers.skipTransparentExprWrapperNodes(chainWithTypes); |
| | | let ref; |
| | | let check; |
| | | |
| | |
| | | if (i === 0 && parentIsCall) { |
| | | var _baseRef; |
| | | |
| | | const object = helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers(replacementPath.get("object")).node; |
| | | const object = helperSkipTransparentExpressionWrappers.skipTransparentExprWrapperNodes(replacement.object); |
| | | let baseRef; |
| | | |
| | | if (!pureGetters || !isSimpleMemberExpression(object)) { |
| | |
| | | const pureGetters = (_api$assumption2 = api.assumption("pureGetters")) != null ? _api$assumption2 : loose; |
| | | return { |
| | | name: "proposal-optional-chaining", |
| | | inherits: syntaxOptionalChaining__default['default'].default, |
| | | inherits: syntaxOptionalChaining__default["default"].default, |
| | | visitor: { |
| | | "OptionalCallExpression|OptionalMemberExpression"(path) { |
| | | transform(path, { |
| | |
| | | }; |
| | | }); |
| | | |
| | | exports.default = index; |
| | | exports["default"] = index; |
| | | exports.transform = transform; |
| | | //# sourceMappingURL=index.js.map |