Befor generating

This commit is contained in:
marys
2026-06-01 13:17:37 +02:00
parent 3383f4bf4a
commit 1aa1b5f625
6756 changed files with 649946 additions and 1 deletions
@@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
var _util = require("./util.js");
var _default = exports.default = (0, _helperPluginUtils.declare)(api => {
const {
types: t,
assertVersion
} = api;
assertVersion(7);
return {
name: "plugin-bugfix-safari-rest-destructuring-rhs-array",
visitor: {
ArrayPattern(path) {
const rhs = (0, _util.shouldTransform)(path);
if (rhs) {
path.replaceWith(t.arrayPattern([path.node]));
rhs.replaceWith(t.arrayExpression([rhs.node]));
}
}
}
};
});
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"names":["_helperPluginUtils","require","_util","_default","exports","default","declare","api","types","t","assertVersion","name","visitor","ArrayPattern","path","rhs","shouldTransform","replaceWith","arrayPattern","node","arrayExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { shouldTransform } from \"./util.ts\";\n\nexport default declare(api => {\n const { types: t, assertVersion } = api;\n assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"plugin-bugfix-safari-rest-destructuring-rhs-array\",\n\n visitor: {\n ArrayPattern(path) {\n const rhs = shouldTransform(path);\n if (rhs) {\n // The most minimal approach is to add a trailing comma to the rhs array,\n // but that would be easily reverted by minifiers, so instead we wrap both sides\n // in an array\n path.replaceWith(t.arrayPattern([path.node]));\n rhs.replaceWith(t.arrayExpression([rhs.node]));\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAA4C,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE7B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5B,MAAM;IAAEC,KAAK,EAAEC,CAAC;IAAEC;EAAc,CAAC,GAAGH,GAAG;EACvCG,aAAa,CAAkB,CAAE,CAAC;EAElC,OAAO;IACLC,IAAI,EAAE,mDAAmD;IAEzDC,OAAO,EAAE;MACPC,YAAYA,CAACC,IAAI,EAAE;QACjB,MAAMC,GAAG,GAAG,IAAAC,qBAAe,EAACF,IAAI,CAAC;QACjC,IAAIC,GAAG,EAAE;UAIPD,IAAI,CAACG,WAAW,CAACR,CAAC,CAACS,YAAY,CAAC,CAACJ,IAAI,CAACK,IAAI,CAAC,CAAC,CAAC;UAC7CJ,GAAG,CAACE,WAAW,CAACR,CAAC,CAACW,eAAe,CAAC,CAACL,GAAG,CAACI,IAAI,CAAC,CAAC,CAAC;QAChD;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isPathSimpleArrayWithLength = isPathSimpleArrayWithLength;
exports.shouldTransform = shouldTransform;
var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers");
function isPathSimpleArrayWithLength(path, N) {
var _path$node$extra;
if (!path.isArrayExpression()) {
return false;
}
const elementPaths = path.get("elements");
return elementPaths.length === N && elementPaths.every(elementPath => elementPath.node && !elementPath.isSpreadElement()) && !((_path$node$extra = path.node.extra) != null && _path$node$extra.trailingComma);
}
function shouldTransform(path) {
const elementPaths = path.get("elements");
const elementPathsLength = elementPaths.length;
if (elementPaths[elementPathsLength - 1].isRestElement()) {
const {
parentPath
} = path;
const rhsPath = parentPath.isVariableDeclarator() ? parentPath.get("init") : parentPath.isAssignmentExpression() ? parentPath.get("right") : null;
if (rhsPath != null && rhsPath.node && isPathSimpleArrayWithLength((0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(rhsPath), elementPathsLength)) {
return rhsPath;
}
}
return false;
}
//# sourceMappingURL=util.js.map
@@ -0,0 +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":[]}