@alwatr/is-number 5.7.24 → 5.7.26
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/CHANGELOG.md +10 -0
- package/dist/main.cjs +1 -2
- package/dist/main.cjs.map +1 -1
- package/dist/main.mjs +1 -2
- package/dist/main.mjs.map +1 -1
- package/package.json +15 -16
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.7.26](https://github.com/Alwatr/nanolib/compare/@alwatr/is-number@5.7.25...@alwatr/is-number@5.7.26) (2026-03-16)
|
|
7
|
+
|
|
8
|
+
### 🔨 Code Refactoring
|
|
9
|
+
|
|
10
|
+
* migrate build scripts from yarn to bun across multiple packages ([d90e962](https://github.com/Alwatr/nanolib/commit/d90e962f15e5c951e191d5f02341279b6472abc3))
|
|
11
|
+
|
|
12
|
+
## [5.7.25](https://github.com/Alwatr/nanolib/compare/@alwatr/is-number@5.7.24...@alwatr/is-number@5.7.25) (2026-02-18)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @alwatr/is-number
|
|
15
|
+
|
|
6
16
|
## [5.7.24](https://github.com/Alwatr/nanolib/compare/@alwatr/is-number@5.7.23...@alwatr/is-number@5.7.24) (2025-12-23)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @alwatr/is-number
|
package/dist/main.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** 📦 @alwatr/is-number v5.7.
|
|
2
|
-
__dev_mode__: console.debug("📦 @alwatr/is-number v5.7.24");
|
|
1
|
+
/** 📦 @alwatr/is-number v5.7.26 */
|
|
3
2
|
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:true}),mod);var main_exports={};__export(main_exports,{isFiniteNumber:()=>isFiniteNumber,isNumber:()=>isNumber,toNumber:()=>toNumber});module.exports=__toCommonJS(main_exports);function isFiniteNumber(value){if(typeof Number.isFinite==="function"){return Number.isFinite(value)}return typeof value==="number"&&isFinite(value)}function isNumber(value){if(typeof value==="number"){return value-value===0}if(typeof value==="string"){const trimmed=value.trim();if(trimmed==="")return false;const num=+trimmed;return isFiniteNumber(num)}return false}function toNumber(value){if(typeof value==="number"){return value-value===0?value:null}if(typeof value==="string"){const trimmed=value.trim();if(trimmed==="")return null;const num=+trimmed;return isFiniteNumber(num)?num:null}return null}0&&(module.exports={isFiniteNumber,isNumber,toNumber});
|
|
4
3
|
//# sourceMappingURL=main.cjs.map
|
package/dist/main.cjs.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/main.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Polyfill for Number.isFinite - properly checks if a value is a finite number\n * without type coercion.\n *\n * @param value - The value to check\n * @returns true if the value is a finite number, false otherwise\n */\nexport function isFiniteNumber(value: unknown): value is number {\n // Use native implementation if available\n if (typeof Number.isFinite === 'function') {\n return Number.isFinite(value);\n }\n // Fallback implementation\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Check if the value is a number or can be converted to a number.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a number or can be converted to a number, otherwise `false`.\n *\n * @example\n * ```ts\n * isNumber(123); // true\n * isNumber('123'); // true\n * isNumber(' 123 '); // true\n * isNumber('0xff'); // true\n * isNumber('-1.1'); // true\n * isNumber(''); // false\n * isNumber(' '); // false\n * isNumber(' 123a '); // false\n * isNumber(NaN); // false\n * isNumber(Infinity); // false\n * isNumber({}); // false\n * isNumber([]); // false\n * isNumber(null); // false\n * isNumber(undefined); // false\n * ```\n */\nexport function isNumber(value: unknown): value is number {\n // Handle number type\n if (typeof value === 'number') {\n return value - value === 0;\n }\n\n // Handle string type\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return false;\n\n // Use unary plus for fastest string-to-number conversion\n const num = +trimmed;\n return isFiniteNumber(num);\n }\n\n return false;\n}\n\n/**\n * Convert a value to a number if possible.\n *\n * @param value - The value to convert.\n * @returns The converted number if valid, otherwise `null`.\n *\n * @example\n * ```ts\n * toNumber(123); // 123\n * toNumber('123'); // 123\n * toNumber(' 123 '); // 123\n * toNumber('0xff'); // 255\n * toNumber('-1.1'); // -1.1\n * toNumber(''); // null\n * toNumber(' '); // null\n * toNumber('123a'); // null\n * toNumber(NaN); // null\n * toNumber(Infinity); // null\n * toNumber({}); // null\n * toNumber([]); // null\n * toNumber(null); // null\n * toNumber(undefined); // null\n * ```\n */\nexport function toNumber(value: unknown): number | null {\n // Handle number type\n if (typeof value === 'number') {\n return value - value === 0 ? value : null;\n }\n\n // Handle string type\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return null;\n\n const num = +trimmed;\n return isFiniteNumber(num) ? num : null;\n }\n\n return null;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";qqBAAA,qKAOO,SAAS,eAAe,MAAiC,CAE9D,GAAI,OAAO,OAAO,WAAa,WAAY,CACzC,OAAO,OAAO,SAAS,KAAK,CAC9B,CAEA,OAAO,OAAO,QAAU,UAAY,SAAS,KAAK,CACpD,CA0BO,SAAS,SAAS,MAAiC,CAExD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,CAC3B,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,MAAO,OAG3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,CAC3B,CAEA,MAAO,MACT,CA0BO,SAAS,SAAS,MAA+B,CAEtD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,EAAI,MAAQ,IACvC,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,OAAO,KAE3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,EAAI,IAAM,IACrC,CAEA,OAAO,IACT",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/main.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** 📦 @alwatr/is-number v5.7.
|
|
2
|
-
__dev_mode__: console.debug("📦 @alwatr/is-number v5.7.24");
|
|
1
|
+
/** 📦 @alwatr/is-number v5.7.26 */
|
|
3
2
|
function isFiniteNumber(value){if(typeof Number.isFinite==="function"){return Number.isFinite(value)}return typeof value==="number"&&isFinite(value)}function isNumber(value){if(typeof value==="number"){return value-value===0}if(typeof value==="string"){const trimmed=value.trim();if(trimmed==="")return false;const num=+trimmed;return isFiniteNumber(num)}return false}function toNumber(value){if(typeof value==="number"){return value-value===0?value:null}if(typeof value==="string"){const trimmed=value.trim();if(trimmed==="")return null;const num=+trimmed;return isFiniteNumber(num)?num:null}return null}export{isFiniteNumber,isNumber,toNumber};
|
|
4
3
|
//# sourceMappingURL=main.mjs.map
|
package/dist/main.mjs.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/main.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Polyfill for Number.isFinite - properly checks if a value is a finite number\n * without type coercion.\n *\n * @param value - The value to check\n * @returns true if the value is a finite number, false otherwise\n */\nexport function isFiniteNumber(value: unknown): value is number {\n // Use native implementation if available\n if (typeof Number.isFinite === 'function') {\n return Number.isFinite(value);\n }\n // Fallback implementation\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Check if the value is a number or can be converted to a number.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a number or can be converted to a number, otherwise `false`.\n *\n * @example\n * ```ts\n * isNumber(123); // true\n * isNumber('123'); // true\n * isNumber(' 123 '); // true\n * isNumber('0xff'); // true\n * isNumber('-1.1'); // true\n * isNumber(''); // false\n * isNumber(' '); // false\n * isNumber(' 123a '); // false\n * isNumber(NaN); // false\n * isNumber(Infinity); // false\n * isNumber({}); // false\n * isNumber([]); // false\n * isNumber(null); // false\n * isNumber(undefined); // false\n * ```\n */\nexport function isNumber(value: unknown): value is number {\n // Handle number type\n if (typeof value === 'number') {\n return value - value === 0;\n }\n\n // Handle string type\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return false;\n\n // Use unary plus for fastest string-to-number conversion\n const num = +trimmed;\n return isFiniteNumber(num);\n }\n\n return false;\n}\n\n/**\n * Convert a value to a number if possible.\n *\n * @param value - The value to convert.\n * @returns The converted number if valid, otherwise `null`.\n *\n * @example\n * ```ts\n * toNumber(123); // 123\n * toNumber('123'); // 123\n * toNumber(' 123 '); // 123\n * toNumber('0xff'); // 255\n * toNumber('-1.1'); // -1.1\n * toNumber(''); // null\n * toNumber(' '); // null\n * toNumber('123a'); // null\n * toNumber(NaN); // null\n * toNumber(Infinity); // null\n * toNumber({}); // null\n * toNumber([]); // null\n * toNumber(null); // null\n * toNumber(undefined); // null\n * ```\n */\nexport function toNumber(value: unknown): number | null {\n // Handle number type\n if (typeof value === 'number') {\n return value - value === 0 ? value : null;\n }\n\n // Handle string type\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return null;\n\n const num = +trimmed;\n return isFiniteNumber(num) ? num : null;\n }\n\n return null;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAOO,SAAS,eAAe,MAAiC,CAE9D,GAAI,OAAO,OAAO,WAAa,WAAY,CACzC,OAAO,OAAO,SAAS,KAAK,CAC9B,CAEA,OAAO,OAAO,QAAU,UAAY,SAAS,KAAK,CACpD,CA0BO,SAAS,SAAS,MAAiC,CAExD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,CAC3B,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,MAAO,OAG3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,CAC3B,CAEA,MAAO,MACT,CA0BO,SAAS,SAAS,MAA+B,CAEtD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,EAAI,MAAQ,IACvC,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,OAAO,KAE3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,EAAI,IAAM,IACrC,CAEA,OAAO,IACT",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwatr/is-number",
|
|
3
3
|
"description": "A simple utility to Check the value is number or can convert to a number, for example string ' 123 ' can be converted to 123.",
|
|
4
|
-
"version": "5.7.
|
|
4
|
+
"version": "5.7.26",
|
|
5
5
|
"author": "S. Ali Mihandoost <ali.mihandoost@gmail.com>",
|
|
6
6
|
"bugs": "https://github.com/Alwatr/nanolib/issues",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"@alwatr/nano-build": "6.4.
|
|
9
|
-
"@alwatr/prettier-config": "6.0.
|
|
8
|
+
"@alwatr/nano-build": "6.4.2",
|
|
9
|
+
"@alwatr/prettier-config": "6.0.2",
|
|
10
10
|
"@alwatr/tsconfig-base": "6.0.4",
|
|
11
|
-
"jest": "^30.2.0",
|
|
12
11
|
"typescript": "^5.9.3"
|
|
13
12
|
},
|
|
14
13
|
"exports": {
|
|
@@ -74,23 +73,23 @@
|
|
|
74
73
|
"directory": "packages/is-number"
|
|
75
74
|
},
|
|
76
75
|
"scripts": {
|
|
77
|
-
"b": "
|
|
78
|
-
"build": "
|
|
76
|
+
"b": "bun run build",
|
|
77
|
+
"build": "bun run build:ts && bun run build:es",
|
|
79
78
|
"build:es": "nano-build --preset=module",
|
|
80
79
|
"build:ts": "tsc --build",
|
|
81
|
-
"c": "
|
|
82
|
-
"cb": "
|
|
80
|
+
"c": "bun run clean",
|
|
81
|
+
"cb": "bun run clean && bun run build",
|
|
83
82
|
"clean": "rm -rfv dist *.tsbuildinfo",
|
|
84
|
-
"d": "
|
|
85
|
-
"t": "
|
|
86
|
-
"test": "
|
|
87
|
-
"w": "
|
|
88
|
-
"watch": "
|
|
89
|
-
"watch:es": "
|
|
90
|
-
"watch:ts": "
|
|
83
|
+
"d": "bun run build:es && bun --enable-source-maps --trace-warnings",
|
|
84
|
+
"t": "bun run test",
|
|
85
|
+
"test": "echo test-skipped",
|
|
86
|
+
"w": "bun run watch",
|
|
87
|
+
"watch": "bun run watch:ts & bun run watch:es",
|
|
88
|
+
"watch:es": "bun run build:es --watch",
|
|
89
|
+
"watch:ts": "bun run build:ts --watch --preserveWatchOutput"
|
|
91
90
|
},
|
|
92
91
|
"sideEffects": false,
|
|
93
92
|
"type": "module",
|
|
94
93
|
"types": "./dist/main.d.ts",
|
|
95
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "c3889e3756b0a0f9b935a1b702a1373ac52cb379"
|
|
96
95
|
}
|