@alwatr/parse-duration 5.5.19 โ†’ 5.5.20

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,12 @@
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.5.20](https://github.com/Alwatr/nanolib/compare/@alwatr/parse-duration@5.5.19...@alwatr/parse-duration@5.5.20) (2025-09-27)
7
+
8
+ ### ๐Ÿงน Miscellaneous Chores
9
+
10
+ * exclude test files from package distribution ([86f4f2f](https://github.com/Alwatr/nanolib/commit/86f4f2f5985845c5cf3a3a9398de7b2f98ce53e7))
11
+
6
12
  ## [5.5.19](https://github.com/Alwatr/nanolib/compare/@alwatr/parse-duration@5.5.18...@alwatr/parse-duration@5.5.19) (2025-09-22)
7
13
 
8
14
  **Note:** Version bump only for package @alwatr/parse-duration
package/dist/main.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /** ๐Ÿ“ฆ @alwatr/parse-duration v5.5.19 */
2
- __dev_mode__: console.debug("๐Ÿ“ฆ @alwatr/parse-duration v5.5.19");
1
+ /** ๐Ÿ“ฆ @alwatr/parse-duration v5.5.20 */
2
+ __dev_mode__: console.debug("๐Ÿ“ฆ @alwatr/parse-duration v5.5.20");
3
3
  "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,{parseDuration:()=>parseDuration});module.exports=__toCommonJS(main_exports);var import_is_number=require("@alwatr/is-number");var unitConversion=Object.freeze({s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:2592e6,y:31536e6});var parseDuration=(duration,toUnit)=>{let ms;if(typeof duration==="number"){ms=duration}else{if(duration.length<2){throw new Error("invalid_format",{cause:{duration}})}const durationUnit=duration.slice(-1);const unitConversionFactor=unitConversion[durationUnit];if(unitConversionFactor===void 0){throw new Error("invalid_unit",{cause:{durationUnit}})}const durationNumber=(0,import_is_number.toNumber)(duration.slice(0,-1));if(durationNumber===null){throw new Error("not_a_number",{cause:{duration}})}ms=durationNumber*unitConversionFactor}if(toUnit===void 0){return ms}const toFactor=unitConversion[toUnit];if(toFactor===void 0){throw new Error("invalid_unit",{cause:{toUnit}})}return ms/toFactor};0&&(module.exports={parseDuration});
4
4
  //# sourceMappingURL=main.cjs.map
package/dist/main.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /** ๐Ÿ“ฆ @alwatr/parse-duration v5.5.19 */
2
- __dev_mode__: console.debug("๐Ÿ“ฆ @alwatr/parse-duration v5.5.19");
1
+ /** ๐Ÿ“ฆ @alwatr/parse-duration v5.5.20 */
2
+ __dev_mode__: console.debug("๐Ÿ“ฆ @alwatr/parse-duration v5.5.20");
3
3
  import{toNumber}from"@alwatr/is-number";var unitConversion=Object.freeze({s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:2592e6,y:31536e6});var parseDuration=(duration,toUnit)=>{let ms;if(typeof duration==="number"){ms=duration}else{if(duration.length<2){throw new Error("invalid_format",{cause:{duration}})}const durationUnit=duration.slice(-1);const unitConversionFactor=unitConversion[durationUnit];if(unitConversionFactor===void 0){throw new Error("invalid_unit",{cause:{durationUnit}})}const durationNumber=toNumber(duration.slice(0,-1));if(durationNumber===null){throw new Error("not_a_number",{cause:{duration}})}ms=durationNumber*unitConversionFactor}if(toUnit===void 0){return ms}const toFactor=unitConversion[toUnit];if(toFactor===void 0){throw new Error("invalid_unit",{cause:{toUnit}})}return ms/toFactor};export{parseDuration};
4
4
  //# sourceMappingURL=main.mjs.map
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@alwatr/parse-duration",
3
3
  "description": "A simple utility to parse a duration string into milliseconds number.",
4
- "version": "5.5.19",
4
+ "version": "5.5.20",
5
5
  "author": "S. Ali Mihandoost <ali.mihandoost@gmail.com>",
6
6
  "bugs": "https://github.com/Alwatr/nanolib/issues",
7
7
  "dependencies": {
8
- "@alwatr/is-number": "5.7.15"
8
+ "@alwatr/is-number": "5.7.16"
9
9
  },
10
10
  "devDependencies": {
11
- "@alwatr/nano-build": "6.3.3",
12
- "@alwatr/prettier-config": "5.0.4",
13
- "@alwatr/tsconfig-base": "6.0.2",
11
+ "@alwatr/nano-build": "6.3.4",
12
+ "@alwatr/prettier-config": "5.0.5",
13
+ "@alwatr/tsconfig-base": "6.0.3",
14
14
  "jest": "^30.1.3",
15
15
  "typescript": "^5.9.2"
16
16
  },
@@ -24,7 +24,8 @@
24
24
  "files": [
25
25
  "**/*.{js,mjs,cjs,map,d.ts,html,md,LEGAL.txt}",
26
26
  "LICENSE",
27
- "!demo/**/*"
27
+ "!demo/**/*",
28
+ "!**/*.test.js"
28
29
  ],
29
30
  "homepage": "https://github.com/Alwatr/nanolib/tree/next/packages/parse-duration#readme",
30
31
  "keywords": [
@@ -78,5 +79,5 @@
78
79
  "sideEffects": false,
79
80
  "type": "module",
80
81
  "types": "./dist/main.d.ts",
81
- "gitHead": "a0c8605949969959c8226e54b8c8c0fc7276819a"
82
+ "gitHead": "c013ded43aff3937cf347de4e99125ab807d99e1"
82
83
  }
package/src/main.test.js DELETED
@@ -1,67 +0,0 @@
1
- import {parseDuration} from '@alwatr/parse-duration';
2
-
3
- describe('@alwatr/parse-duration', () => {
4
- // Basic functionality tests
5
- it('should parse duration strings to milliseconds', () => {
6
- // Basic time units
7
- expect(parseDuration('5s')).toBe(5 * 1_000); // seconds
8
- expect(parseDuration('3m')).toBe(3 * 60_000); // minutes
9
- expect(parseDuration('2h')).toBe(2 * 3_600_000); // hours
10
- expect(parseDuration('1d')).toBe(1 * 86_400_000); // days
11
- expect(parseDuration('2w')).toBe(2 * 604_800_000); // weeks
12
-
13
- // Longer time units
14
- expect(parseDuration('3M')).toBe(3 * 2_592_000_000); // months
15
- expect(parseDuration('1y')).toBe(1 * 31_536_000_000); // years
16
- });
17
-
18
- it('should accept numeric input as milliseconds', () => {
19
- expect(parseDuration(5000)).toBe(5000);
20
- expect(parseDuration(0)).toBe(0);
21
- });
22
-
23
- it('should convert duration to specified unit', () => {
24
- expect(parseDuration('2h', 'm')).toBe(2 * 60);
25
- expect(parseDuration('120s', 'm')).toBe(2);
26
- expect(parseDuration('1d', 'h')).toBe(24);
27
- expect(parseDuration('1w', 'd')).toBe(7);
28
- expect(parseDuration('1M', 'd')).toBe(30);
29
- expect(parseDuration('1y', 'd')).toBe(365);
30
- expect(parseDuration(60000, 's')).toBe(60);
31
- });
32
-
33
- it('should handle decimal values correctly', () => {
34
- expect(parseDuration('0.5h')).toBe(0.5 * 60 * 60 * 1000);
35
- expect(parseDuration('1.5d', 'h')).toBe(36);
36
- });
37
-
38
- // Error handling tests
39
- it('should throw error for invalid duration format', () => {
40
- expect(() => parseDuration('m')).toThrow('invalid_format');
41
- });
42
-
43
- it('should throw error for invalid unit', () => {
44
- // @ts-expect-error testing invalid input
45
- expect(() => parseDuration('1x')).toThrow('invalid_unit');
46
- });
47
-
48
- it('should throw error for invalid conversion unit', () => {
49
- // @ts-expect-error testing invalid input
50
- expect(() => parseDuration('1h', 'x')).toThrow('invalid_unit');
51
- });
52
-
53
- it('should throw error for non-numeric duration', () => {
54
- // @ts-expect-error testing invalid input
55
- expect(() => parseDuration('xh')).toThrow('not_a_number');
56
- });
57
-
58
- // Edge cases
59
- it('should handle zero values', () => {
60
- expect(parseDuration('0s')).toBe(0);
61
- expect(parseDuration('0m', 's')).toBe(0);
62
- });
63
-
64
- it('should handle large values', () => {
65
- expect(parseDuration('999999h')).toBe(999999 * 3600000);
66
- });
67
- });