| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _core = require("@babel/core");
- const buildOptimizedSequenceExpression = ({
- assign,
- call,
- path
- }) => {
- const {
- left: placeholderNode,
- right: pipelineLeft
- } = assign;
- const {
- callee: calledExpression
- } = call;
- let optimizeArrow = _core.types.isArrowFunctionExpression(calledExpression) && _core.types.isExpression(calledExpression.body) && !calledExpression.async && !calledExpression.generator;
- let param;
- if (optimizeArrow) {
- const {
- params
- } = calledExpression;
- if (params.length === 1 && _core.types.isIdentifier(params[0])) {
- param = params[0];
- } else if (params.length > 0) {
- optimizeArrow = false;
- }
- } else if (_core.types.isIdentifier(calledExpression, {
- name: "eval"
- })) {
- const evalSequence = _core.types.sequenceExpression([_core.types.numericLiteral(0), calledExpression]);
- call.callee = evalSequence;
- path.scope.push({
- id: _core.types.cloneNode(placeholderNode)
- });
- return _core.types.sequenceExpression([assign, call]);
- }
- if (optimizeArrow && !param) {
- return _core.types.sequenceExpression([pipelineLeft, calledExpression.body]);
- }
- path.scope.push({
- id: _core.types.cloneNode(placeholderNode)
- });
- if (param) {
- path.get("right").scope.rename(param.name, placeholderNode.name);
- return _core.types.sequenceExpression([assign, calledExpression.body]);
- }
- return _core.types.sequenceExpression([assign, call]);
- };
- var _default = buildOptimizedSequenceExpression;
- exports.default = _default;
|