diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2024-08-30 17:21:18 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2024-08-30 17:21:18 +0800 |
| commit | efbc2ffe6a1ee5ec38a4396305561d6515d0943e (patch) | |
| tree | 2b4c94f18f2c792dfda813050755d5c0273fae22 /node_modules/babel-plugin-transform-member-expression-literals | |
| parent | 43acceb75957c880a5ba5a31aae221394a36d5f6 (diff) | |
node fixes, updates
Diffstat (limited to 'node_modules/babel-plugin-transform-member-expression-literals')
3 files changed, 105 insertions, 0 deletions
diff --git a/node_modules/babel-plugin-transform-member-expression-literals/README.md b/node_modules/babel-plugin-transform-member-expression-literals/README.md new file mode 100644 index 00000000..b9c1967e --- /dev/null +++ b/node_modules/babel-plugin-transform-member-expression-literals/README.md @@ -0,0 +1,55 @@ +# babel-plugin-transform-member-expression-literals + +Turn valid member expression property literals into plain identifiers + +## Example + +**In** + +```javascript +obj["foo"] = "isValid"; + +obj.const = "isKeyword"; +obj["var"] = "isKeyword"; +``` + +**Out** + +```javascript +obj.foo = "isValid"; + +obj["const"] = "isKeyword"; +obj["var"] = "isKeyword"; +``` + +## Installation + +```sh +npm install babel-plugin-transform-member-expression-literals --save-dev +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-member-expression-literals"] +} +``` + +### Via CLI + +```sh +babel --plugins transform-member-expression-literals script.js +``` + +### Via Node API + +```javascript +require("@babel/core").transform("code", { + plugins: ["transform-member-expression-literals"] +}); +``` diff --git a/node_modules/babel-plugin-transform-member-expression-literals/lib/index.js b/node_modules/babel-plugin-transform-member-expression-literals/lib/index.js new file mode 100644 index 00000000..2eb76ec6 --- /dev/null +++ b/node_modules/babel-plugin-transform-member-expression-literals/lib/index.js @@ -0,0 +1,36 @@ +"use strict"; + +module.exports = function ({ + types: t +}) { + return { + name: "transform-member-expression-literals", + visitor: { + // foo['bar'] -> foo.bar + MemberExpression: { + exit({ + node + }) { + const prop = node.property; + + if (!node.computed || !t.isStringLiteral(prop)) { + return; + } + + if (prop.value.match(/^\d+$/)) { + const newProp = parseInt(prop.value, 10); + + if (newProp.toString() === prop.value) { + node.property = t.numericLiteral(newProp); + node.computed = false; + } + } else if (t.isValidIdentifier(prop.value)) { + node.property = t.identifier(prop.value); + node.computed = false; + } + } + + } + } + }; +};
\ No newline at end of file diff --git a/node_modules/babel-plugin-transform-member-expression-literals/package.json b/node_modules/babel-plugin-transform-member-expression-literals/package.json new file mode 100644 index 00000000..1a1415e6 --- /dev/null +++ b/node_modules/babel-plugin-transform-member-expression-literals/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-plugin-transform-member-expression-literals", + "version": "6.9.4", + "description": "Turn valid member expression property literals into plain identifiers", + "keywords": [ + "babel-plugin" + ], + "homepage": "https://github.com/babel/minify#readme", + "bugs": "https://github.com/babel/minify/issues", + "license": "MIT", + "author": "amasad", + "main": "lib/index.js", + "repository": "https://github.com/babel/minify/tree/master/packages/babel-plugin-transform-member-expression-literals" +} |
