From efbc2ffe6a1ee5ec38a4396305561d6515d0943e Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Fri, 30 Aug 2024 17:21:18 +0800 Subject: node fixes, updates --- .../README.md | 55 ++++++++++++++++++++++ .../lib/index.js | 36 ++++++++++++++ .../package.json | 14 ++++++ 3 files changed, 105 insertions(+) create mode 100644 node_modules/babel-plugin-transform-member-expression-literals/README.md create mode 100644 node_modules/babel-plugin-transform-member-expression-literals/lib/index.js create mode 100644 node_modules/babel-plugin-transform-member-expression-literals/package.json (limited to 'node_modules/babel-plugin-transform-member-expression-literals') 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" +} -- cgit v1.2.3