| [9af201e] | 1 | {"version":3,"names":["_helperSkipTransparentExpressionWrappers","require","isPathSimpleArrayWithLength","path","N","_path$node$extra","isArrayExpression","elementPaths","get","length","every","elementPath","node","isSpreadElement","extra","trailingComma","shouldTransform","elementPathsLength","isRestElement","parentPath","rhsPath","isVariableDeclarator","isAssignmentExpression","skipTransparentExprWrappers"],"sources":["../src/util.ts"],"sourcesContent":["import type { NodePath, types as t } from \"@babel/core\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\n/**\n * Check whether a path is an ArrayExpression with exactly N non-spread & non-hole elements and no trailing comma\n * @param path\n * @param N\n * @returns\n */\nexport function isPathSimpleArrayWithLength(\n path: NodePath,\n N: number,\n): path is NodePath<t.ArrayExpression> {\n if (!path.isArrayExpression()) {\n return false;\n }\n const elementPaths = path.get(\"elements\");\n return (\n elementPaths.length === N &&\n elementPaths.every(\n elementPath => elementPath.node && !elementPath.isSpreadElement(),\n ) &&\n !path.node.extra?.trailingComma\n );\n}\n\n/**\n * Check whether an array pattern may be affected by\n * https://github.com/babel/babel/issues/17773#issuecomment-3842765704\n * @param path The array pattern NodePath\n * @returns The RHS NodePath if the pattern should be transformed, or false if it can be left as-is.\n */\nexport function shouldTransform(\n path: NodePath<t.ArrayPattern>,\n): NodePath<t.Expression> | false {\n const elementPaths = path.get(\"elements\");\n const elementPathsLength = elementPaths.length;\n if (elementPaths[elementPathsLength - 1].isRestElement()) {\n const { parentPath } = path;\n const rhsPath = parentPath.isVariableDeclarator()\n ? parentPath.get(\"init\")\n : parentPath.isAssignmentExpression()\n ? parentPath.get(\"right\")\n : null;\n if (\n rhsPath?.node &&\n isPathSimpleArrayWithLength(\n skipTransparentExprWrappers(rhsPath),\n elementPathsLength,\n )\n ) {\n return rhsPath;\n }\n }\n return false;\n}\n"],"mappings":";;;;;;;AACA,IAAAA,wCAAA,GAAAC,OAAA;AAQO,SAASC,2BAA2BA,CACzCC,IAAc,EACdC,CAAS,EAC4B;EAAA,IAAAC,gBAAA;EACrC,IAAI,CAACF,IAAI,CAACG,iBAAiB,CAAC,CAAC,EAAE;IAC7B,OAAO,KAAK;EACd;EACA,MAAMC,YAAY,GAAGJ,IAAI,CAACK,GAAG,CAAC,UAAU,CAAC;EACzC,OACED,YAAY,CAACE,MAAM,KAAKL,CAAC,IACzBG,YAAY,CAACG,KAAK,CAChBC,WAAW,IAAIA,WAAW,CAACC,IAAI,IAAI,CAACD,WAAW,CAACE,eAAe,CAAC,CAClE,CAAC,IACD,GAAAR,gBAAA,GAACF,IAAI,CAACS,IAAI,CAACE,KAAK,aAAfT,gBAAA,CAAiBU,aAAa;AAEnC;AAQO,SAASC,eAAeA,CAC7Bb,IAA8B,EACE;EAChC,MAAMI,YAAY,GAAGJ,IAAI,CAACK,GAAG,CAAC,UAAU,CAAC;EACzC,MAAMS,kBAAkB,GAAGV,YAAY,CAACE,MAAM;EAC9C,IAAIF,YAAY,CAACU,kBAAkB,GAAG,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC,EAAE;IACxD,MAAM;MAAEC;IAAW,CAAC,GAAGhB,IAAI;IAC3B,MAAMiB,OAAO,GAAGD,UAAU,CAACE,oBAAoB,CAAC,CAAC,GAC7CF,UAAU,CAACX,GAAG,CAAC,MAAM,CAAC,GACtBW,UAAU,CAACG,sBAAsB,CAAC,CAAC,GACjCH,UAAU,CAACX,GAAG,CAAC,OAAO,CAAC,GACvB,IAAI;IACV,IACEY,OAAO,YAAPA,OAAO,CAAER,IAAI,IACbV,2BAA2B,CACzB,IAAAqB,oEAA2B,EAACH,OAAO,CAAC,EACpCH,kBACF,CAAC,EACD;MACA,OAAOG,OAAO;IAChB;EACF;EACA,OAAO,KAAK;AACd","ignoreList":[]} |
|---|