@wise-old-man/utils 1.0.3 → 1.0.4

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/periods.d.ts CHANGED
@@ -30,5 +30,8 @@ declare const PeriodProps: {
30
30
  declare const PERIODS: Period[];
31
31
  declare function findPeriod(periodName: string): Period | null;
32
32
  declare function isValidPeriod(period: string): boolean;
33
- declare function parsePeriodExpression(periodExpression: string): [string, number] | null;
33
+ declare function parsePeriodExpression(periodExpression: string): {
34
+ expression: string;
35
+ durationMs: number;
36
+ } | null;
34
37
  export { Period, PeriodProps, PERIODS, findPeriod, isValidPeriod, parsePeriodExpression };
package/dist/periods.js CHANGED
@@ -38,23 +38,29 @@ exports.isValidPeriod = isValidPeriod;
38
38
  function parsePeriodExpression(periodExpression) {
39
39
  var fixed = periodExpression.toLowerCase();
40
40
  if (isValidPeriod(fixed)) {
41
- return [fixed, PeriodProps[fixed].milliseconds];
41
+ return {
42
+ expression: fixed,
43
+ durationMs: PeriodProps[fixed].milliseconds
44
+ };
42
45
  }
43
46
  var result = fixed.match(CUSTOM_PERIOD_REGEX);
44
47
  if (!result || result.length === 0 || result[0] !== fixed)
45
48
  return null;
46
- var years = result[1] ? parseInt(result[1].replace(/\D/g, '')) : null;
47
- var months = result[2] ? parseInt(result[2].replace(/\D/g, '')) : null;
48
- var weeks = result[3] ? parseInt(result[3].replace(/\D/g, '')) : null;
49
- var days = result[4] ? parseInt(result[4].replace(/\D/g, '')) : null;
50
- var hours = result[5] ? parseInt(result[5].replace(/\D/g, '')) : null;
51
- var yearsMs = years ? years * PeriodProps[Period.YEAR].milliseconds : 0;
52
- var monthsMs = months ? months * PeriodProps[Period.MONTH].milliseconds : 0;
53
- var weeksMs = weeks ? weeks * PeriodProps[Period.WEEK].milliseconds : 0;
54
- var daysMs = days ? days * PeriodProps[Period.DAY].milliseconds : 0;
55
- var hoursMs = hours ? hours * (PeriodProps[Period.DAY].milliseconds / 24) : 0;
49
+ var years = result[1] ? parseInt(result[1].replace(/\D/g, '')) : 0;
50
+ var months = result[2] ? parseInt(result[2].replace(/\D/g, '')) : 0;
51
+ var weeks = result[3] ? parseInt(result[3].replace(/\D/g, '')) : 0;
52
+ var days = result[4] ? parseInt(result[4].replace(/\D/g, '')) : 0;
53
+ var hours = result[5] ? parseInt(result[5].replace(/\D/g, '')) : 0;
54
+ var yearsMs = years * PeriodProps[Period.YEAR].milliseconds;
55
+ var monthsMs = months * PeriodProps[Period.MONTH].milliseconds;
56
+ var weeksMs = weeks * PeriodProps[Period.WEEK].milliseconds;
57
+ var daysMs = days * PeriodProps[Period.DAY].milliseconds;
58
+ var hoursMs = hours * (PeriodProps[Period.DAY].milliseconds / 24);
56
59
  var totalMs = yearsMs + monthsMs + weeksMs + daysMs + hoursMs;
57
- return [result[0], totalMs];
60
+ return {
61
+ expression: result[0],
62
+ durationMs: totalMs
63
+ };
58
64
  }
59
65
  exports.parsePeriodExpression = parsePeriodExpression;
60
66
  //# sourceMappingURL=periods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"periods.js","sourceRoot":"","sources":["../src/periods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"periods.js","sourceRoot":"","sources":["../src/periods.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise-old-man/utils",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "A few constants and helper functions to be re-used in all repositories under the WiseOldMan project.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/periods.ts CHANGED
@@ -30,32 +30,38 @@ function isValidPeriod(period: string): boolean {
30
30
  return PERIODS.includes(period as Period);
31
31
  }
32
32
 
33
- function parsePeriodExpression(periodExpression: string): [string, number] | null {
33
+ function parsePeriodExpression(periodExpression: string) {
34
34
  const fixed = periodExpression.toLowerCase();
35
35
 
36
36
  if (isValidPeriod(fixed)) {
37
- return [fixed, PeriodProps[fixed].milliseconds];
37
+ return {
38
+ expression: fixed,
39
+ durationMs: PeriodProps[fixed as Period].milliseconds
40
+ };
38
41
  }
39
42
 
40
43
  const result = fixed.match(CUSTOM_PERIOD_REGEX);
41
44
 
42
45
  if (!result || result.length === 0 || result[0] !== fixed) return null;
43
46
 
44
- const years = result[1] ? parseInt(result[1].replace(/\D/g, '')) : null;
45
- const months = result[2] ? parseInt(result[2].replace(/\D/g, '')) : null;
46
- const weeks = result[3] ? parseInt(result[3].replace(/\D/g, '')) : null;
47
- const days = result[4] ? parseInt(result[4].replace(/\D/g, '')) : null;
48
- const hours = result[5] ? parseInt(result[5].replace(/\D/g, '')) : null;
47
+ const years = result[1] ? parseInt(result[1].replace(/\D/g, '')) : 0;
48
+ const months = result[2] ? parseInt(result[2].replace(/\D/g, '')) : 0;
49
+ const weeks = result[3] ? parseInt(result[3].replace(/\D/g, '')) : 0;
50
+ const days = result[4] ? parseInt(result[4].replace(/\D/g, '')) : 0;
51
+ const hours = result[5] ? parseInt(result[5].replace(/\D/g, '')) : 0;
49
52
 
50
- const yearsMs = years ? years * PeriodProps[Period.YEAR].milliseconds : 0;
51
- const monthsMs = months ? months * PeriodProps[Period.MONTH].milliseconds : 0;
52
- const weeksMs = weeks ? weeks * PeriodProps[Period.WEEK].milliseconds : 0;
53
- const daysMs = days ? days * PeriodProps[Period.DAY].milliseconds : 0;
54
- const hoursMs = hours ? hours * (PeriodProps[Period.DAY].milliseconds / 24) : 0;
53
+ const yearsMs = years * PeriodProps[Period.YEAR].milliseconds;
54
+ const monthsMs = months * PeriodProps[Period.MONTH].milliseconds;
55
+ const weeksMs = weeks * PeriodProps[Period.WEEK].milliseconds;
56
+ const daysMs = days * PeriodProps[Period.DAY].milliseconds;
57
+ const hoursMs = hours * (PeriodProps[Period.DAY].milliseconds / 24);
55
58
 
56
59
  const totalMs = yearsMs + monthsMs + weeksMs + daysMs + hoursMs;
57
60
 
58
- return [result[0], totalMs];
61
+ return {
62
+ expression: result[0],
63
+ durationMs: totalMs
64
+ };
59
65
  }
60
66
 
61
67
  export { Period, PeriodProps, PERIODS, findPeriod, isValidPeriod, parsePeriodExpression };