@alwatr/parse-duration 1.1.2 → 1.1.3

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,10 @@
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
+ ## [1.1.3](https://github.com/Alwatr/nanolib/compare/@alwatr/parse-duration@1.1.2...@alwatr/parse-duration@1.1.3) (2024-10-11)
7
+
8
+ **Note:** Version bump only for package @alwatr/parse-duration
9
+
6
10
  ## [1.1.2](https://github.com/Alwatr/nanolib/compare/@alwatr/parse-duration@1.1.1...@alwatr/parse-duration@1.1.2) (2024-10-10)
7
11
 
8
12
  ### Dependencies update
package/dist/main.cjs CHANGED
@@ -1,3 +1,70 @@
1
- /* @alwatr/parse-duration v1.1.2 */
2
- "use strict";var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var d=(n,r)=>{for(var e in r)i(n,e,{get:r[e],enumerable:!0})},l=(n,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of p(r))!b.call(n,t)&&t!==e&&i(n,t,{get:()=>r[t],enumerable:!(o=f(r,t))||o.enumerable});return n};var w=n=>l(i({},"__esModule",{value:!0}),n);var v={};d(v,{parseDuration:()=>D});module.exports=w(v);var a=require("@alwatr/is-number"),s=require("@alwatr/package-tracer");s.packageTracer.add("@alwatr/parse-duration","1.1.2");var u={s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:2592e6,y:31536e6},D=(n,r)=>{let e;if(typeof n=="number")e=n;else{let t=n.slice(0,n.length-1);if(!(0,a.isNumber)(t))throw new Error("not_a_number");let c=+t,m=n.slice(-1),_=u[m];if(_===void 0)throw new Error("invalid_unit",{cause:{duration:n}});e=c*_}if(r===void 0)return e;let o=u[r];if(o===void 0)throw new Error("invalid_unit",{cause:{toUnit:r}});return e/o};0&&(module.exports={parseDuration});
1
+ /* @alwatr/parse-duration v1.1.3 */
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/main.ts
22
+ var main_exports = {};
23
+ __export(main_exports, {
24
+ parseDuration: () => parseDuration
25
+ });
26
+ module.exports = __toCommonJS(main_exports);
27
+ var import_is_number = require("@alwatr/is-number");
28
+ var import_package_tracer = require("@alwatr/package-tracer");
29
+ import_package_tracer.packageTracer.add("@alwatr/parse-duration", "1.1.3");
30
+ var unitConversion_ = {
31
+ s: 1e3,
32
+ m: 6e4,
33
+ h: 36e5,
34
+ d: 864e5,
35
+ w: 6048e5,
36
+ M: 2592e6,
37
+ y: 31536e6
38
+ };
39
+ var parseDuration = (duration, toUnit) => {
40
+ let ms;
41
+ if (typeof duration === "number") {
42
+ ms = duration;
43
+ } else {
44
+ const durationNumberStr = duration.slice(0, duration.length - 1);
45
+ if (!(0, import_is_number.isNumber)(durationNumberStr)) {
46
+ throw new Error(`not_a_number`);
47
+ }
48
+ const durationNumber = +durationNumberStr;
49
+ const durationUnit = duration.slice(-1);
50
+ const unitConversionFactor = unitConversion_[durationUnit];
51
+ if (unitConversionFactor === void 0) {
52
+ throw new Error(`invalid_unit`, { cause: { duration } });
53
+ }
54
+ ms = durationNumber * unitConversionFactor;
55
+ }
56
+ if (toUnit === void 0) {
57
+ return ms;
58
+ }
59
+ const toFactor = unitConversion_[toUnit];
60
+ if (toFactor === void 0) {
61
+ throw new Error(`invalid_unit`, { cause: { toUnit } });
62
+ }
63
+ return ms / toFactor;
64
+ };
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ parseDuration
68
+ });
69
+ /*! For license information please see main.cjs.LEGAL.txt */
3
70
  //# 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": ["import {isNumber} from '@alwatr/is-number';\nimport {packageTracer} from '@alwatr/package-tracer';\n\npackageTracer.add(__package_name__, __package_version__);\n\n/**\n * Unit conversion table\n */\nconst unitConversion_ = {\n s: 1_000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n w: 604_800_000,\n M: 2_592_000_000,\n y: 31_536_000_000,\n} as const;\n\n/**\n * Duration unit: `s` for seconds, `m` for minutes, `h` for hours, `d` for days, `w` for weeks, `M` for months, `y` for years.\n */\nexport type DurationUnit = keyof typeof unitConversion_;\n\n/**\n * Duration string format: `number + unit`, for example `10m` means 10 minutes.\n */\nexport type Duration = `${number}${DurationUnit}` | number;\n\n/**\n * Parse duration string to milliseconds number.\n *\n * @param duration - duration string or number, for example `10m` means 10 minutes.\n * @param toUnit - convert to unit, default is `ms` for milliseconds.\n * @return duration in milliseconds.\n * @example\n * ```ts\n * parseDuration('10m'); // 600000\n * parseDuration('10m', 's'); // 600\n * parseDuration(120_000, 'm'); // 2\n * ```\n */\nexport const parseDuration = (duration: Duration, toUnit?: DurationUnit): number => {\n let ms: number;\n\n if (typeof duration === 'number') {\n ms = duration\n }\n else {\n const durationNumberStr = duration.slice(0, duration.length - 1);\n if (!isNumber(durationNumberStr)) {\n throw new Error(`not_a_number`);\n }\n const durationNumber = +durationNumberStr;\n const durationUnit = duration.slice(-1) as DurationUnit;\n const unitConversionFactor = unitConversion_[durationUnit];\n if (unitConversionFactor === undefined) {\n throw new Error(`invalid_unit`, {cause: {duration}});\n }\n ms = durationNumber * unitConversionFactor;\n }\n\n if (toUnit === undefined) {\n return ms;\n }\n\n // else\n const toFactor = unitConversion_[toUnit];\n if (toFactor === undefined) {\n throw new Error(`invalid_unit`, {cause: {toUnit}});\n }\n return ms / toFactor;\n};\n"],
5
- "mappings": ";yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,6BACvBC,EAA4B,kCAE5B,gBAAc,IAAI,yBAAkB,OAAmB,EAKvD,IAAMC,EAAkB,CACtB,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,MACH,EAAG,OACH,EAAG,OACH,EAAG,OACL,EAyBaJ,EAAgB,CAACK,EAAoBC,IAAkC,CAClF,IAAIC,EAEJ,GAAI,OAAOF,GAAa,SACtBE,EAAKF,MAEF,CACH,IAAMG,EAAoBH,EAAS,MAAM,EAAGA,EAAS,OAAS,CAAC,EAC/D,GAAI,IAAC,YAASG,CAAiB,EAC7B,MAAM,IAAI,MAAM,cAAc,EAEhC,IAAMC,EAAiB,CAACD,EAClBE,EAAeL,EAAS,MAAM,EAAE,EAChCM,EAAuBP,EAAgBM,CAAY,EACzD,GAAIC,IAAyB,OAC3B,MAAM,IAAI,MAAM,eAAgB,CAAC,MAAO,CAAC,SAAAN,CAAQ,CAAC,CAAC,EAErDE,EAAKE,EAAiBE,CACxB,CAEA,GAAIL,IAAW,OACb,OAAOC,EAIT,IAAMK,EAAWR,EAAgBE,CAAM,EACvC,GAAIM,IAAa,OACf,MAAM,IAAI,MAAM,eAAgB,CAAC,MAAO,CAAC,OAAAN,CAAM,CAAC,CAAC,EAEnD,OAAOC,EAAKK,CACd",
6
- "names": ["main_exports", "__export", "parseDuration", "__toCommonJS", "import_is_number", "import_package_tracer", "unitConversion_", "duration", "toUnit", "ms", "durationNumberStr", "durationNumber", "durationUnit", "unitConversionFactor", "toFactor"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAuB;AACvB,4BAA4B;AAE5B,oCAAc,IAAI,0BAAkB,OAAmB;AAKvD,IAAM,kBAAkB;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAyBO,IAAM,gBAAgB,CAAC,UAAoB,WAAkC;AAClF,MAAI;AAEJ,MAAI,OAAO,aAAa,UAAU;AAChC,SAAK;AAAA,EACP,OACK;AACH,UAAM,oBAAoB,SAAS,MAAM,GAAG,SAAS,SAAS,CAAC;AAC/D,QAAI,KAAC,2BAAS,iBAAiB,GAAG;AAChC,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AACA,UAAM,iBAAiB,CAAC;AACxB,UAAM,eAAe,SAAS,MAAM,EAAE;AACtC,UAAM,uBAAuB,gBAAgB,YAAY;AACzD,QAAI,yBAAyB,QAAW;AACtC,YAAM,IAAI,MAAM,gBAAgB,EAAC,OAAO,EAAC,SAAQ,EAAC,CAAC;AAAA,IACrD;AACA,SAAK,iBAAiB;AAAA,EACxB;AAEA,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,gBAAgB,MAAM;AACvC,MAAI,aAAa,QAAW;AAC1B,UAAM,IAAI,MAAM,gBAAgB,EAAC,OAAO,EAAC,OAAM,EAAC,CAAC;AAAA,EACnD;AACA,SAAO,KAAK;AACd;",
6
+ "names": []
7
7
  }
package/dist/main.mjs CHANGED
@@ -1,3 +1,46 @@
1
- /* @alwatr/parse-duration v1.1.2 */
2
- import{isNumber as s}from"@alwatr/is-number";import{packageTracer as c}from"@alwatr/package-tracer";c.add("@alwatr/parse-duration","1.1.2");var _={s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:2592e6,y:31536e6},p=(n,e)=>{let r;if(typeof n=="number")r=n;else{let o=n.slice(0,n.length-1);if(!s(o))throw new Error("not_a_number");let u=+o,a=n.slice(-1),i=_[a];if(i===void 0)throw new Error("invalid_unit",{cause:{duration:n}});r=u*i}if(e===void 0)return r;let t=_[e];if(t===void 0)throw new Error("invalid_unit",{cause:{toUnit:e}});return r/t};export{p as parseDuration};
1
+ /* @alwatr/parse-duration v1.1.3 */
2
+
3
+ // src/main.ts
4
+ import { isNumber } from "@alwatr/is-number";
5
+ import { packageTracer } from "@alwatr/package-tracer";
6
+ packageTracer.add("@alwatr/parse-duration", "1.1.3");
7
+ var unitConversion_ = {
8
+ s: 1e3,
9
+ m: 6e4,
10
+ h: 36e5,
11
+ d: 864e5,
12
+ w: 6048e5,
13
+ M: 2592e6,
14
+ y: 31536e6
15
+ };
16
+ var parseDuration = (duration, toUnit) => {
17
+ let ms;
18
+ if (typeof duration === "number") {
19
+ ms = duration;
20
+ } else {
21
+ const durationNumberStr = duration.slice(0, duration.length - 1);
22
+ if (!isNumber(durationNumberStr)) {
23
+ throw new Error(`not_a_number`);
24
+ }
25
+ const durationNumber = +durationNumberStr;
26
+ const durationUnit = duration.slice(-1);
27
+ const unitConversionFactor = unitConversion_[durationUnit];
28
+ if (unitConversionFactor === void 0) {
29
+ throw new Error(`invalid_unit`, { cause: { duration } });
30
+ }
31
+ ms = durationNumber * unitConversionFactor;
32
+ }
33
+ if (toUnit === void 0) {
34
+ return ms;
35
+ }
36
+ const toFactor = unitConversion_[toUnit];
37
+ if (toFactor === void 0) {
38
+ throw new Error(`invalid_unit`, { cause: { toUnit } });
39
+ }
40
+ return ms / toFactor;
41
+ };
42
+ export {
43
+ parseDuration
44
+ };
45
+ /*! For license information please see main.mjs.LEGAL.txt */
3
46
  //# 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": ["import {isNumber} from '@alwatr/is-number';\nimport {packageTracer} from '@alwatr/package-tracer';\n\npackageTracer.add(__package_name__, __package_version__);\n\n/**\n * Unit conversion table\n */\nconst unitConversion_ = {\n s: 1_000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n w: 604_800_000,\n M: 2_592_000_000,\n y: 31_536_000_000,\n} as const;\n\n/**\n * Duration unit: `s` for seconds, `m` for minutes, `h` for hours, `d` for days, `w` for weeks, `M` for months, `y` for years.\n */\nexport type DurationUnit = keyof typeof unitConversion_;\n\n/**\n * Duration string format: `number + unit`, for example `10m` means 10 minutes.\n */\nexport type Duration = `${number}${DurationUnit}` | number;\n\n/**\n * Parse duration string to milliseconds number.\n *\n * @param duration - duration string or number, for example `10m` means 10 minutes.\n * @param toUnit - convert to unit, default is `ms` for milliseconds.\n * @return duration in milliseconds.\n * @example\n * ```ts\n * parseDuration('10m'); // 600000\n * parseDuration('10m', 's'); // 600\n * parseDuration(120_000, 'm'); // 2\n * ```\n */\nexport const parseDuration = (duration: Duration, toUnit?: DurationUnit): number => {\n let ms: number;\n\n if (typeof duration === 'number') {\n ms = duration\n }\n else {\n const durationNumberStr = duration.slice(0, duration.length - 1);\n if (!isNumber(durationNumberStr)) {\n throw new Error(`not_a_number`);\n }\n const durationNumber = +durationNumberStr;\n const durationUnit = duration.slice(-1) as DurationUnit;\n const unitConversionFactor = unitConversion_[durationUnit];\n if (unitConversionFactor === undefined) {\n throw new Error(`invalid_unit`, {cause: {duration}});\n }\n ms = durationNumber * unitConversionFactor;\n }\n\n if (toUnit === undefined) {\n return ms;\n }\n\n // else\n const toFactor = unitConversion_[toUnit];\n if (toFactor === undefined) {\n throw new Error(`invalid_unit`, {cause: {toUnit}});\n }\n return ms / toFactor;\n};\n"],
5
- "mappings": ";AAAA,OAAQ,YAAAA,MAAe,oBACvB,OAAQ,iBAAAC,MAAoB,yBAE5BA,EAAc,IAAI,yBAAkB,OAAmB,EAKvD,IAAMC,EAAkB,CACtB,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,MACH,EAAG,OACH,EAAG,OACH,EAAG,OACL,EAyBaC,EAAgB,CAACC,EAAoBC,IAAkC,CAClF,IAAIC,EAEJ,GAAI,OAAOF,GAAa,SACtBE,EAAKF,MAEF,CACH,IAAMG,EAAoBH,EAAS,MAAM,EAAGA,EAAS,OAAS,CAAC,EAC/D,GAAI,CAACJ,EAASO,CAAiB,EAC7B,MAAM,IAAI,MAAM,cAAc,EAEhC,IAAMC,EAAiB,CAACD,EAClBE,EAAeL,EAAS,MAAM,EAAE,EAChCM,EAAuBR,EAAgBO,CAAY,EACzD,GAAIC,IAAyB,OAC3B,MAAM,IAAI,MAAM,eAAgB,CAAC,MAAO,CAAC,SAAAN,CAAQ,CAAC,CAAC,EAErDE,EAAKE,EAAiBE,CACxB,CAEA,GAAIL,IAAW,OACb,OAAOC,EAIT,IAAMK,EAAWT,EAAgBG,CAAM,EACvC,GAAIM,IAAa,OACf,MAAM,IAAI,MAAM,eAAgB,CAAC,MAAO,CAAC,OAAAN,CAAM,CAAC,CAAC,EAEnD,OAAOC,EAAKK,CACd",
6
- "names": ["isNumber", "packageTracer", "unitConversion_", "parseDuration", "duration", "toUnit", "ms", "durationNumberStr", "durationNumber", "durationUnit", "unitConversionFactor", "toFactor"]
5
+ "mappings": ";;;AAAA,SAAQ,gBAAe;AACvB,SAAQ,qBAAoB;AAE5B,cAAc,IAAI,0BAAkB,OAAmB;AAKvD,IAAM,kBAAkB;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAyBO,IAAM,gBAAgB,CAAC,UAAoB,WAAkC;AAClF,MAAI;AAEJ,MAAI,OAAO,aAAa,UAAU;AAChC,SAAK;AAAA,EACP,OACK;AACH,UAAM,oBAAoB,SAAS,MAAM,GAAG,SAAS,SAAS,CAAC;AAC/D,QAAI,CAAC,SAAS,iBAAiB,GAAG;AAChC,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AACA,UAAM,iBAAiB,CAAC;AACxB,UAAM,eAAe,SAAS,MAAM,EAAE;AACtC,UAAM,uBAAuB,gBAAgB,YAAY;AACzD,QAAI,yBAAyB,QAAW;AACtC,YAAM,IAAI,MAAM,gBAAgB,EAAC,OAAO,EAAC,SAAQ,EAAC,CAAC;AAAA,IACrD;AACA,SAAK,iBAAiB;AAAA,EACxB;AAEA,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,gBAAgB,MAAM;AACvC,MAAI,aAAa,QAAW;AAC1B,UAAM,IAAI,MAAM,gBAAgB,EAAC,OAAO,EAAC,OAAM,EAAC,CAAC;AAAA,EACnD;AACA,SAAO,KAAK;AACd;",
6
+ "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwatr/parse-duration",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "A simple utility to parse a duration string into milliseconds number.",
5
5
  "author": "S. Ali Mihandoost <ali.mihandoost@gmail.com>",
6
6
  "keywords": [
@@ -69,15 +69,15 @@
69
69
  "clean": "rm -rfv dist *.tsbuildinfo"
70
70
  },
71
71
  "dependencies": {
72
- "@alwatr/is-number": "^1.1.2",
73
- "@alwatr/package-tracer": "^1.0.2"
72
+ "@alwatr/is-number": "^1.1.3",
73
+ "@alwatr/package-tracer": "^1.0.3"
74
74
  },
75
75
  "devDependencies": {
76
- "@alwatr/nano-build": "^1.6.0",
76
+ "@alwatr/nano-build": "^2.0.0",
77
77
  "@alwatr/prettier-config": "^1.0.5",
78
78
  "@alwatr/tsconfig-base": "^1.3.1",
79
79
  "jest": "^29.7.0",
80
80
  "typescript": "^5.6.3"
81
81
  },
82
- "gitHead": "6ad24764eae1b88d7d1bb19217578b02b8c22aaf"
82
+ "gitHead": "e0b3b4a47c02a395046982803b2e431c6ee3b0ab"
83
83
  }