@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 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.24 */
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": ";;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",
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.24 */
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": ";;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",
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.24",
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.0",
9
- "@alwatr/prettier-config": "6.0.1",
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": "yarn run build",
78
- "build": "yarn run build:ts && yarn run build:es",
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": "yarn run clean",
82
- "cb": "yarn run clean && yarn run build",
80
+ "c": "bun run clean",
81
+ "cb": "bun run clean && bun run build",
83
82
  "clean": "rm -rfv dist *.tsbuildinfo",
84
- "d": "yarn run build:es && yarn node --enable-source-maps --trace-warnings",
85
- "t": "yarn run test",
86
- "test": "NODE_OPTIONS=\"$NODE_OPTIONS --enable-source-maps --experimental-vm-modules\" jest",
87
- "w": "yarn run watch",
88
- "watch": "yarn run watch:ts & yarn run watch:es",
89
- "watch:es": "yarn run build:es --watch",
90
- "watch:ts": "yarn run build:ts --watch --preserveWatchOutput"
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": "35950cd5ceb1ae5a8ba4ac73852d286b7b3cd45f"
94
+ "gitHead": "c3889e3756b0a0f9b935a1b702a1373ac52cb379"
96
95
  }