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-minify-numeric-literals | |
| parent | 43acceb75957c880a5ba5a31aae221394a36d5f6 (diff) | |
node fixes, updates
Diffstat (limited to 'node_modules/babel-plugin-minify-numeric-literals')
3 files changed, 92 insertions, 0 deletions
diff --git a/node_modules/babel-plugin-minify-numeric-literals/README.md b/node_modules/babel-plugin-minify-numeric-literals/README.md new file mode 100644 index 00000000..941a116f --- /dev/null +++ b/node_modules/babel-plugin-minify-numeric-literals/README.md @@ -0,0 +1,49 @@ +# babel-plugin-minify-numeric-literals + +Shortening of numeric literals via scientific notation + +## Example + +**In** + +```javascript +[1000, -20000] +``` + +**Out** + +```javascript +[1e3, -2e4] +``` + +## Installation + +```sh +npm install babel-plugin-minify-numeric-literals --save-dev +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["minify-numeric-literals"] +} +``` + +### Via CLI + +```sh +babel --plugins minify-numeric-literals script.js +``` + +### Via Node API + +```javascript +require("@babel/core").transform("code", { + plugins: ["minify-numeric-literals"] +}); +``` diff --git a/node_modules/babel-plugin-minify-numeric-literals/lib/index.js b/node_modules/babel-plugin-minify-numeric-literals/lib/index.js new file mode 100644 index 00000000..cef4cc47 --- /dev/null +++ b/node_modules/babel-plugin-minify-numeric-literals/lib/index.js @@ -0,0 +1,28 @@ +"use strict"; + +module.exports = function () { + return { + name: "minify-numeric-literals", + visitor: { + NumericLiteral(path) { + if (!path.node.extra) return; + const normal = path.node.value.toString().replace(/^0\./, "."); + let exponential = path.node.value.toExponential().replace(/\+/g, ""); + + if (exponential.indexOf(".") >= 0 && exponential.indexOf("e") >= 0) { + const lastChar = exponential.substr(exponential.lastIndexOf("e") + 1); + const dotIndex = exponential.lastIndexOf(".") + 1; + const subLength = exponential.substr(dotIndex, exponential.lastIndexOf("e") - dotIndex).length; + exponential = (exponential.substr(0, exponential.lastIndexOf("e") + 1) + (lastChar - subLength)).replace(".", "").replace(/e0/, ""); + } + + const replacement = normal.length > exponential.length ? exponential : normal; + + if (path.node.extra.raw.length > replacement.length) { + path.node.extra.raw = replacement; + } + } + + } + }; +};
\ No newline at end of file diff --git a/node_modules/babel-plugin-minify-numeric-literals/package.json b/node_modules/babel-plugin-minify-numeric-literals/package.json new file mode 100644 index 00000000..3d433224 --- /dev/null +++ b/node_modules/babel-plugin-minify-numeric-literals/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-plugin-minify-numeric-literals", + "version": "0.4.3", + "description": "Shortens numeric literals using scientific notation", + "keywords": [ + "babel-minify", + "babel-plugin" + ], + "homepage": "https://github.com/babel/minify#readme", + "bugs": "https://github.com/babel/minify/issues", + "license": "MIT", + "author": "kangax", + "main": "lib/index.js", + "repository": "https://github.com/babel/minify/tree/master/packages/babel-plugin-minify-numeric-literals" +} |
