@alarido/ts-utils 1.0.0 → 1.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"compares.d.ts","sourceRoot":"","sources":["../../src/functions/compares.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;CACjB;AAED;;GAEG;AACH,cAAM,YAAY;;IAGd;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,kBAAkB,EAAE;IAqC1F;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO;IAQxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO;CAK1C;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
1
+ {"version":3,"file":"compares.d.ts","sourceRoot":"","sources":["../../src/functions/compares.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;CACjB;AAED;;GAEG;AACH,cAAM,YAAY;;IAGd;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,kBAAkB,EAAE;IA6D1F;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO;IAQxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO;CAK1C;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
@@ -22,6 +22,7 @@ class CompareUtils {
22
22
  const keys_a = Object.keys(sa);
23
23
  const keys_b = Object.keys(sb);
24
24
  const is_object = (obj) => obj != null && typeof obj === 'object';
25
+ const regx = /\.(0[Xx][0-9A-Fa-f]+|\d+)/g;
25
26
  let result = [];
26
27
  if (keys_a.length !== keys_b.length) {
27
28
  return [{
@@ -34,6 +35,7 @@ class CompareUtils {
34
35
  const val_a = sa[key];
35
36
  const val_b = sb[key];
36
37
  let inequal = false;
38
+ let sublist = [];
37
39
  //
38
40
  if (val_a instanceof Date && val_b instanceof Date) {
39
41
  inequal = !this.areSameDate(val_a, val_b);
@@ -47,11 +49,33 @@ class CompareUtils {
47
49
  inequal = !this.areSameDate(date_a, val_b);
48
50
  }
49
51
  else if (is_object(val_a) && is_object(val_b)) {
50
- inequal = this.areDivergent(val_a, val_b);
52
+ sublist = this.getDivergentValues(val_a, val_b);
53
+ inequal = sublist.length > 0;
51
54
  }
52
55
  else {
53
56
  inequal = !(strictCompare ? (val_a === val_b) : (val_a == val_b));
54
57
  }
58
+ //
59
+ if (inequal) {
60
+ if (sublist.length > 0) {
61
+ for (const sub of sublist) {
62
+ const subn = key + "." + sub.name;
63
+ let subname = regx.test(subn) ? subn.replace(regx, "[$1]") : subn;
64
+ result.push({
65
+ name: (subname),
66
+ value: (sub.oldValue),
67
+ oldValue: (sub.value)
68
+ });
69
+ }
70
+ }
71
+ else {
72
+ result.push({
73
+ name: (key),
74
+ value: (val_a),
75
+ oldValue: (val_b)
76
+ });
77
+ }
78
+ }
55
79
  }
56
80
  return result;
57
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compares.js","sourceRoot":"","sources":["../../src/functions/compares.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAS/B,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY;IACd,gBAAe,CAAC;IAEhB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAO,EAAE,EAAO,EAAE,gBAAyB,KAAK;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;QACvE,IAAI,MAAM,GAAyB,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC;oBACJ,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,CAAC,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC,EAAE,CAAC;iBACjB,CAAC,CAAC;QACP,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,EAAE;YACF,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBACjD,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,EAAQ,EAAE,EAAQ;QAC1B,IAAI,CAAC,CAAE,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,CAAE,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,EAAO,EAAE,EAAO;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"compares.js","sourceRoot":"","sources":["../../src/functions/compares.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAS/B,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY;IACd,gBAAe,CAAC;IAEhB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAO,EAAE,EAAO,EAAE,gBAAyB,KAAK;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;QACvE,MAAM,IAAI,GAAG,4BAA4B,CAAC;QAC1C,IAAI,MAAM,GAAyB,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC;oBACJ,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,CAAC,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC,EAAE,CAAC;iBACjB,CAAC,CAAC;QACP,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,OAAO,GAA0B,EAAE,CAAC;YACxC,EAAE;YACF,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBACjD,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,OAAO,GAAG,CAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,EAAE;YACF,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,GAAG,GAAC,GAAG,GAAC,GAAG,CAAC,IAAI,CAAC;wBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAElE,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,CAAC,OAAO,CAAC;4BACf,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;4BACrB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;yBACxB,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,CAAC,GAAG,CAAC;wBACX,KAAK,EAAE,CAAC,KAAK,CAAC;wBACd,QAAQ,EAAE,CAAC,KAAK,CAAC;qBACpB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,EAAQ,EAAE,EAAQ;QAC1B,IAAI,CAAC,CAAE,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,CAAE,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,EAAO,EAAE,EAAO;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -11,6 +11,14 @@ declare class DateUtils {
11
11
  * @returns Date
12
12
  */
13
13
  parse(value: string, format?: string): Date;
14
+ /**
15
+ * Parse an array of string date values according the format.
16
+ *
17
+ * @param values: string[]
18
+ * @param format: string
19
+ * @returns any[]
20
+ */
21
+ parses(values: string[], format?: string): any[];
14
22
  }
15
23
  export declare const dates: DateUtils;
16
24
  export declare const now: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../src/functions/dates.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,cAAM,SAAS;;IAGX;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAqB,GAAG,IAAI;CAuB5D;AAGD,eAAO,MAAM,KAAK,WAAkB,CAAC;AACrC,eAAO,MAAM,GAAG,MAAQ,CAAC"}
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../src/functions/dates.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,cAAM,SAAS;;IAGX;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAqB,GAAG,IAAI;IAwBzD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,MAAqB,GAAG,GAAG,EAAE;CASjE;AAGD,eAAO,MAAM,KAAK,WAAkB,CAAC;AACrC,eAAO,MAAM,GAAG,MAAQ,CAAC"}
@@ -38,6 +38,20 @@ class DateUtils {
38
38
  const second = (secondsIndex >= 0) ? dateItems[secondsIndex] : 0;
39
39
  return new Date(year, month - 1, day, hour, minute, second);
40
40
  }
41
+ /**
42
+ * Parse an array of string date values according the format.
43
+ *
44
+ * @param values: string[]
45
+ * @param format: string
46
+ * @returns any[]
47
+ */
48
+ parses(values, format = "yyyy-mm-dd") {
49
+ let result = [];
50
+ for (const value of values) {
51
+ result.push(this.parse(value, format));
52
+ }
53
+ return result;
54
+ }
41
55
  }
42
56
  exports.dates = new DateUtils();
43
57
  exports.now = NOW();
@@ -1 +1 @@
1
- {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/functions/dates.ts"],"names":[],"mappings":";;;AACA;;;;GAIG;AACH,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,SAAS;IACX,gBAAe,CAAC;IAEhB;;;;;;OAMG;IACH,KAAK,CAAC,KAAa,EAAE,SAAiB,YAAY;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAQ,CAAC,SAAS,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAQ,CAAC,UAAU,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAQ,CAAC,QAAQ,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAQ,CAAC,SAAS,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAQ,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAQ,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACJ;AAGY,QAAA,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;AACxB,QAAA,GAAG,GAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/functions/dates.ts"],"names":[],"mappings":";;;AACA;;;;GAIG;AACH,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,SAAS;IACX,gBAAe,CAAC;IAEhB;;;;;;OAMG;IACH,KAAK,CAAC,KAAa,EAAE,SAAiB,YAAY;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAQ,CAAC,SAAS,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAQ,CAAC,UAAU,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAQ,CAAC,QAAQ,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAQ,CAAC,SAAS,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAQ,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAQ,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAgB,EAAE,SAAiB,YAAY;QAClD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAGY,QAAA,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;AACxB,QAAA,GAAG,GAAG,GAAG,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import * as Compares from "./functions/compares";
4
4
  */
5
5
  export declare const dates: {
6
6
  parse(value: string, format?: string): Date;
7
+ parses(values: string[], format?: string): any[];
7
8
  };
8
9
  export declare const compares: {
9
10
  getDivergentValues(sa: any, sb: any, strictCompare?: boolean): Compares.DivergentValueInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AAEH,eAAO,MAAM,KAAK;;CAAc,CAAC;AACjC,eAAO,MAAM,QAAQ;;;;CAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AAEH,eAAO,MAAM,KAAK;;;CAAc,CAAC;AACjC,eAAO,MAAM,QAAQ;;;;CAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=function.compares.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.compares.test.d.ts","sourceRoot":"","sources":["../../src/test/function.compares.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const compares_1 = require("../functions/compares");
4
+ describe('testing compares.getDivergentValues', () => {
5
+ test('getDivergentValues("", "") should return empty list', () => {
6
+ const result = compares_1.compares.getDivergentValues("", "");
7
+ expect(result.length).toBe(0);
8
+ });
9
+ test('getDivergentValues(0, 0) should return empty list', () => {
10
+ const result = compares_1.compares.getDivergentValues(0, 0);
11
+ expect(result.length).toBe(0);
12
+ });
13
+ test('getDivergentValues({}, {}) should return empty list', () => {
14
+ const result = compares_1.compares.getDivergentValues({}, {});
15
+ expect(result.length).toBe(0);
16
+ });
17
+ test('getDivergentValues(A, B) should return empty list when objects A and B are A == B even A !== B', () => {
18
+ const A = {
19
+ foo: "bar",
20
+ primes: [2, 3, 5, 7, 11, 13, 17, 19],
21
+ person: {
22
+ name: "John Dee",
23
+ age: 97
24
+ }
25
+ };
26
+ const B = {
27
+ foo: "bar",
28
+ primes: [2, 3, 5, 7, 11, 13, 17, 19],
29
+ person: {
30
+ name: "John Dee",
31
+ age: 97
32
+ }
33
+ };
34
+ const result = compares_1.compares.getDivergentValues(A, B);
35
+ expect(result.length).toBe(0);
36
+ });
37
+ test('getDivergentValues(A, B).length should return 2 when objects A and B have two divergent values', () => {
38
+ const A = {
39
+ foo: "bar",
40
+ primes: [2, 3, 5, 7, 11, 13, 17, 19],
41
+ person: {
42
+ name: "John Dee",
43
+ age: 97
44
+ }
45
+ };
46
+ const B = {
47
+ foo: "bar",
48
+ primes: [2, 4, 5, 7, 11, 13, 17, 19],
49
+ person: {
50
+ name: "John Dee",
51
+ age: 79
52
+ }
53
+ };
54
+ const result = compares_1.compares.getDivergentValues(A, B);
55
+ expect(result.length).toBe(2);
56
+ });
57
+ });
58
+ //# sourceMappingURL=function.compares.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.compares.test.js","sourceRoot":"","sources":["../../src/test/function.compares.test.ts"],"names":[],"mappings":";;AAAA,oDAAiD;AAEjD,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACjD,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;QACxG,MAAM,CAAC,GAAG;YACN,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC;YAC7B,MAAM,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,EAAE;aACV;SACJ,CAAC;QACF,MAAM,CAAC,GAAG;YACN,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC;YAC7B,MAAM,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,EAAE;aACV;SACJ,CAAC;QACF,MAAM,MAAM,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;QACxG,MAAM,CAAC,GAAG;YACN,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC;YAC7B,MAAM,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,EAAE;aACV;SACJ,CAAC;QACF,MAAM,CAAC,GAAG;YACN,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC;YAC7B,MAAM,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,EAAE;aACV;SACJ,CAAC;QACF,MAAM,MAAM,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ const { createDefaultPreset } = require("ts-jest");
2
+
3
+ const tsJestTransformCfg = createDefaultPreset().transform;
4
+
5
+ /** @type {import("jest").Config} **/
6
+ module.exports = {
7
+ testEnvironment: "node",
8
+ transform: {
9
+ ...tsJestTransformCfg,
10
+ },
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alarido/ts-utils",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -8,7 +8,7 @@
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
10
  "scripts": {
11
- "test": "echo \"Error: no test specified\" && exit 1",
11
+ "test": "npx jest",
12
12
  "build": "tsc",
13
13
  "prepublish": "npm run build"
14
14
  },
@@ -24,7 +24,10 @@
24
24
  },
25
25
  "homepage": "https://github.com/collei/ts-utils#readme",
26
26
  "devDependencies": {
27
+ "@types/jest": "^30.0.0",
27
28
  "@types/node": "^25.0.3",
29
+ "jest": "^30.2.0",
30
+ "ts-jest": "^29.4.6",
28
31
  "typescript": "^5.9.3"
29
32
  }
30
33
  }
package/see.cmd ADDED
@@ -0,0 +1 @@
1
+ cmd
package/tsconfig.json CHANGED
@@ -4,7 +4,6 @@
4
4
  // File Layout
5
5
  "rootDir": "./src",
6
6
  "outDir": "./dist",
7
-
8
7
  // Environment Settings
9
8
  // See also https://aka.ms/tsconfig/module
10
9
  "module": "nodenext",
@@ -12,7 +11,7 @@
12
11
  //"types": [],
13
12
  // For nodejs:
14
13
  "lib": ["esnext"],
15
- "types": ["node"],
14
+ "types": ["node","jest"],
16
15
  // and npm install -D @types/node
17
16
 
18
17
  // Other Outputs