@fnmain/number 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -1
- package/dist/index.js.map +1 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +11 -0
- package/dist/test.js.map +1 -0
- package/package.json +5 -1
- package/src/index.ts +44 -0
- package/src/test.ts +12 -1
- package/tsconfig.json +0 -14
package/dist/index.d.ts
CHANGED
@@ -9,4 +9,6 @@ export declare function toYi(value: number, { fixed, trimEndZeros, space }?: Opt
|
|
9
9
|
export declare function toWanYi(value: number, { fixed, trimEndZeros, space }?: Options): string;
|
10
10
|
export declare function toAuto(value: number, { fixed, trimEndZeros, space }?: Options): string;
|
11
11
|
export declare function toPercent(value: number, { fixed, trimEndZeros, space }?: Options): string;
|
12
|
+
export declare function parseNumber(input: string): number | null;
|
12
13
|
export {};
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,EAAE,KAAS,EAAE,YAAoB,EAAE,KAAU,EAAE,GAAE,OAAY,GAC5D,MAAM,CAIR;AAED,wBAAgB,IAAI,CAClB,KAAK,EAAE,MAAM,EACb,EAAE,KAAS,EAAE,YAAoB,EAAE,KAAU,EAAE,GAAE,OAAY,GAC5D,MAAM,CAIR;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,EAAE,KAAS,EAAE,YAAoB,EAAE,KAAU,EAAE,GAAE,OAAY,GAC5D,MAAM,CAIR;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,MAAM,EACb,EAAE,KAAS,EAAE,YAAoB,EAAE,KAAU,EAAE,GAAE,OAAY,GAC5D,MAAM,CAcR;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,EAAE,KAAS,EAAE,YAAoB,EAAE,KAAU,EAAE,GAAE,OAAY,UAK9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0CxD"}
|
package/dist/index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.toPercent = exports.toAuto = exports.toWanYi = exports.toYi = exports.toWan = exports.trimTrailingZeros = void 0;
|
3
|
+
exports.parseNumber = exports.toPercent = exports.toAuto = exports.toWanYi = exports.toYi = exports.toWan = exports.trimTrailingZeros = void 0;
|
4
4
|
function trimTrailingZeros(numberString) {
|
5
5
|
// Check if the string contains a decimal point
|
6
6
|
if (numberString.includes(".")) {
|
@@ -51,3 +51,43 @@ function toPercent(value, { fixed = 2, trimEndZeros = false, space = "" } = {})
|
|
51
51
|
return ret + space + "%";
|
52
52
|
}
|
53
53
|
exports.toPercent = toPercent;
|
54
|
+
function parseNumber(input) {
|
55
|
+
// Remove whitespace
|
56
|
+
input = input.trim();
|
57
|
+
// Define a helper function to handle suffixes
|
58
|
+
const handleSuffix = (number, suffix) => {
|
59
|
+
switch (suffix.toLowerCase()) {
|
60
|
+
case "k":
|
61
|
+
return number * 1e3;
|
62
|
+
case "m":
|
63
|
+
return number * 1e6;
|
64
|
+
case "g":
|
65
|
+
return number * 1e9;
|
66
|
+
case "t":
|
67
|
+
return number * 1e12;
|
68
|
+
default:
|
69
|
+
return number;
|
70
|
+
}
|
71
|
+
};
|
72
|
+
// Check for percentage
|
73
|
+
if (input.endsWith("%")) {
|
74
|
+
const number = parseFloat(input.slice(0, -1));
|
75
|
+
return isNaN(number) ? null : number / 100;
|
76
|
+
}
|
77
|
+
// Check for per mille
|
78
|
+
if (input.endsWith("‰")) {
|
79
|
+
const number = parseFloat(input.slice(0, -1));
|
80
|
+
return isNaN(number) ? null : number / 1000;
|
81
|
+
}
|
82
|
+
// Check for suffixes (k, m, g, t)
|
83
|
+
const suffixMatch = input.match(/([kmgKMGtT])$/);
|
84
|
+
if (suffixMatch) {
|
85
|
+
const number = parseFloat(input.slice(0, -1));
|
86
|
+
return isNaN(number) ? null : handleSuffix(number, suffixMatch[0]);
|
87
|
+
}
|
88
|
+
// Check for scientific notation and other formats
|
89
|
+
const number = parseFloat(input);
|
90
|
+
return isNaN(number) ? null : number;
|
91
|
+
}
|
92
|
+
exports.parseNumber = parseNumber;
|
93
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":""}
|
package/dist/test.js
CHANGED
@@ -12,3 +12,14 @@ console.log((0, index_1.toAuto)(1.2, { fixed: 4, trimEndZeros: true }));
|
|
12
12
|
console.log((0, index_1.toPercent)(0.1234, { fixed: 1, space: " " }));
|
13
13
|
console.log((0, index_1.toPercent)(1.23456, { trimEndZeros: true }));
|
14
14
|
console.log((0, index_1.toPercent)(1.9, { fixed: 4, trimEndZeros: true }));
|
15
|
+
// Example usage
|
16
|
+
console.log((0, index_1.parseNumber)("50%")); // 0.5
|
17
|
+
console.log((0, index_1.parseNumber)("1e3")); // 1000
|
18
|
+
console.log((0, index_1.parseNumber)(" 123 ")); // 123
|
19
|
+
console.log((0, index_1.parseNumber)("100‰")); // 0.1
|
20
|
+
console.log((0, index_1.parseNumber)("5k")); // 5000
|
21
|
+
console.log((0, index_1.parseNumber)("3M")); // 3000000
|
22
|
+
console.log((0, index_1.parseNumber)("2G")); // 2000000000
|
23
|
+
console.log((0, index_1.parseNumber)("1t")); // 1000000000000
|
24
|
+
console.log((0, index_1.parseNumber)("abc")); // null
|
25
|
+
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,mCAAyD;AAEzD,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,SAAS,CAAC,CAAC,CAAC;AAE/B,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5E,OAAO,CAAC,GAAG,CAAC,IAAA,cAAM,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3D,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAS,EAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzD,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAS,EAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAS,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE9D,gBAAgB;AAChB,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;AACvC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO;AACxC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;AAC3C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AACxC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO;AACvC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;AAC1C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa;AAC7C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB;AAChD,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fnmain/number",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.2.0",
|
4
4
|
"description": "number utils",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -10,6 +10,10 @@
|
|
10
10
|
},
|
11
11
|
"author": "DC",
|
12
12
|
"license": "MIT",
|
13
|
+
"files": [
|
14
|
+
"dist",
|
15
|
+
"src"
|
16
|
+
],
|
13
17
|
"devDependencies": {
|
14
18
|
"@types/node": "^20.8.3",
|
15
19
|
"typescript": "^5.2.2"
|
package/src/index.ts
CHANGED
@@ -68,3 +68,47 @@ export function toPercent(
|
|
68
68
|
ret = trimEndZeros ? trimTrailingZeros(ret) : ret;
|
69
69
|
return ret + space + "%";
|
70
70
|
}
|
71
|
+
|
72
|
+
export function parseNumber(input: string): number | null {
|
73
|
+
// Remove whitespace
|
74
|
+
input = input.trim();
|
75
|
+
|
76
|
+
// Define a helper function to handle suffixes
|
77
|
+
const handleSuffix = (number: number, suffix: string): number => {
|
78
|
+
switch (suffix.toLowerCase()) {
|
79
|
+
case "k":
|
80
|
+
return number * 1e3;
|
81
|
+
case "m":
|
82
|
+
return number * 1e6;
|
83
|
+
case "g":
|
84
|
+
return number * 1e9;
|
85
|
+
case "t":
|
86
|
+
return number * 1e12;
|
87
|
+
default:
|
88
|
+
return number;
|
89
|
+
}
|
90
|
+
};
|
91
|
+
|
92
|
+
// Check for percentage
|
93
|
+
if (input.endsWith("%")) {
|
94
|
+
const number = parseFloat(input.slice(0, -1));
|
95
|
+
return isNaN(number) ? null : number / 100;
|
96
|
+
}
|
97
|
+
|
98
|
+
// Check for per mille
|
99
|
+
if (input.endsWith("‰")) {
|
100
|
+
const number = parseFloat(input.slice(0, -1));
|
101
|
+
return isNaN(number) ? null : number / 1000;
|
102
|
+
}
|
103
|
+
|
104
|
+
// Check for suffixes (k, m, g, t)
|
105
|
+
const suffixMatch = input.match(/([kmgKMGtT])$/);
|
106
|
+
if (suffixMatch) {
|
107
|
+
const number = parseFloat(input.slice(0, -1));
|
108
|
+
return isNaN(number) ? null : handleSuffix(number, suffixMatch[0]);
|
109
|
+
}
|
110
|
+
|
111
|
+
// Check for scientific notation and other formats
|
112
|
+
const number = parseFloat(input);
|
113
|
+
return isNaN(number) ? null : number;
|
114
|
+
}
|
package/src/test.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { toAuto, toPercent } from "./index";
|
1
|
+
import { parseNumber, toAuto, toPercent } from "./index";
|
2
2
|
|
3
3
|
console.log(toAuto(1234));
|
4
4
|
console.log(toAuto(12345));
|
@@ -13,3 +13,14 @@ console.log(toAuto(1.2, { fixed: 4, trimEndZeros: true }));
|
|
13
13
|
console.log(toPercent(0.1234, { fixed: 1, space: " " }));
|
14
14
|
console.log(toPercent(1.23456, { trimEndZeros: true }));
|
15
15
|
console.log(toPercent(1.9, { fixed: 4, trimEndZeros: true }));
|
16
|
+
|
17
|
+
// Example usage
|
18
|
+
console.log(parseNumber("50%")); // 0.5
|
19
|
+
console.log(parseNumber("1e3")); // 1000
|
20
|
+
console.log(parseNumber(" 123 ")); // 123
|
21
|
+
console.log(parseNumber("100‰")); // 0.1
|
22
|
+
console.log(parseNumber("5k")); // 5000
|
23
|
+
console.log(parseNumber("3M")); // 3000000
|
24
|
+
console.log(parseNumber("2G")); // 2000000000
|
25
|
+
console.log(parseNumber("1t")); // 1000000000000
|
26
|
+
console.log(parseNumber("abc")); // null
|
package/tsconfig.json
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"compilerOptions": {
|
3
|
-
"target": "es2016",
|
4
|
-
"module": "commonjs",
|
5
|
-
"outDir": "./dist",
|
6
|
-
"strict": true,
|
7
|
-
"esModuleInterop": true,
|
8
|
-
"skipLibCheck": true,
|
9
|
-
"forceConsistentCasingInFileNames": true,
|
10
|
-
"declaration": true
|
11
|
-
},
|
12
|
-
"include": ["src/**/*.ts"],
|
13
|
-
"exclude": ["node_modules"]
|
14
|
-
}
|