summaryrefslogtreecommitdiff
path: root/node_modules/babel-plugin-minify-numeric-literals
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
commitefbc2ffe6a1ee5ec38a4396305561d6515d0943e (patch)
tree2b4c94f18f2c792dfda813050755d5c0273fae22 /node_modules/babel-plugin-minify-numeric-literals
parent43acceb75957c880a5ba5a31aae221394a36d5f6 (diff)
node fixes, updates
Diffstat (limited to 'node_modules/babel-plugin-minify-numeric-literals')
-rw-r--r--node_modules/babel-plugin-minify-numeric-literals/README.md49
-rw-r--r--node_modules/babel-plugin-minify-numeric-literals/lib/index.js28
-rw-r--r--node_modules/babel-plugin-minify-numeric-literals/package.json15
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"
+}