@babel/plugin-transform-runtime
Advanced tools
+2
-3
| import { declare } from "@babel/helper-plugin-utils"; | ||
| import { addDefault, isModule } from "@babel/helper-module-imports"; | ||
| import { types as t } from "@babel/core"; | ||
| import { hasMinVersion } from "./helpers.js"; | ||
| import getRuntimePath, { resolveFSPath } from "./get-runtime-path/index.js"; | ||
| export default declare((api, options, dirname) => { | ||
| api.assertVersion("8.0.0-beta.2"); | ||
| api.assertVersion("8.0.0-beta.3"); | ||
| const { | ||
| version: runtimeVersion = "7.0.0-beta.0", | ||
| version: runtimeVersion = "8.0.0-beta.0", | ||
| absoluteRuntime = false, | ||
@@ -11,0 +10,0 @@ moduleName = null |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["declare","addDefault","isModule","types","t","hasMinVersion","getRuntimePath","resolveFSPath","api","options","dirname","assertVersion","version","runtimeVersion","absoluteRuntime","moduleName","Error","Object","hasOwn","useBuiltIns","polyfill","HEADER_HELPERS","Set","name","inherits","undefined","pre","file","modulePath","set","get","availableHelper","blockHoist","has","path","helperPath","addDefaultImport","cache","Map","source","nameHint","isHelper","cacheKey","key","cached","cloneNode","importedInterop"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { addDefault, isModule } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nimport { hasMinVersion } from \"./helpers.ts\";\nimport getRuntimePath, { resolveFSPath } from \"./get-runtime-path/index.ts\";\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./babel-7/index.cjs\" with { if: \"!process.env.BABEL_8_BREAKING\" };\n\nexport interface Options {\n absoluteRuntime?: boolean;\n corejs?: string | number | { version: string | number; proposals?: boolean };\n helpers?: boolean;\n version?: string;\n moduleName?: null | string;\n}\n\nexport default declare((api, options: Options, dirname) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n version: runtimeVersion = \"7.0.0-beta.0\",\n absoluteRuntime = false,\n moduleName = null,\n } = options;\n\n if (\n typeof absoluteRuntime !== \"boolean\" &&\n typeof absoluteRuntime !== \"string\"\n ) {\n throw new Error(\n \"The 'absoluteRuntime' option must be undefined, a boolean, or a string.\",\n );\n }\n\n if (typeof runtimeVersion !== \"string\") {\n throw new Error(`The 'version' option must be a version string.`);\n }\n\n if (moduleName !== null && typeof moduleName !== \"string\") {\n throw new Error(\"The 'moduleName' option must be null or a string.\");\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // In recent @babel/runtime versions, we can use require(\"helper\").default\n // instead of require(\"helper\") so that it has the same interface as the\n // ESM helper, and bundlers can better exchange one format for the other.\n const DUAL_MODE_RUNTIME = \"7.13.0\";\n // eslint-disable-next-line no-var\n var supportsCJSDefault = hasMinVersion(DUAL_MODE_RUNTIME, runtimeVersion);\n }\n\n if (Object.hasOwn(options, \"useBuiltIns\")) {\n // @ts-expect-error deprecated options\n if (options.useBuiltIns) {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. The @babel/runtime \" +\n \"module now uses builtins by default.\",\n );\n } else {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (Object.hasOwn(options, \"polyfill\")) {\n // @ts-expect-error deprecated options\n if (options.polyfill === false) {\n throw new Error(\n \"The 'polyfill' option has been removed. The @babel/runtime \" +\n \"module now skips polyfilling by default.\",\n );\n } else {\n throw new Error(\n \"The 'polyfill' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"regenerator\")) {\n throw new Error(\n \"The 'regenerator' option has been removed. The generators transform \" +\n \"no longers relies on a 'regeneratorRuntime' global. \" +\n \"If you still need to replace imports to the 'regeneratorRuntime' \" +\n \"global, you can use babel-plugin-polyfill-regenerator.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"useESModules\")) {\n throw new Error(\n \"The 'useESModules' option has been removed. @babel/runtime now uses \" +\n \"package.json#exports to support both CommonJS and ESM helpers.\",\n );\n }\n } else {\n // @ts-expect-error(Babel 7 vs Babel 8)\n const { useESModules = false } = options;\n if (typeof useESModules !== \"boolean\" && useESModules !== \"auto\") {\n throw new Error(\n \"The 'useESModules' option must be undefined, or a boolean, or 'auto'.\",\n );\n }\n\n // eslint-disable-next-line no-var\n var esModules =\n useESModules === \"auto\"\n ? api.caller(caller => !!caller?.supportsStaticESM)\n : useESModules;\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"helpers\")) {\n throw new Error(\n \"The 'helpers' option has been removed. \" +\n \"Remove the plugin from your config if \" +\n \"you want to disable helpers import injection.\",\n );\n }\n } else {\n // eslint-disable-next-line no-var\n var { helpers: useRuntimeHelpers = true } = options;\n\n if (typeof useRuntimeHelpers !== \"boolean\") {\n throw new Error(\"The 'helpers' option must be undefined, or a boolean.\");\n }\n }\n\n const HEADER_HELPERS = new Set([\n \"interopRequireWildcard\",\n \"interopRequireDefault\",\n ]);\n\n return {\n name: \"transform-runtime\",\n\n inherits: process.env.BABEL_8_BREAKING\n ? undefined\n : babel7.createPolyfillPlugins(options, runtimeVersion, absoluteRuntime),\n\n pre(file) {\n if (!process.env.BABEL_8_BREAKING && !useRuntimeHelpers) return;\n\n let modulePath: string;\n\n file.set(\"helperGenerator\", (name: string) => {\n modulePath ??= getRuntimePath(\n moduleName ??\n file.get(\"runtimeHelpersModuleName\") ??\n \"@babel/runtime\",\n dirname,\n absoluteRuntime,\n );\n\n // If the helper didn't exist yet at the version given, we bail\n // out and let Babel either insert it directly, or throw an error\n // so that plugins can handle that case properly.\n if (!process.env.BABEL_8_BREAKING) {\n if (!file.availableHelper?.(name, runtimeVersion)) {\n if (name === \"regeneratorRuntime\") {\n // For regeneratorRuntime, we can fallback to the old behavior of\n // relying on the regeneratorRuntime global. If the 'regenerator'\n // option is not disabled, babel-plugin-polyfill-regenerator will\n // then replace it with a @babel/helpers/regenerator import.\n //\n // We must wrap it in a function, because built-in Babel helpers\n // are functions.\n return t.arrowFunctionExpression(\n [],\n t.identifier(\"regeneratorRuntime\"),\n );\n }\n if (\n name === \"regenerator\" ||\n name === \"regeneratorKeys\" ||\n name === \"regeneratorAsync\" ||\n name === \"regeneratorAsyncGen\"\n ) {\n // See the `newHelpersAvailable` function in\n // babel-plugin-transform-regenerator/src/regenerator/util.ts\n return t.identifier(\"__interal_marker_fallback_regenerator__\");\n }\n return;\n }\n } else {\n if (!file.availableHelper(name, runtimeVersion)) return;\n }\n\n // Explicitly set the CommonJS interop helpers to their reserve\n // blockHoist of 4 so they are guaranteed to exist\n // when other things used them to import.\n const blockHoist =\n HEADER_HELPERS.has(name) && !isModule(file.path) ? 4 : undefined;\n\n let helperPath = `${modulePath}/helpers/${\n !process.env.BABEL_8_BREAKING &&\n esModules &&\n file.path.node.sourceType === \"module\"\n ? \"esm/\" + name\n : name\n }`;\n if (absoluteRuntime) helperPath = resolveFSPath(helperPath);\n\n return addDefaultImport(helperPath, name, blockHoist, true);\n });\n\n const cache = new Map();\n\n function addDefaultImport(\n source: string,\n nameHint: string,\n blockHoist: number,\n isHelper = false,\n ) {\n // If something on the page adds a helper when the file is an ES6\n // file, we can't reused the cached helper name after things have been\n // transformed because it has almost certainly been renamed.\n const cacheKey = isModule(file.path);\n const key = `${source}:${nameHint}:${cacheKey || \"\"}`;\n\n let cached = cache.get(key);\n if (cached) {\n cached = t.cloneNode(cached);\n } else {\n cached = addDefault(file.path, source, {\n importedInterop: (\n process.env.BABEL_8_BREAKING\n ? isHelper\n : isHelper && supportsCJSDefault\n )\n ? \"compiled\"\n : \"uncompiled\",\n nameHint,\n blockHoist,\n });\n\n cache.set(key, cached);\n }\n return cached;\n }\n },\n };\n});\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,4BAA4B;AACpD,SAASC,UAAU,EAAEC,QAAQ,QAAQ,8BAA8B;AACnE,SAASC,KAAK,IAAIC,CAAC,QAAQ,aAAa;AAExC,SAASC,aAAa,QAAQ,cAAc;AAC5C,OAAOC,cAAc,IAAIC,aAAa,QAAQ,6BAA6B;AAa3E,eAAeP,OAAO,CAAC,CAACQ,GAAG,EAAEC,OAAgB,EAAEC,OAAO,KAAK;EACzDF,GAAG,CAACG,aAAa,eAAoB,CAAC;EAEtC,MAAM;IACJC,OAAO,EAAEC,cAAc,GAAG,cAAc;IACxCC,eAAe,GAAG,KAAK;IACvBC,UAAU,GAAG;EACf,CAAC,GAAGN,OAAO;EAEX,IACE,OAAOK,eAAe,KAAK,SAAS,IACpC,OAAOA,eAAe,KAAK,QAAQ,EACnC;IACA,MAAM,IAAIE,KAAK,CACb,yEACF,CAAC;EACH;EAEA,IAAI,OAAOH,cAAc,KAAK,QAAQ,EAAE;IACtC,MAAM,IAAIG,KAAK,CAAC,gDAAgD,CAAC;EACnE;EAEA,IAAID,UAAU,KAAK,IAAI,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;IACzD,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAAC;EAWD,IAAIC,MAAM,CAACC,MAAM,CAACT,OAAO,EAAE,aAAa,CAAC,EAAE;IAEzC,IAAIA,OAAO,CAACU,WAAW,EAAE;MACvB,MAAM,IAAIH,KAAK,CACb,gEAAgE,GAC9D,sCACJ,CAAC;IACH,CAAC,MAAM;MACL,MAAM,IAAIA,KAAK,CACb,6DAA6D,GAC3D,uDACJ,CAAC;IACH;EACF;EAEA,IAAIC,MAAM,CAACC,MAAM,CAACT,OAAO,EAAE,UAAU,CAAC,EAAE;IAEtC,IAAIA,OAAO,CAACW,QAAQ,KAAK,KAAK,EAAE;MAC9B,MAAM,IAAIJ,KAAK,CACb,6DAA6D,GAC3D,0CACJ,CAAC;IACH,CAAC,MAAM;MACL,MAAM,IAAIA,KAAK,CACb,0DAA0D,GACxD,uDACJ,CAAC;IACH;EACF;EAEkC;IAChC,IAAIC,MAAM,CAACC,MAAM,CAACT,OAAO,EAAE,aAAa,CAAC,EAAE;MACzC,MAAM,IAAIO,KAAK,CACb,sEAAsE,GACpE,sDAAsD,GACtD,mEAAmE,GACnE,wDACJ,CAAC;IACH;EACF;EAEkC;IAChC,IAAIC,MAAM,CAACC,MAAM,CAACT,OAAO,EAAE,cAAc,CAAC,EAAE;MAC1C,MAAM,IAAIO,KAAK,CACb,sEAAsE,GACpE,gEACJ,CAAC;IACH;EACF;EAgBkC;IAChC,IAAIC,MAAM,CAACC,MAAM,CAACT,OAAO,EAAE,SAAS,CAAC,EAAE;MACrC,MAAM,IAAIO,KAAK,CACb,yCAAyC,GACvC,wCAAwC,GACxC,+CACJ,CAAC;IACH;EACF;EASA,MAAMK,cAAc,GAAG,IAAIC,GAAG,CAAC,CAC7B,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;EAEF,OAAO;IACLC,IAAI,EAAE,mBAAmB;IAEzBC,QAAQ,EACJC,SACsE;IAE1EC,GAAGA,CAACC,IAAI,EAAE;MAAA;MAGR,IAAIC,UAAkB;MAEtBD,IAAI,CAACE,GAAG,CAAC,iBAAiB,EAAGN,IAAY,IAAK;QAC5CK,UAAU,KAAKtB,cAAc,CAC3BS,UAAU,IACRY,IAAI,CAACG,GAAG,CAAC,0BAA0B,CAAC,IACpC,gBAAgB,EAClBpB,OAAO,EACPI,eACF,CAAC;QAgCM;UACL,IAAI,CAACa,IAAI,CAACI,eAAe,CAACR,IAAI,EAAEV,cAAc,CAAC,EAAE;QACnD;QAKA,MAAMmB,UAAU,GACdX,cAAc,CAACY,GAAG,CAACV,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACyB,IAAI,CAACO,IAAI,CAAC,GAAG,CAAC,GAAGT,SAAS;QAElE,IAAIU,UAAU,GAAG,GAAGP,UAAU,YAKxBL,IAAI,EACR;QACF,IAAIT,eAAe,EAAEqB,UAAU,GAAG5B,aAAa,CAAC4B,UAAU,CAAC;QAE3D,OAAOC,gBAAgB,CAACD,UAAU,EAAEZ,IAAI,EAAES,UAAU,EAAE,IAAI,CAAC;MAC7D,CAAC,CAAC;MAEF,MAAMK,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAC;MAEvB,SAASF,gBAAgBA,CACvBG,MAAc,EACdC,QAAgB,EAChBR,UAAkB,EAClBS,QAAQ,GAAG,KAAK,EAChB;QAIA,MAAMC,QAAQ,GAAGxC,QAAQ,CAACyB,IAAI,CAACO,IAAI,CAAC;QACpC,MAAMS,GAAG,GAAG,GAAGJ,MAAM,IAAIC,QAAQ,IAAIE,QAAQ,IAAI,EAAE,EAAE;QAErD,IAAIE,MAAM,GAAGP,KAAK,CAACP,GAAG,CAACa,GAAG,CAAC;QAC3B,IAAIC,MAAM,EAAE;UACVA,MAAM,GAAGxC,CAAC,CAACyC,SAAS,CAACD,MAAM,CAAC;QAC9B,CAAC,MAAM;UACLA,MAAM,GAAG3C,UAAU,CAAC0B,IAAI,CAACO,IAAI,EAAEK,MAAM,EAAE;YACrCO,eAAe,EAETL,QAAQ,GAGV,UAAU,GACV,YAAY;YAChBD,QAAQ;YACRR;UACF,CAAC,CAAC;UAEFK,KAAK,CAACR,GAAG,CAACc,GAAG,EAAEC,MAAM,CAAC;QACxB;QACA,OAAOA,MAAM;MACf;IACF;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]} | ||
| {"version":3,"names":["declare","addDefault","isModule","types","t","getRuntimePath","resolveFSPath","api","options","dirname","assertVersion","version","runtimeVersion","absoluteRuntime","moduleName","Error","Object","hasOwn","useBuiltIns","polyfill","HEADER_HELPERS","Set","name","inherits","undefined","pre","file","modulePath","set","get","availableHelper","blockHoist","has","path","helperPath","addDefaultImport","cache","Map","source","nameHint","isHelper","cacheKey","key","cached","cloneNode","importedInterop"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { addDefault, isModule } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nimport getRuntimePath, { resolveFSPath } from \"./get-runtime-path/index.ts\";\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./babel-7/index.cjs\" with { if: \"!process.env.BABEL_8_BREAKING\" };\nimport semver from \"semver\" with { if: \"!process.env.BABEL_8_BREAKING\" };\n\nexport interface Options {\n absoluteRuntime?: boolean;\n corejs?: string | number | { version: string | number; proposals?: boolean };\n helpers?: boolean;\n version?: string;\n moduleName?: null | string;\n}\n\nexport default declare((api, options: Options, dirname) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n version: runtimeVersion = process.env.BABEL_8_BREAKING\n ? \"8.0.0-beta.0\"\n : \"7.0.0-beta.0\",\n absoluteRuntime = false,\n moduleName = null,\n } = options;\n\n if (\n typeof absoluteRuntime !== \"boolean\" &&\n typeof absoluteRuntime !== \"string\"\n ) {\n throw new Error(\n \"The 'absoluteRuntime' option must be undefined, a boolean, or a string.\",\n );\n }\n\n if (typeof runtimeVersion !== \"string\") {\n throw new Error(`The 'version' option must be a version string.`);\n }\n\n if (moduleName !== null && typeof moduleName !== \"string\") {\n throw new Error(\"The 'moduleName' option must be null or a string.\");\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // In recent @babel/runtime versions, we can use require(\"helper\").default\n // instead of require(\"helper\") so that it has the same interface as the\n // ESM helper, and bundlers can better exchange one format for the other.\n\n // eslint-disable-next-line no-var\n var supportsCJSDefault: boolean;\n if (!runtimeVersion) {\n // If the range is unavailable, we're running the script during Babel's\n // build process, and we want to assume that all versions are satisfied so\n // that the built output will include all definitions.\n supportsCJSDefault = true;\n } else {\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // babel-core's availableHelper() API.\n const normalizedRuntimeVersion = semver.valid(runtimeVersion)\n ? `^${runtimeVersion}`\n : runtimeVersion;\n\n supportsCJSDefault =\n !semver.intersects(`<7.13.0`, normalizedRuntimeVersion) &&\n !semver.intersects(`>=8.0.0`, normalizedRuntimeVersion);\n }\n }\n\n if (Object.hasOwn(options, \"useBuiltIns\")) {\n // @ts-expect-error deprecated options\n if (options.useBuiltIns) {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. The @babel/runtime \" +\n \"module now uses builtins by default.\",\n );\n } else {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (Object.hasOwn(options, \"polyfill\")) {\n // @ts-expect-error deprecated options\n if (options.polyfill === false) {\n throw new Error(\n \"The 'polyfill' option has been removed. The @babel/runtime \" +\n \"module now skips polyfilling by default.\",\n );\n } else {\n throw new Error(\n \"The 'polyfill' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"regenerator\")) {\n throw new Error(\n \"The 'regenerator' option has been removed. The generators transform \" +\n \"no longers relies on a 'regeneratorRuntime' global. \" +\n \"If you still need to replace imports to the 'regeneratorRuntime' \" +\n \"global, you can use babel-plugin-polyfill-regenerator.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"useESModules\")) {\n throw new Error(\n \"The 'useESModules' option has been removed. @babel/runtime now uses \" +\n \"package.json#exports to support both CommonJS and ESM helpers.\",\n );\n }\n } else {\n // @ts-expect-error(Babel 7 vs Babel 8)\n const { useESModules = false } = options;\n if (typeof useESModules !== \"boolean\" && useESModules !== \"auto\") {\n throw new Error(\n \"The 'useESModules' option must be undefined, or a boolean, or 'auto'.\",\n );\n }\n\n // eslint-disable-next-line no-var\n var esModules =\n useESModules === \"auto\"\n ? api.caller(caller => !!caller?.supportsStaticESM)\n : useESModules;\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"helpers\")) {\n throw new Error(\n \"The 'helpers' option has been removed. \" +\n \"Remove the plugin from your config if \" +\n \"you want to disable helpers import injection.\",\n );\n }\n } else {\n // eslint-disable-next-line no-var\n var { helpers: useRuntimeHelpers = true } = options;\n\n if (typeof useRuntimeHelpers !== \"boolean\") {\n throw new Error(\"The 'helpers' option must be undefined, or a boolean.\");\n }\n }\n\n const HEADER_HELPERS = new Set([\n \"interopRequireWildcard\",\n \"interopRequireDefault\",\n ]);\n\n return {\n name: \"transform-runtime\",\n\n inherits: process.env.BABEL_8_BREAKING\n ? undefined\n : babel7.createPolyfillPlugins(options, runtimeVersion, absoluteRuntime),\n\n pre(file) {\n if (!process.env.BABEL_8_BREAKING && !useRuntimeHelpers) return;\n\n let modulePath: string;\n\n file.set(\"helperGenerator\", (name: string) => {\n modulePath ??= getRuntimePath(\n moduleName ??\n file.get(\"runtimeHelpersModuleName\") ??\n \"@babel/runtime\",\n dirname,\n absoluteRuntime,\n );\n\n // If the helper didn't exist yet at the version given, we bail\n // out and let Babel either insert it directly, or throw an error\n // so that plugins can handle that case properly.\n if (!process.env.BABEL_8_BREAKING) {\n if (!file.availableHelper?.(name, runtimeVersion)) {\n if (name === \"regeneratorRuntime\") {\n // For regeneratorRuntime, we can fallback to the old behavior of\n // relying on the regeneratorRuntime global. If the 'regenerator'\n // option is not disabled, babel-plugin-polyfill-regenerator will\n // then replace it with a @babel/helpers/regenerator import.\n //\n // We must wrap it in a function, because built-in Babel helpers\n // are functions.\n return t.arrowFunctionExpression(\n [],\n t.identifier(\"regeneratorRuntime\"),\n );\n }\n if (\n name === \"regenerator\" ||\n name === \"regeneratorKeys\" ||\n name === \"regeneratorAsync\" ||\n name === \"regeneratorAsyncGen\"\n ) {\n // See the `newHelpersAvailable` function in\n // babel-plugin-transform-regenerator/src/regenerator/util.ts\n return t.identifier(\"__interal_marker_fallback_regenerator__\");\n }\n return;\n }\n } else {\n if (!file.availableHelper(name, runtimeVersion)) return;\n }\n\n // Explicitly set the CommonJS interop helpers to their reserve\n // blockHoist of 4 so they are guaranteed to exist\n // when other things used them to import.\n const blockHoist =\n HEADER_HELPERS.has(name) && !isModule(file.path) ? 4 : undefined;\n\n let helperPath = `${modulePath}/helpers/${\n !process.env.BABEL_8_BREAKING &&\n esModules &&\n file.path.node.sourceType === \"module\"\n ? \"esm/\" + name\n : name\n }`;\n if (absoluteRuntime) helperPath = resolveFSPath(helperPath);\n\n return addDefaultImport(helperPath, name, blockHoist, true);\n });\n\n const cache = new Map();\n\n function addDefaultImport(\n source: string,\n nameHint: string,\n blockHoist: number,\n isHelper = false,\n ) {\n // If something on the page adds a helper when the file is an ES6\n // file, we can't reused the cached helper name after things have been\n // transformed because it has almost certainly been renamed.\n const cacheKey = isModule(file.path);\n const key = `${source}:${nameHint}:${cacheKey || \"\"}`;\n\n let cached = cache.get(key);\n if (cached) {\n cached = t.cloneNode(cached);\n } else {\n cached = addDefault(file.path, source, {\n importedInterop: (\n process.env.BABEL_8_BREAKING\n ? isHelper\n : isHelper && supportsCJSDefault\n )\n ? \"compiled\"\n : \"uncompiled\",\n nameHint,\n blockHoist,\n });\n\n cache.set(key, cached);\n }\n return cached;\n }\n },\n };\n});\n"],"mappings":"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","ignoreList":[]} |
+10
-11
| { | ||
| "name": "@babel/plugin-transform-runtime", | ||
| "version": "8.0.0-beta.2", | ||
| "version": "8.0.0-beta.3", | ||
| "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", | ||
@@ -23,16 +23,15 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-module-imports": "^8.0.0-beta.2", | ||
| "@babel/helper-plugin-utils": "^8.0.0-beta.2", | ||
| "semver": "^7.3.4" | ||
| "@babel/helper-module-imports": "^8.0.0-beta.3", | ||
| "@babel/helper-plugin-utils": "^8.0.0-beta.3" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-beta.2" | ||
| "@babel/core": "^8.0.0-beta.3" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-beta.2", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-beta.2", | ||
| "@babel/helpers": "^8.0.0-beta.2", | ||
| "@babel/preset-env": "^8.0.0-beta.2", | ||
| "@babel/runtime": "^8.0.0-beta.2", | ||
| "@babel/runtime-corejs3": "^8.0.0-beta.2", | ||
| "@babel/core": "^8.0.0-beta.3", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-beta.3", | ||
| "@babel/helpers": "^8.0.0-beta.3", | ||
| "@babel/preset-env": "^8.0.0-beta.3", | ||
| "@babel/runtime": "^8.0.0-beta.3", | ||
| "@babel/runtime-corejs3": "^8.0.0-beta.3", | ||
| "babel-plugin-polyfill-corejs3": "^0.13.0" | ||
@@ -39,0 +38,0 @@ }, |
| import semver from "semver"; | ||
| export function hasMinVersion(minVersion, runtimeVersion) { | ||
| if (!runtimeVersion) return true; | ||
| if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`; | ||
| return !semver.intersects(`<${minVersion}`, runtimeVersion) && !semver.intersects(`>=8.0.0`, runtimeVersion); | ||
| } | ||
| //# sourceMappingURL=helpers.js.map |
| {"version":3,"names":["semver","hasMinVersion","minVersion","runtimeVersion","valid","intersects"],"sources":["../src/helpers.ts"],"sourcesContent":["import semver from \"semver\";\n\nexport function hasMinVersion(\n minVersion: string,\n runtimeVersion: string | void,\n) {\n // If the range is unavailable, we're running the script during Babel's\n // build process, and we want to assume that all versions are satisfied so\n // that the built output will include all definitions.\n if (!runtimeVersion) return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // babel-core's availableHelper() API.\n if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;\n\n return (\n !semver.intersects(`<${minVersion}`, runtimeVersion) &&\n !semver.intersects(`>=8.0.0`, runtimeVersion)\n );\n}\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,QAAQ;AAE3B,OAAO,SAASC,aAAaA,CAC3BC,UAAkB,EAClBC,cAA6B,EAC7B;EAIA,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAmBhC,IAAIH,MAAM,CAACI,KAAK,CAACD,cAAc,CAAC,EAAEA,cAAc,GAAG,IAAIA,cAAc,EAAE;EAEvE,OACE,CAACH,MAAM,CAACK,UAAU,CAAC,IAAIH,UAAU,EAAE,EAAEC,cAAc,CAAC,IACpD,CAACH,MAAM,CAACK,UAAU,CAAC,SAAS,EAAEF,cAAc,CAAC;AAEjD","ignoreList":[]} |
3
-25%34555
-2.48%16
-11.11%245
-3.16%