@my-devkit/core 1.0.108 → 1.0.110

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.
@@ -2,6 +2,9 @@ export declare class DateHelper {
2
2
  static getUTCTimestamp(): number;
3
3
  static getElapsedTime(startDate: Date, endDate?: Date): number;
4
4
  static getReadableElapsedTime(startDate: Date, endDate?: Date, short?: boolean): string;
5
+ static format(date: Date, format: DateHelper.Format): string;
6
+ static getFormat(formatedDate: string): DateHelper.Format;
7
+ static getAverage(...dates: Date[]): Date;
5
8
  static addYears(startDate: Date, numberOfYears: number): Date;
6
9
  static addMonths(startDate: Date, numberOfMonths: number): Date;
7
10
  static addDays(startDate: Date, numberOfDays: number): Date;
@@ -12,3 +15,6 @@ export declare class DateHelper {
12
15
  static getDay(date: Date): string;
13
16
  static getMilitaryTime(date: Date): string;
14
17
  }
18
+ export declare namespace DateHelper {
19
+ type Format = 'year' | 'quarter' | 'month';
20
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DateHelper = void 0;
4
+ const vendors_1 = require("./vendors");
4
5
  class DateHelper {
5
6
  static getUTCTimestamp() {
6
7
  const now = new Date;
@@ -28,6 +29,39 @@ class DateHelper {
28
29
  }
29
30
  return `${miliseconds} ms`;
30
31
  }
32
+ static format(date, format) {
33
+ const year = date.getUTCFullYear();
34
+ const quarter = Math.floor(date.getUTCMonth() / 3) + 1;
35
+ const month = `00${date.getUTCMonth() + 1}`.slice(-2);
36
+ switch (format) {
37
+ case 'year':
38
+ return `${year}`;
39
+ case 'quarter':
40
+ return `${year}-Q${quarter}`;
41
+ case 'month':
42
+ return `${year}-${month}`;
43
+ default:
44
+ return format;
45
+ }
46
+ }
47
+ static getFormat(formatedDate) {
48
+ switch (true) {
49
+ case /^\d{4}$/.test(formatedDate):
50
+ return 'year';
51
+ case /^\d{4}-Q[1-4]$/.test(formatedDate):
52
+ return 'quarter';
53
+ case /^\d{4}-(0[1-9]|1[0-2])$/.test(formatedDate):
54
+ return 'month';
55
+ default:
56
+ throw new Error(`Date '${formatedDate}' does not have a supported format!`);
57
+ }
58
+ }
59
+ static getAverage(...dates) {
60
+ if (dates.length === 0)
61
+ return null;
62
+ const averageTime = (0, vendors_1._sumBy)(dates, d => d.getTime()) / dates.length;
63
+ return new Date(averageTime);
64
+ }
31
65
  static addYears(startDate, numberOfYears) {
32
66
  return new Date(Date.UTC(startDate.getUTCFullYear() + numberOfYears, startDate.getUTCMonth(), startDate.getUTCDate(), startDate.getUTCHours(), startDate.getUTCMinutes(), startDate.getUTCSeconds(), startDate.getUTCMilliseconds()));
33
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date-helper.js","sourceRoot":"","sources":["../src/date-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACZ,MAAM,CAAC,eAAe;QACzB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EACrE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/F,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,SAAe,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,SAAe,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK;QACrF,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACzD,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACtD,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC;QAEjD,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,OAAO,SAAS,OAAO,QAAQ,WAAW,KAAK,CAAC;SAC/F;QAED,IAAI,OAAO,EAAE;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,OAAO,QAAQ,WAAW,KAAK,CAAC;SACxF;QAED,IAAI,OAAO,EAAE;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,WAAW,KAAK,CAAC;SACxE;QACD,OAAO,GAAG,WAAW,KAAK,CAAC;IAC/B,CAAC;IAGM,MAAM,CAAC,QAAQ,CAAC,SAAe,EAAE,aAAqB;QACzD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACpB,SAAS,CAAC,cAAc,EAAE,GAAG,aAAa,EAC1C,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,UAAU,EAAE,EACtB,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,kBAAkB,EAAE,CACjC,CAAC,CAAC;IACP,CAAC;IAGM,MAAM,CAAC,SAAS,CAAC,SAAe,EAAE,cAAsB;QAC3D,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACpB,SAAS,CAAC,cAAc,EAAE,EAC1B,SAAS,CAAC,WAAW,EAAE,GAAG,cAAc,EACxC,SAAS,CAAC,UAAU,EAAE,EACtB,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,kBAAkB,EAAE,CACjC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,SAAe,EAAE,YAAoB;QACvD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACpB,SAAS,CAAC,cAAc,EAAE,EAC1B,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,UAAU,EAAE,GAAG,YAAY,EACrC,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,kBAAkB,EAAE,CACjC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,SAAe,EAAE,aAAqB;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,aAAa,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,SAAe,EAAE,eAAuB;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,eAAe,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,SAAe,EAAE,eAAuB;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,eAAe,CAAC,CAAC;IAClE,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,SAAe,EAAE,mBAA2B;QACrE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACpB,SAAS,CAAC,cAAc,EAAE,EAC1B,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,UAAU,EAAE,EACtB,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,aAAa,EAAE,EACzB,SAAS,CAAC,kBAAkB,EAAE,GAAG,mBAAmB,CACvD,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAU;QAC3B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAU;QACpC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,OAAO,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;CACJ;AA/GD,gCA+GC"}
1
+ {"version":3,"file":"date-helper.js","sourceRoot":"","sources":["../src/date-helper.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,12 @@ class JsonHelper {
12
12
  }
13
13
  }
14
14
  static parse(body) {
15
- return JSON.parse(body, JsonHelper.dateParser.bind(this));
15
+ try {
16
+ return JSON.parse(body, JsonHelper.dateParser.bind(this));
17
+ }
18
+ catch (_a) {
19
+ return null;
20
+ }
16
21
  }
17
22
  static stringify(value) {
18
23
  return JSON.stringify(value);
@@ -1 +1 @@
1
- {"version":3,"file":"json-helper.js","sourceRoot":"","sources":["../src/json-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACZ,MAAM,CAAC,MAAM,CAAC,IAAY;QAC7B,IAAI;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;SACf;QAAC,WAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,KAAQ;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,KAAU;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAY;QACvC,OAAO,wGAAwG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/H,CAAC;CACJ;AA5BD,gCA4BC"}
1
+ {"version":3,"file":"json-helper.js","sourceRoot":"","sources":["../src/json-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACZ,MAAM,CAAC,MAAM,CAAC,IAAY;QAC7B,IAAI;YACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;SACf;QAAC,WAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,MAAM,CAAC,KAAK,CAAI,IAAY;QAC/B,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7D;QAAC,WAAM;YACJ,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,KAAQ;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,KAAU;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAChE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAY;QACvC,OAAO,wGAAwG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/H,CAAC;CACJ;AAhCD,gCAgCC"}
@@ -1 +1 @@
1
- export { chunk as _chunk, cloneDeep as _cloneDeep, compact as _compact, deburr as _deburr, findLastIndex as _findLastIndex, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, lowerFirst as _lowerFirst, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, random as _random, set as _set, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, uniqBy as _uniqBy, upperFirst as _upperFirst, values as _values, words as _words } from 'lodash';
1
+ export { chunk as _chunk, cloneDeep as _cloneDeep, compact as _compact, deburr as _deburr, findLastIndex as _findLastIndex, first as _first, flatten as _flatten, flattenDeep as _flattenDeep, get as _get, groupBy as _groupBy, isArray as _isArray, isBoolean as _isBoolean, isDate as _isDate, isEqual as _isEqual, isNil as _isNil, isObjectLike as _isObjectLike, isString as _isString, kebabCase as _kebabCase, keys as _keys, last as _last, lowerFirst as _lowerFirst, maxBy as _maxBy, minBy as _minBy, orderBy as _orderBy, padStart as _padStart, random as _random, round as _round, set as _set, shuffle as _shuffle, sortBy as _sortBy, sum as _sum, sumBy as _sumBy, trim as _trim, trimEnd as _trimEnd, trimStart as _trimStart, uniq as _uniq, uniqBy as _uniqBy, upperFirst as _upperFirst, values as _values, words as _words } from 'lodash';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._words = exports._values = exports._upperFirst = exports._uniqBy = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._set = exports._random = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._lowerFirst = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._findLastIndex = exports._deburr = exports._compact = exports._cloneDeep = exports._chunk = void 0;
3
+ exports._words = exports._values = exports._upperFirst = exports._uniqBy = exports._uniq = exports._trimStart = exports._trimEnd = exports._trim = exports._sumBy = exports._sum = exports._sortBy = exports._shuffle = exports._set = exports._round = exports._random = exports._padStart = exports._orderBy = exports._minBy = exports._maxBy = exports._lowerFirst = exports._last = exports._keys = exports._kebabCase = exports._isString = exports._isObjectLike = exports._isNil = exports._isEqual = exports._isDate = exports._isBoolean = exports._isArray = exports._groupBy = exports._get = exports._flattenDeep = exports._flatten = exports._first = exports._findLastIndex = exports._deburr = exports._compact = exports._cloneDeep = exports._chunk = void 0;
4
4
  var lodash_1 = require("lodash");
5
5
  Object.defineProperty(exports, "_chunk", { enumerable: true, get: function () { return lodash_1.chunk; } });
6
6
  Object.defineProperty(exports, "_cloneDeep", { enumerable: true, get: function () { return lodash_1.cloneDeep; } });
@@ -28,6 +28,7 @@ Object.defineProperty(exports, "_minBy", { enumerable: true, get: function () {
28
28
  Object.defineProperty(exports, "_orderBy", { enumerable: true, get: function () { return lodash_1.orderBy; } });
29
29
  Object.defineProperty(exports, "_padStart", { enumerable: true, get: function () { return lodash_1.padStart; } });
30
30
  Object.defineProperty(exports, "_random", { enumerable: true, get: function () { return lodash_1.random; } });
31
+ Object.defineProperty(exports, "_round", { enumerable: true, get: function () { return lodash_1.round; } });
31
32
  Object.defineProperty(exports, "_set", { enumerable: true, get: function () { return lodash_1.set; } });
32
33
  Object.defineProperty(exports, "_shuffle", { enumerable: true, get: function () { return lodash_1.shuffle; } });
33
34
  Object.defineProperty(exports, "_sortBy", { enumerable: true, get: function () { return lodash_1.sortBy; } });
@@ -1 +1 @@
1
- {"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,iCAwCgB;AAvCZ,gGAAA,KAAK,OAAU;AACf,oGAAA,SAAS,OAAc;AACvB,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,wGAAA,aAAa,OAAkB;AAC/B,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,sGAAA,WAAW,OAAgB;AAC3B,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,kGAAA,OAAO,OAAY;AACnB,gGAAA,KAAK,OAAU;AACf,uGAAA,YAAY,OAAiB;AAC7B,mGAAA,QAAQ,OAAa;AACrB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,+FAAA,IAAI,OAAS;AACb,qGAAA,UAAU,OAAe;AACzB,gGAAA,KAAK,OAAU;AACf,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,mGAAA,QAAQ,OAAa;AACrB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,gGAAA,KAAK,OAAU;AACf,+FAAA,IAAI,OAAS;AACb,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,iGAAA,MAAM,OAAW;AACjB,qGAAA,UAAU,OAAe;AACzB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU"}
1
+ {"version":3,"file":"lodash.js","sourceRoot":"","sources":["../../src/vendors/lodash.ts"],"names":[],"mappings":";;;AAAA,iCAyCgB;AAxCZ,gGAAA,KAAK,OAAU;AACf,oGAAA,SAAS,OAAc;AACvB,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,wGAAA,aAAa,OAAkB;AAC/B,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,sGAAA,WAAW,OAAgB;AAC3B,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,iGAAA,MAAM,OAAW;AACjB,kGAAA,OAAO,OAAY;AACnB,gGAAA,KAAK,OAAU;AACf,uGAAA,YAAY,OAAiB;AAC7B,mGAAA,QAAQ,OAAa;AACrB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,+FAAA,IAAI,OAAS;AACb,qGAAA,UAAU,OAAe;AACzB,gGAAA,KAAK,OAAU;AACf,gGAAA,KAAK,OAAU;AACf,kGAAA,OAAO,OAAY;AACnB,mGAAA,QAAQ,OAAa;AACrB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU;AACf,8FAAA,GAAG,OAAQ;AACX,kGAAA,OAAO,OAAY;AACnB,iGAAA,MAAM,OAAW;AACjB,8FAAA,GAAG,OAAQ;AACX,gGAAA,KAAK,OAAU;AACf,+FAAA,IAAI,OAAS;AACb,kGAAA,OAAO,OAAY;AACnB,oGAAA,SAAS,OAAc;AACvB,+FAAA,IAAI,OAAS;AACb,iGAAA,MAAM,OAAW;AACjB,qGAAA,UAAU,OAAe;AACzB,iGAAA,MAAM,OAAW;AACjB,gGAAA,KAAK,OAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@my-devkit/core",
3
- "version": "1.0.108",
3
+ "version": "1.0.110",
4
4
  "description": "My Devkit: common tools",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -1,3 +1,5 @@
1
+ import { _sumBy } from './vendors';
2
+
1
3
  export class DateHelper {
2
4
  public static getUTCTimestamp(): number {
3
5
  const now = new Date;
@@ -33,6 +35,46 @@ export class DateHelper {
33
35
  return `${miliseconds} ms`;
34
36
  }
35
37
 
38
+ public static format(date: Date, format: DateHelper.Format): string {
39
+ const year = date.getUTCFullYear();
40
+ const quarter = Math.floor(date.getUTCMonth() / 3) + 1;
41
+ const month = `00${date.getUTCMonth() + 1}`.slice(-2);
42
+
43
+ switch (format) {
44
+ case 'year':
45
+ return `${year}`;
46
+ case 'quarter':
47
+ return `${year}-Q${quarter}`;
48
+ case 'month':
49
+ return `${year}-${month}`;
50
+
51
+ default:
52
+ return format satisfies never;
53
+ }
54
+ }
55
+
56
+ public static getFormat(formatedDate: string): DateHelper.Format {
57
+ switch (true) {
58
+ case /^\d{4}$/.test(formatedDate):
59
+ return 'year';
60
+ case /^\d{4}-Q[1-4]$/.test(formatedDate):
61
+ return 'quarter';
62
+ case /^\d{4}-(0[1-9]|1[0-2])$/.test(formatedDate):
63
+ return 'month';
64
+
65
+ default:
66
+ throw new Error(`Date '${formatedDate}' does not have a supported format!`);
67
+ }
68
+ }
69
+
70
+ public static getAverage(...dates: Date[]): Date {
71
+ if (dates.length === 0)
72
+ return null;
73
+
74
+ const averageTime = _sumBy(dates, d => d.getTime()) / dates.length;
75
+
76
+ return new Date(averageTime);
77
+ }
36
78
 
37
79
  public static addYears(startDate: Date, numberOfYears: number): Date {
38
80
  return new Date(Date.UTC(
@@ -110,3 +152,7 @@ export class DateHelper {
110
152
  return `${('00' + hours).slice(-2)}:${('00' + minute).slice(-2)}`;
111
153
  }
112
154
  }
155
+
156
+ export namespace DateHelper {
157
+ export type Format = 'year' | 'quarter' | 'month';
158
+ }
@@ -9,7 +9,11 @@ export class JsonHelper {
9
9
  }
10
10
 
11
11
  public static parse<T>(body: string): T {
12
- return JSON.parse(body, JsonHelper.dateParser.bind(this));
12
+ try {
13
+ return JSON.parse(body, JsonHelper.dateParser.bind(this));
14
+ } catch {
15
+ return null;
16
+ }
13
17
  }
14
18
 
15
19
  public static stringify<T>(value: T): string {
@@ -25,6 +25,7 @@ export {
25
25
  orderBy as _orderBy,
26
26
  padStart as _padStart,
27
27
  random as _random,
28
+ round as _round,
28
29
  set as _set,
29
30
  shuffle as _shuffle,
30
31
  sortBy as _sortBy,