@babel/plugin-transform-computed-properties
Advanced tools
+1
-0
@@ -5,2 +5,3 @@ import * as _babel_core from '@babel/core'; | ||
| interface Options { | ||
| /** @deprecated Use the `setComputedProperties` assumption instead. */ | ||
| loose?: boolean; | ||
@@ -7,0 +8,0 @@ } |
+4
-1
@@ -5,3 +5,6 @@ import { types } from '@babel/core'; | ||
| const index = declare((api, options) => { | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.4"); | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.5"); | ||
| if ("loose" in options) { | ||
| console.warn("@babel/plugin-transform-computed-properties: The 'loose' option has been deprecated, " + "use the 'setComputedProperties' assumption instead (https://babeljs.io/assumptions)."); | ||
| } | ||
| const setComputedProperties = api.assumption("setComputedProperties") ?? options.loose; | ||
@@ -8,0 +11,0 @@ const pushComputedProps = setComputedProperties ? pushComputedPropsLoose : pushComputedPropsSpec; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginPass, Scope } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n loose?: boolean;\n}\n\ntype PropertyInfo = {\n scope: Scope;\n objId: t.Identifier;\n body: t.Statement[];\n computedProps: t.ObjectMember[];\n initPropExpression: t.ObjectExpression;\n state: PluginPass;\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n\n const setComputedProperties =\n api.assumption(\"setComputedProperties\") ?? options.loose;\n\n const pushComputedProps = setComputedProperties\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n function buildDefineAccessor(\n state: PluginPass,\n obj: t.Expression,\n prop: t.ObjectMethod,\n ) {\n const type = prop.kind as \"get\" | \"set\";\n const key =\n !prop.computed && t.isIdentifier(prop.key)\n ? t.stringLiteral(prop.key.name)\n : prop.key;\n const fn = getValue(prop)!;\n\n return t.callExpression(state.addHelper(\"defineAccessor\"), [\n t.stringLiteral(type),\n obj,\n key,\n fn,\n ]);\n }\n\n /**\n * Get value of an object member under object expression.\n * Returns a function expression if prop is a ObjectMethod.\n *\n * @param {t.ObjectMember} prop\n * @returns t.Expression\n */\n function getValue(prop: t.ObjectMember) {\n if (t.isObjectProperty(prop)) {\n return prop.value as t.Expression;\n } else if (t.isObjectMethod(prop)) {\n return t.functionExpression(\n null,\n prop.params,\n prop.body,\n prop.generator,\n prop.async,\n );\n }\n }\n\n function pushAssign(\n objId: t.Identifier,\n prop: t.ObjectMember,\n body: t.Statement[],\n ) {\n body.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.cloneNode(objId),\n prop.key,\n prop.computed || t.isLiteral(prop.key),\n ),\n getValue(prop)!,\n ),\n ),\n );\n }\n\n function pushComputedPropsLoose(info: PropertyInfo) {\n const { computedProps, state, initPropExpression, objId, body } = info;\n\n for (const prop of computedProps) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n if (computedProps.length === 1) {\n return buildDefineAccessor(state, initPropExpression, prop);\n } else {\n body.push(\n t.expressionStatement(\n buildDefineAccessor(state, t.cloneNode(objId), prop),\n ),\n );\n }\n } else {\n pushAssign(t.cloneNode(objId), prop, body);\n }\n }\n }\n\n function pushComputedPropsSpec(info: PropertyInfo) {\n const { objId, body, computedProps, state } = info;\n\n // To prevent too deep AST structures in case of large objects\n const CHUNK_LENGTH_CAP = 10;\n\n let currentChunk: t.ObjectMember[] | null = null;\n const computedPropsChunks: t.ObjectMember[][] = [];\n for (const prop of computedProps) {\n if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) {\n currentChunk = [];\n computedPropsChunks.push(currentChunk);\n }\n currentChunk.push(prop);\n }\n\n for (const chunk of computedPropsChunks) {\n const single = computedPropsChunks.length === 1;\n let node: t.Expression = single\n ? info.initPropExpression\n : t.cloneNode(objId);\n for (const prop of chunk) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n node = buildDefineAccessor(info.state, node, prop);\n } else {\n node = t.callExpression(state.addHelper(\"defineProperty\"), [\n node,\n // PrivateName must not be in ObjectExpression\n t.toComputedKey(prop) as t.Expression,\n // the value of ObjectProperty in ObjectExpression must be an expression\n getValue(prop)!,\n ]);\n }\n }\n if (single) return node;\n body.push(t.expressionStatement(node));\n }\n }\n\n return {\n name: \"transform-computed-properties\",\n\n visitor: {\n ObjectExpression: {\n exit(path, state) {\n const { node, parent, scope } = path;\n let hasComputed = false;\n for (const prop of node.properties) {\n // @ts-expect-error SpreadElement must not have computed property\n hasComputed = prop.computed === true;\n if (hasComputed) break;\n }\n if (!hasComputed) return;\n\n // put all getters/setters into the first object expression as well as all initialisers up\n // to the first computed property\n\n const initProps: t.ObjectMember[] = [];\n const computedProps: t.ObjectMember[] = [];\n let foundComputed = false;\n\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n continue;\n }\n if (prop.computed) {\n foundComputed = true;\n }\n\n if (foundComputed) {\n computedProps.push(prop);\n } else {\n initProps.push(prop);\n }\n }\n\n const objId = scope.generateUidIdentifierBasedOnNode(parent);\n const initPropExpression = t.objectExpression(initProps);\n const body = [];\n\n body.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(objId, initPropExpression),\n ]),\n );\n\n const single = pushComputedProps({\n scope,\n objId,\n body,\n computedProps,\n initPropExpression,\n state,\n });\n\n if (single) {\n path.replaceWith(single);\n } else {\n if (setComputedProperties) {\n body.push(t.expressionStatement(t.cloneNode(objId)));\n }\n path.replaceWithMultiple(body);\n }\n },\n },\n },\n };\n});\n"],"names":["declare","api","options","assertVersion","setComputedProperties","assumption","loose","pushComputedProps","pushComputedPropsLoose","pushComputedPropsSpec","buildDefineAccessor","state","obj","prop","type","kind","key","computed","t","isIdentifier","stringLiteral","name","fn","getValue","callExpression","addHelper","isObjectProperty","value","isObjectMethod","functionExpression","params","body","generator","async","pushAssign","objId","push","expressionStatement","assignmentExpression","memberExpression","cloneNode","isLiteral","info","computedProps","initPropExpression","length","CHUNK_LENGTH_CAP","currentChunk","computedPropsChunks","chunk","single","node","toComputedKey","visitor","ObjectExpression","exit","path","parent","scope","hasComputed","properties","initProps","foundComputed","isSpreadElement","generateUidIdentifierBasedOnNode","objectExpression","variableDeclaration","variableDeclarator","replaceWith","replaceWithMultiple"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginPass, Scope } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n /** @deprecated Use the `setComputedProperties` assumption instead. */\n loose?: boolean;\n}\n\ntype PropertyInfo = {\n scope: Scope;\n objId: t.Identifier;\n body: t.Statement[];\n computedProps: t.ObjectMember[];\n initPropExpression: t.ObjectExpression;\n state: PluginPass;\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.0-0 || ^8.0.0\"));\n\n if (\"loose\" in options) {\n console.warn(\n \"@babel/plugin-transform-computed-properties: The 'loose' option has been deprecated, \" +\n \"use the 'setComputedProperties' assumption instead (https://babeljs.io/assumptions).\",\n );\n }\n\n const setComputedProperties =\n api.assumption(\"setComputedProperties\") ?? options.loose;\n\n const pushComputedProps = setComputedProperties\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n function buildDefineAccessor(\n state: PluginPass,\n obj: t.Expression,\n prop: t.ObjectMethod,\n ) {\n const type = prop.kind as \"get\" | \"set\";\n const key =\n !prop.computed && t.isIdentifier(prop.key)\n ? t.stringLiteral(prop.key.name)\n : prop.key;\n const fn = getValue(prop)!;\n\n return t.callExpression(state.addHelper(\"defineAccessor\"), [\n t.stringLiteral(type),\n obj,\n key,\n fn,\n ]);\n }\n\n /**\n * Get value of an object member under object expression.\n * Returns a function expression if prop is a ObjectMethod.\n *\n * @param {t.ObjectMember} prop\n * @returns t.Expression\n */\n function getValue(prop: t.ObjectMember) {\n if (t.isObjectProperty(prop)) {\n return prop.value as t.Expression;\n } else if (t.isObjectMethod(prop)) {\n return t.functionExpression(\n null,\n prop.params,\n prop.body,\n prop.generator,\n prop.async,\n );\n }\n }\n\n function pushAssign(\n objId: t.Identifier,\n prop: t.ObjectMember,\n body: t.Statement[],\n ) {\n body.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.cloneNode(objId),\n prop.key,\n prop.computed || t.isLiteral(prop.key),\n ),\n getValue(prop)!,\n ),\n ),\n );\n }\n\n function pushComputedPropsLoose(info: PropertyInfo) {\n const { computedProps, state, initPropExpression, objId, body } = info;\n\n for (const prop of computedProps) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n if (computedProps.length === 1) {\n return buildDefineAccessor(state, initPropExpression, prop);\n } else {\n body.push(\n t.expressionStatement(\n buildDefineAccessor(state, t.cloneNode(objId), prop),\n ),\n );\n }\n } else {\n pushAssign(t.cloneNode(objId), prop, body);\n }\n }\n }\n\n function pushComputedPropsSpec(info: PropertyInfo) {\n const { objId, body, computedProps, state } = info;\n\n // To prevent too deep AST structures in case of large objects\n const CHUNK_LENGTH_CAP = 10;\n\n let currentChunk: t.ObjectMember[] | null = null;\n const computedPropsChunks: t.ObjectMember[][] = [];\n for (const prop of computedProps) {\n if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) {\n currentChunk = [];\n computedPropsChunks.push(currentChunk);\n }\n currentChunk.push(prop);\n }\n\n for (const chunk of computedPropsChunks) {\n const single = computedPropsChunks.length === 1;\n let node: t.Expression = single\n ? info.initPropExpression\n : t.cloneNode(objId);\n for (const prop of chunk) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n node = buildDefineAccessor(info.state, node, prop);\n } else {\n node = t.callExpression(state.addHelper(\"defineProperty\"), [\n node,\n // PrivateName must not be in ObjectExpression\n t.toComputedKey(prop) as t.Expression,\n // the value of ObjectProperty in ObjectExpression must be an expression\n getValue(prop)!,\n ]);\n }\n }\n if (single) return node;\n body.push(t.expressionStatement(node));\n }\n }\n\n return {\n name: \"transform-computed-properties\",\n\n visitor: {\n ObjectExpression: {\n exit(path, state) {\n const { node, parent, scope } = path;\n let hasComputed = false;\n for (const prop of node.properties) {\n // @ts-expect-error SpreadElement must not have computed property\n hasComputed = prop.computed === true;\n if (hasComputed) break;\n }\n if (!hasComputed) return;\n\n // put all getters/setters into the first object expression as well as all initialisers up\n // to the first computed property\n\n const initProps: t.ObjectMember[] = [];\n const computedProps: t.ObjectMember[] = [];\n let foundComputed = false;\n\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n continue;\n }\n if (prop.computed) {\n foundComputed = true;\n }\n\n if (foundComputed) {\n computedProps.push(prop);\n } else {\n initProps.push(prop);\n }\n }\n\n const objId = scope.generateUidIdentifierBasedOnNode(parent);\n const initPropExpression = t.objectExpression(initProps);\n const body = [];\n\n body.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(objId, initPropExpression),\n ]),\n );\n\n const single = pushComputedProps({\n scope,\n objId,\n body,\n computedProps,\n initPropExpression,\n state,\n });\n\n if (single) {\n path.replaceWith(single);\n } else {\n if (setComputedProperties) {\n body.push(t.expressionStatement(t.cloneNode(objId)));\n }\n path.replaceWithMultiple(body);\n }\n },\n },\n },\n };\n});\n"],"names":["declare","api","options","assertVersion","console","warn","setComputedProperties","assumption","loose","pushComputedProps","pushComputedPropsLoose","pushComputedPropsSpec","buildDefineAccessor","state","obj","prop","type","kind","key","computed","t","isIdentifier","stringLiteral","name","fn","getValue","callExpression","addHelper","isObjectProperty","value","isObjectMethod","functionExpression","params","body","generator","async","pushAssign","objId","push","expressionStatement","assignmentExpression","memberExpression","cloneNode","isLiteral","info","computedProps","initPropExpression","length","CHUNK_LENGTH_CAP","currentChunk","computedPropsChunks","chunk","single","node","toComputedKey","visitor","ObjectExpression","exit","path","parent","scope","hasComputed","properties","initProps","foundComputed","isSpreadElement","generateUidIdentifierBasedOnNode","objectExpression","variableDeclaration","variableDeclarator","replaceWith","replaceWithMultiple"],"mappings":"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"} |
+6
-6
| { | ||
| "name": "@babel/plugin-transform-computed-properties", | ||
| "version": "8.0.0-rc.4", | ||
| "version": "8.0.0-rc.5", | ||
| "description": "Compile ES2015 computed properties to ES5", | ||
@@ -20,13 +20,13 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.4" | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.5" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-rc.4" | ||
| "@babel/core": "^8.0.0-rc.5" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-rc.4", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.4" | ||
| "@babel/core": "^8.0.0-rc.5", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.5" | ||
| }, | ||
| "engines": { | ||
| "node": "^20.19.0 || >=22.12.0" | ||
| "node": "^22.18.0 || >=24.11.0" | ||
| }, | ||
@@ -33,0 +33,0 @@ "author": "The Babel Team (https://babel.dev/team)", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
20731
3.78%142
2.9%1
Infinity%