@dereekb/util 4.1.0 → 5.1.0

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.
Files changed (220) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/LICENSE +21 -0
  3. package/package.json +1 -2
  4. package/src/lib/array/array.boolean.d.ts +3 -3
  5. package/src/lib/array/array.boolean.js +4 -4
  6. package/src/lib/array/array.boolean.js.map +1 -1
  7. package/src/lib/array/array.d.ts +3 -3
  8. package/src/lib/array/array.filter.js +1 -1
  9. package/src/lib/array/array.filter.js.map +1 -1
  10. package/src/lib/array/array.index.d.ts +1 -1
  11. package/src/lib/array/array.index.js +2 -2
  12. package/src/lib/array/array.index.js.map +1 -1
  13. package/src/lib/array/array.js +3 -3
  14. package/src/lib/array/array.js.map +1 -1
  15. package/src/lib/array/array.limit.d.ts +3 -3
  16. package/src/lib/array/array.make.d.ts +1 -1
  17. package/src/lib/array/array.make.js +2 -2
  18. package/src/lib/array/array.make.js.map +1 -1
  19. package/src/lib/array/array.map.d.ts +2 -2
  20. package/src/lib/array/array.map.js +3 -3
  21. package/src/lib/array/array.map.js.map +1 -1
  22. package/src/lib/array/array.number.d.ts +3 -3
  23. package/src/lib/array/array.number.js +1 -1
  24. package/src/lib/array/array.number.js.map +1 -1
  25. package/src/lib/array/array.string.d.ts +1 -1
  26. package/src/lib/array/array.string.js +1 -1
  27. package/src/lib/array/array.string.js.map +1 -1
  28. package/src/lib/array/array.unique.d.ts +3 -3
  29. package/src/lib/array/array.unique.js.map +1 -1
  30. package/src/lib/array/array.value.d.ts +1 -1
  31. package/src/lib/array/array.value.js +2 -2
  32. package/src/lib/array/array.value.js.map +1 -1
  33. package/src/lib/assertion/assert.error.d.ts +1 -1
  34. package/src/lib/assertion/assert.error.js +1 -1
  35. package/src/lib/assertion/assert.error.js.map +1 -1
  36. package/src/lib/assertion/assertion.d.ts +2 -2
  37. package/src/lib/assertion/assertion.generic.d.ts +2 -2
  38. package/src/lib/assertion/assertion.js.map +1 -1
  39. package/src/lib/assertion/assertion.number.d.ts +1 -1
  40. package/src/lib/assertion/assertion.number.js.map +1 -1
  41. package/src/lib/auth/auth.role.claims.d.ts +43 -24
  42. package/src/lib/auth/auth.role.claims.js +18 -7
  43. package/src/lib/auth/auth.role.claims.js.map +1 -1
  44. package/src/lib/auth/auth.role.d.ts +1 -1
  45. package/src/lib/auth/auth.role.js.map +1 -1
  46. package/src/lib/boolean.d.ts +1 -1
  47. package/src/lib/boolean.js +1 -1
  48. package/src/lib/boolean.js.map +1 -1
  49. package/src/lib/contact/domain.d.ts +1 -1
  50. package/src/lib/contact/domain.js.map +1 -1
  51. package/src/lib/contact/email.d.ts +1 -2
  52. package/src/lib/contact/email.js +2 -2
  53. package/src/lib/contact/email.js.map +1 -1
  54. package/src/lib/date/date.d.ts +1 -1
  55. package/src/lib/date/date.js +1 -1
  56. package/src/lib/date/date.js.map +1 -1
  57. package/src/lib/date/date.time.d.ts +1 -1
  58. package/src/lib/error/error.d.ts +7 -3
  59. package/src/lib/error/error.js +8 -6
  60. package/src/lib/error/error.js.map +1 -1
  61. package/src/lib/error/error.server.d.ts +2 -2
  62. package/src/lib/error/error.server.js.map +1 -1
  63. package/src/lib/filter/filter.d.ts +3 -3
  64. package/src/lib/filter/filter.js +3 -3
  65. package/src/lib/filter/filter.js.map +1 -1
  66. package/src/lib/function/function.d.ts +7 -0
  67. package/src/lib/function/function.forward.d.ts +3 -3
  68. package/src/lib/function/function.forward.js +2 -0
  69. package/src/lib/function/function.forward.js.map +1 -1
  70. package/src/lib/function/function.js +14 -0
  71. package/src/lib/function/function.js.map +1 -0
  72. package/src/lib/function/index.d.ts +1 -0
  73. package/src/lib/function/index.js +1 -0
  74. package/src/lib/function/index.js.map +1 -1
  75. package/src/lib/getter/getter.cache.d.ts +3 -3
  76. package/src/lib/getter/getter.cache.js +2 -2
  77. package/src/lib/getter/getter.cache.js.map +1 -1
  78. package/src/lib/getter/getter.d.ts +5 -5
  79. package/src/lib/getter/getter.js +1 -1
  80. package/src/lib/getter/getter.js.map +1 -1
  81. package/src/lib/getter/getter.map.d.ts +2 -2
  82. package/src/lib/grouping.d.ts +2 -2
  83. package/src/lib/grouping.js +7 -7
  84. package/src/lib/grouping.js.map +1 -1
  85. package/src/lib/hash.js +2 -2
  86. package/src/lib/hash.js.map +1 -1
  87. package/src/lib/index.d.ts +1 -0
  88. package/src/lib/index.js +1 -0
  89. package/src/lib/index.js.map +1 -1
  90. package/src/lib/iterable/iterable.d.ts +2 -2
  91. package/src/lib/iterable/iterable.js +1 -1
  92. package/src/lib/iterable/iterable.js.map +1 -1
  93. package/src/lib/iterate.js.map +1 -1
  94. package/src/lib/key.d.ts +1 -1
  95. package/src/lib/map/map.d.ts +11 -3
  96. package/src/lib/map/map.js +15 -1
  97. package/src/lib/map/map.js.map +1 -1
  98. package/src/lib/misc/host.d.ts +1 -1
  99. package/src/lib/model/index.d.ts +1 -0
  100. package/src/lib/model/index.js +1 -0
  101. package/src/lib/model/index.js.map +1 -1
  102. package/src/lib/model/model.conversion.d.ts +77 -50
  103. package/src/lib/model/model.conversion.field.d.ts +8 -0
  104. package/src/lib/model/model.conversion.field.js +23 -0
  105. package/src/lib/model/model.conversion.field.js.map +1 -0
  106. package/src/lib/model/model.conversion.js +45 -30
  107. package/src/lib/model/model.conversion.js.map +1 -1
  108. package/src/lib/model/model.copy.d.ts +4 -4
  109. package/src/lib/model/model.copy.js.map +1 -1
  110. package/src/lib/model/model.d.ts +1 -1
  111. package/src/lib/model/model.js +4 -4
  112. package/src/lib/model/model.js.map +1 -1
  113. package/src/lib/number/random.js +2 -2
  114. package/src/lib/number/random.js.map +1 -1
  115. package/src/lib/number/round.js.map +1 -1
  116. package/src/lib/object/object.array.d.ts +1 -1
  117. package/src/lib/object/object.array.js +1 -1
  118. package/src/lib/object/object.array.js.map +1 -1
  119. package/src/lib/object/object.d.ts +13 -9
  120. package/src/lib/object/object.js +13 -13
  121. package/src/lib/object/object.js.map +1 -1
  122. package/src/lib/object/object.map.d.ts +5 -5
  123. package/src/lib/object/object.map.js +1 -1
  124. package/src/lib/object/object.map.js.map +1 -1
  125. package/src/lib/page/page.calculator.d.ts +1 -1
  126. package/src/lib/page/page.calculator.js.map +1 -1
  127. package/src/lib/page/page.d.ts +1 -1
  128. package/src/lib/page/page.filter.d.ts +3 -3
  129. package/src/lib/page/page.filter.js.map +1 -1
  130. package/src/lib/page/page.js +1 -1
  131. package/src/lib/page/page.js.map +1 -1
  132. package/src/lib/promise/is.js +1 -1
  133. package/src/lib/promise/is.js.map +1 -1
  134. package/src/lib/promise/map.d.ts +1 -1
  135. package/src/lib/promise/poll.js +1 -1
  136. package/src/lib/promise/poll.js.map +1 -1
  137. package/src/lib/promise/promise.d.ts +8 -8
  138. package/src/lib/promise/promise.js +12 -13
  139. package/src/lib/promise/promise.js.map +1 -1
  140. package/src/lib/promise/promise.loop.d.ts +1 -1
  141. package/src/lib/promise/promise.loop.js +19 -21
  142. package/src/lib/promise/promise.loop.js.map +1 -1
  143. package/src/lib/promise/promise.ref.d.ts +3 -3
  144. package/src/lib/promise/promise.ref.js +2 -2
  145. package/src/lib/promise/promise.ref.js.map +1 -1
  146. package/src/lib/promise/wait.js +1 -1
  147. package/src/lib/promise/wait.js.map +1 -1
  148. package/src/lib/relation/relation.js +1 -2
  149. package/src/lib/relation/relation.js.map +1 -1
  150. package/src/lib/service/handler.config.d.ts +48 -0
  151. package/src/lib/service/handler.config.js +61 -0
  152. package/src/lib/service/handler.config.js.map +1 -0
  153. package/src/lib/service/handler.d.ts +47 -0
  154. package/src/lib/service/handler.js +54 -0
  155. package/src/lib/service/handler.js.map +1 -0
  156. package/src/lib/service/index.d.ts +2 -0
  157. package/src/lib/service/index.js +6 -0
  158. package/src/lib/service/index.js.map +1 -0
  159. package/src/lib/set/set.allowed.d.ts +1 -1
  160. package/src/lib/set/set.hashset.d.ts +3 -3
  161. package/src/lib/set/set.hashset.js +4 -4
  162. package/src/lib/set/set.hashset.js.map +1 -1
  163. package/src/lib/set/set.js +3 -3
  164. package/src/lib/set/set.js.map +1 -1
  165. package/src/lib/set/set.maybe.d.ts +1 -1
  166. package/src/lib/sort.js +1 -1
  167. package/src/lib/sort.js.map +1 -1
  168. package/src/lib/storage/storage.error.js +6 -2
  169. package/src/lib/storage/storage.error.js.map +1 -1
  170. package/src/lib/storage/storage.memory.d.ts +1 -1
  171. package/src/lib/storage/storage.memory.js +2 -1
  172. package/src/lib/storage/storage.memory.js.map +1 -1
  173. package/src/lib/storage/storage.object.js +3 -1
  174. package/src/lib/storage/storage.object.js.map +1 -1
  175. package/src/lib/string.d.ts +7 -4
  176. package/src/lib/string.js +2 -2
  177. package/src/lib/string.js.map +1 -1
  178. package/src/lib/tree/tree.array.d.ts +2 -2
  179. package/src/lib/tree/tree.array.js +2 -0
  180. package/src/lib/tree/tree.array.js.map +1 -1
  181. package/src/lib/tree/tree.expand.d.ts +2 -2
  182. package/src/lib/tree/tree.expand.js +4 -3
  183. package/src/lib/tree/tree.expand.js.map +1 -1
  184. package/src/lib/tree/tree.flatten.d.ts +7 -7
  185. package/src/lib/tree/tree.flatten.js.map +1 -1
  186. package/src/lib/tree/tree.js +2 -0
  187. package/src/lib/tree/tree.js.map +1 -1
  188. package/src/lib/type.d.ts +31 -5
  189. package/src/lib/value/build.d.ts +18 -0
  190. package/src/lib/value/build.js +16 -0
  191. package/src/lib/value/build.js.map +1 -0
  192. package/src/lib/value/equal.d.ts +3 -3
  193. package/src/lib/value/equal.js +1 -1
  194. package/src/lib/value/equal.js.map +1 -1
  195. package/src/lib/value/index.d.ts +2 -0
  196. package/src/lib/value/index.js +2 -0
  197. package/src/lib/value/index.js.map +1 -1
  198. package/src/lib/value/map.d.ts +25 -1
  199. package/src/lib/value/map.js +39 -0
  200. package/src/lib/value/map.js.map +1 -1
  201. package/src/lib/value/maybe.d.ts +12 -13
  202. package/src/lib/value/maybe.js +3 -13
  203. package/src/lib/value/maybe.js.map +1 -1
  204. package/src/lib/value/modifier.d.ts +2 -2
  205. package/src/lib/value/modifier.js.map +1 -1
  206. package/src/lib/value/url.d.ts +7 -0
  207. package/src/lib/value/url.js +22 -0
  208. package/src/lib/value/url.js.map +1 -0
  209. package/test/CHANGELOG.md +12 -0
  210. package/test/package.json +2 -3
  211. package/test/src/lib/jest.function.d.ts +1 -1
  212. package/test/src/lib/jest.js.map +1 -1
  213. package/test/src/lib/jest.wrap.d.ts +1 -1
  214. package/test/src/lib/jest.wrap.js.map +1 -1
  215. package/src/lib/context/context.d.ts +0 -1
  216. package/src/lib/context/context.js +0 -6
  217. package/src/lib/context/context.js.map +0 -1
  218. package/src/lib/context/index.d.ts +0 -0
  219. package/src/lib/context/index.js +0 -2
  220. package/src/lib/context/index.js.map +0 -1
@@ -33,7 +33,7 @@ export declare type StringOrGetter = GetterOrValue<string>;
33
33
  * @param value
34
34
  * @returns
35
35
  */
36
- export declare function isGetter<T = any>(value: any): value is Getter<T>;
36
+ export declare function isGetter<T = unknown>(value: unknown): value is Getter<T>;
37
37
  /**
38
38
  * If the input is a function, it is executed. Otherwise, the value is returned.
39
39
  *
@@ -41,10 +41,10 @@ export declare function isGetter<T = any>(value: any): value is Getter<T>;
41
41
  * @returns
42
42
  */
43
43
  export declare function getValueFromGetter<T>(input: GetterOrValue<T>): T;
44
- export declare function getValueFromGetter<T>(this: any, input: GetterOrValue<T>): T;
45
- export declare function getValueFromGetter<T>(this: any, input: GetterOrValue<T>, inputArgs?: any): T;
46
- export declare function getValueFromGetter<T, A>(this: any, input: GetterOrFactoryWithInput<T, A>, args?: A): T;
47
- export declare function getValueFromGetter<T extends string | number | object | symbol, A>(this: any, input: GetterOrValueWithInput<T, A>, args?: A): T;
44
+ export declare function getValueFromGetter<T>(this: unknown, input: GetterOrValue<T>): T;
45
+ export declare function getValueFromGetter<T>(this: unknown, input: GetterOrValue<T>, inputArgs?: unknown): T;
46
+ export declare function getValueFromGetter<T, A>(this: unknown, input: GetterOrFactoryWithInput<T, A>, args?: A): T;
47
+ export declare function getValueFromGetter<T extends string | number | object | symbol, A>(this: unknown, input: GetterOrValueWithInput<T, A>, args?: A): T;
48
48
  /**
49
49
  * Returns the input as a getter.
50
50
  *
@@ -8,7 +8,7 @@ exports.makeGetter = exports.asGetter = exports.getValueFromGetter = exports.isG
8
8
  * @returns
9
9
  */
10
10
  function isGetter(value) {
11
- return (typeof value === 'function');
11
+ return typeof value === 'function';
12
12
  }
13
13
  exports.isGetter = isGetter;
14
14
  function getValueFromGetter(input, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"getter.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.ts"],"names":[],"mappings":";;;AAsCA;;;;;GAKG;AACH,SAAgB,QAAQ,CAAU,KAAU;IAC1C,OAAO,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC;AACvC,CAAC;AAFD,4BAEC;AAaD,SAAgB,kBAAkB,CAAkB,KAAU,EAAE,IAAQ;IACtE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;KACpB;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gDAMC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAI,KAAuB;IACjD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,KAAkB,CAAC;KAC3B;SAAM;QACL,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;AACH,CAAC;AAND,4BAMC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAI,KAAQ;IACpC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;AACrB,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"getter.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.ts"],"names":[],"mappings":";;;AAqCA;;;;;GAKG;AACH,SAAgB,QAAQ,CAAc,KAAc;IAClD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAFD,4BAEC;AAaD,SAAgB,kBAAkB,CAAsB,KAAc,EAAE,IAAQ;IAC9E,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;KACpB;SAAM;QACL,OAAO,KAAU,CAAC;KACnB;AACH,CAAC;AAND,gDAMC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAI,KAAuB;IACjD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,KAAkB,CAAC;KAC3B;SAAM;QACL,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;AACH,CAAC;AAND,4BAMC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAI,KAAQ;IACpC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;AACrB,CAAC;AAFD,gCAEC"}
@@ -1,5 +1,5 @@
1
- import { MapFunction } from "../value/map";
2
- import { Getter } from "./getter";
1
+ import { MapFunction } from '../value/map';
2
+ import { Getter } from './getter';
3
3
  export declare type MapGetterFactory<I, O> = (input: Getter<I>) => Getter<O>;
4
4
  /**
5
5
  * Maps the input getter.
@@ -1,5 +1,5 @@
1
- import { PrimativeKey, ReadKeyFunction } from "./key";
2
- import { Maybe } from "./value/maybe";
1
+ import { PrimativeKey, ReadKeyFunction } from './key';
2
+ import { Maybe } from './value/maybe';
3
3
  export interface SeparateResult<T> {
4
4
  included: T[];
5
5
  excluded: T[];
@@ -29,7 +29,7 @@ exports.batch = batch;
29
29
  */
30
30
  function restoreOrderWithValues(orderValues, values, params) {
31
31
  const { readKey } = params;
32
- const orderKeys = orderValues.map(x => readKey(x));
32
+ const orderKeys = orderValues.map((x) => readKey(x));
33
33
  return restoreOrder(orderKeys, values, params);
34
34
  }
35
35
  exports.restoreOrderWithValues = restoreOrderWithValues;
@@ -46,7 +46,7 @@ function restoreOrder(orderKeys, values, { readKey, chooseRetainedValue = (value
46
46
  valuesMap.forEach((values, key) => {
47
47
  const index = orderKeysMap.get(key);
48
48
  function getValue() {
49
- return (values.length > 1) ? chooseRetainedValue(values) : values[0];
49
+ return values.length > 1 ? chooseRetainedValue(values) : values[0];
50
50
  }
51
51
  if (index != null) {
52
52
  restoredOrder[index] = getValue();
@@ -55,7 +55,7 @@ function restoreOrder(orderKeys, values, { readKey, chooseRetainedValue = (value
55
55
  newItems.push(getValue());
56
56
  }
57
57
  });
58
- const result = [...restoredOrder, ...newItems].filter(x => x !== undefined); // Allow null to be passed.
58
+ const result = [...restoredOrder, ...newItems].filter((x) => x !== undefined); // Allow null to be passed.
59
59
  return result;
60
60
  }
61
61
  exports.restoreOrder = restoreOrder;
@@ -92,7 +92,7 @@ function pairGroupValues(values, groupKeyFn) {
92
92
  const map = makeValuesGroupMap(values, groupKeyFn);
93
93
  const pairs = [];
94
94
  const unpaired = [];
95
- map.forEach((x, key) => {
95
+ map.forEach((x) => {
96
96
  if (x.length === 1) {
97
97
  unpaired.push(x[0]);
98
98
  }
@@ -114,7 +114,7 @@ exports.pairGroupValues = pairGroupValues;
114
114
  * @returns
115
115
  */
116
116
  function makeKeyPairs(values, keyFn) {
117
- return values.map(x => ([keyFn(x), x]));
117
+ return values.map((x) => [keyFn(x), x]);
118
118
  }
119
119
  exports.makeKeyPairs = makeKeyPairs;
120
120
  /**
@@ -126,7 +126,7 @@ exports.makeKeyPairs = makeKeyPairs;
126
126
  */
127
127
  function separateValues(values, checkInclusion) {
128
128
  const result = groupValues(values, (x) => {
129
- return (checkInclusion(x)) ? 'in' : 'out';
129
+ return checkInclusion(x) ? 'in' : 'out';
130
130
  });
131
131
  return {
132
132
  included: result.in || [],
@@ -150,7 +150,7 @@ function makeValuesGroupMap(values, groupKeyFn) {
150
150
  const map = new Map();
151
151
  values.forEach((x) => {
152
152
  const key = groupKeyFn(x);
153
- let array = map.get(key);
153
+ const array = map.get(key);
154
154
  if (array != null) {
155
155
  array.push(x);
156
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/grouping.ts"],"names":[],"mappings":"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"}
package/src/lib/hash.js CHANGED
@@ -8,13 +8,13 @@ function decodeHashedValues(hashedValues, decodeValues, hashFn) {
8
8
  }
9
9
  exports.decodeHashedValues = decodeHashedValues;
10
10
  function makeHashDecodeMap(decodeValues, hashFn) {
11
- const keyValuePairs = decodeValues.map(x => [hashFn(x), x]);
11
+ const keyValuePairs = decodeValues.map((x) => [hashFn(x), x]);
12
12
  const map = new Map(keyValuePairs);
13
13
  return map;
14
14
  }
15
15
  exports.makeHashDecodeMap = makeHashDecodeMap;
16
16
  function decodeHashedValuesWithDecodeMap(hashedValues, decodeMap) {
17
- const values = hashedValues.map(x => decodeMap.get(x));
17
+ const values = hashedValues.map((x) => decodeMap.get(x));
18
18
  return (0, array_1.filterMaybeValues)(values);
19
19
  }
20
20
  exports.decodeHashedValuesWithDecodeMap = decodeHashedValuesWithDecodeMap;
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/hash.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAM5C,SAAgB,kBAAkB,CAAC,YAAsB,EAAE,YAAsB,EAAE,MAAiC;IAClH,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,+BAA+B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AAHD,gDAGC;AAED,SAAgB,iBAAiB,CAAC,YAAsB,EAAE,MAAiC;IACzF,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC,CAAC;IAChF,MAAM,GAAG,GAAkB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAJD,8CAIC;AAED,SAAgB,+BAA+B,CAAC,YAAsB,EAAE,SAAwB;IAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAHD,0EAGC"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/hash.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAM5C,SAAgB,kBAAkB,CAAC,YAAsB,EAAE,YAAsB,EAAE,MAAiC;IAClH,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,+BAA+B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AAHD,gDAGC;AAED,SAAgB,iBAAiB,CAAC,YAAsB,EAAE,MAAiC;IACzF,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC,CAAC;IAClF,MAAM,GAAG,GAAkB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAJD,8CAIC;AAED,SAAgB,+BAA+B,CAAC,YAAsB,EAAE,SAAwB;IAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAHD,0EAGC"}
@@ -12,6 +12,7 @@ export * from './model';
12
12
  export * from './misc';
13
13
  export * from './promise';
14
14
  export * from './relation';
15
+ export * from './service';
15
16
  export * from './set';
16
17
  export * from './storage';
17
18
  export * from './tree';
package/src/lib/index.js CHANGED
@@ -15,6 +15,7 @@ tslib_1.__exportStar(require("./model"), exports);
15
15
  tslib_1.__exportStar(require("./misc"), exports);
16
16
  tslib_1.__exportStar(require("./promise"), exports);
17
17
  tslib_1.__exportStar(require("./relation"), exports);
18
+ tslib_1.__exportStar(require("./service"), exports);
18
19
  tslib_1.__exportStar(require("./set"), exports);
19
20
  tslib_1.__exportStar(require("./storage"), exports);
20
21
  tslib_1.__exportStar(require("./tree"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sDAA4B;AAC5B,iDAAuB;AACvB,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,qDAA2B;AAC3B,mDAAyB;AACzB,qDAA2B;AAC3B,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,qDAA2B;AAC3B,gDAAsB;AACtB,oDAA0B;AAC1B,iDAAuB;AACvB,kDAAwB;AACxB,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B;AAC3B,iDAAuB;AACvB,oDAA0B;AAC1B,gDAAsB;AACtB,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,iDAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sDAA4B;AAC5B,iDAAuB;AACvB,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,qDAA2B;AAC3B,mDAAyB;AACzB,qDAA2B;AAC3B,gDAAsB;AACtB,kDAAwB;AACxB,iDAAuB;AACvB,oDAA0B;AAC1B,qDAA2B;AAC3B,oDAA0B;AAC1B,gDAAsB;AACtB,oDAA0B;AAC1B,iDAAuB;AACvB,kDAAwB;AACxB,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B;AAC3B,iDAAuB;AACvB,oDAA0B;AAC1B,gDAAsB;AACtB,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,iDAAuB"}
@@ -1,4 +1,4 @@
1
- import { Maybe } from "../value/maybe";
1
+ import { Maybe } from '../value/maybe';
2
2
  export declare type IterableOrValue<T> = T | Iterable<T>;
3
3
  /**
4
4
  * Returns true if the input is an Iterable.
@@ -6,7 +6,7 @@ export declare type IterableOrValue<T> = T | Iterable<T>;
6
6
  * @param values
7
7
  * @returns
8
8
  */
9
- export declare function isIterable<T = any>(values: any): values is Iterable<T>;
9
+ export declare function isIterable<T = unknown>(values: unknown): values is Iterable<T>;
10
10
  /**
11
11
  * Returns the first value from the Iterable. If there are no values, returns undefined. Order is not guranteed.
12
12
  *
@@ -38,7 +38,7 @@ exports.firstValueFromIterable = firstValueFromIterable;
38
38
  * @returns
39
39
  */
40
40
  function takeValuesFromIterable(values, count) {
41
- let result = [];
41
+ const result = [];
42
42
  for (const value of values) {
43
43
  if (result.length < count) {
44
44
  result.push(value);
@@ -1 +1 @@
1
- {"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAKA,kBAAkB;AAClB;;;;;GAKG;AACH,SAAgB,UAAU,CAAU,MAAW;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,IAAI,MAAM,GAAQ,EAAE,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAGD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB;IAC7F,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YACtB,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAKA,kBAAkB;AAClB;;;;;GAKG;AACH,SAAgB,UAAU,CAAc,MAAe;IACrD,IAAI,MAAM,IAAK,MAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACtD,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB;IAC7F,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YACtB,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterate.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/iterate.ts"],"names":[],"mappings":";;;;AAIA;;GAEG;AACH,SAAsB,OAAO,CAAI,MAAW,EAAE,KAAmB;;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB;IACH,CAAC;CAAA;AAJD,0BAIC"}
1
+ {"version":3,"file":"iterate.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/iterate.ts"],"names":[],"mappings":";;;;AAGA;;GAEG;AACH,SAAsB,OAAO,CAAI,MAAW,EAAE,KAAmB;;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB;IACH,CAAC;CAAA;AAJD,0BAIC"}
package/src/lib/key.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Maybe } from "./value/maybe";
1
+ import { Maybe } from './value/maybe';
2
2
  /**
3
3
  * A key made up of either a string or number value.
4
4
  */
@@ -1,9 +1,17 @@
1
- import { Maybe } from "../value";
2
- export declare type MapFn<A, B> = (value: A) => B;
3
- export declare type MapStringFn<T> = MapFn<string, T>;
1
+ import { ArrayOrValue } from '../array';
2
+ import { Maybe } from '../value';
4
3
  /**
5
4
  *
6
5
  * @param maps
7
6
  * @returns
8
7
  */
9
8
  export declare function combineMaps<K, T>(...maps: Maybe<Map<K, T>>[]): Map<K, T>;
9
+ /**
10
+ * Sets the value to all of the input keys.
11
+ *
12
+ * @param map
13
+ * @param key
14
+ * @param value
15
+ * @returns
16
+ */
17
+ export declare function setKeysOnMap<K, T>(map: Map<K, T>, key: ArrayOrValue<K>, value: T): Map<K, T>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.combineMaps = void 0;
3
+ exports.setKeysOnMap = exports.combineMaps = void 0;
4
+ const array_1 = require("../array");
4
5
  /**
5
6
  *
6
7
  * @param maps
@@ -14,4 +15,17 @@ function combineMaps(...maps) {
14
15
  return result;
15
16
  }
16
17
  exports.combineMaps = combineMaps;
18
+ /**
19
+ * Sets the value to all of the input keys.
20
+ *
21
+ * @param map
22
+ * @param key
23
+ * @param value
24
+ * @returns
25
+ */
26
+ function setKeysOnMap(map, key, value) {
27
+ (0, array_1.asArray)(key).forEach((key) => map.set(key, value));
28
+ return map;
29
+ }
30
+ exports.setKeysOnMap = setKeysOnMap;
17
31
  //# sourceMappingURL=map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/map/map.ts"],"names":[],"mappings":";;;AAKA;;;;GAIG;AACH,SAAgB,WAAW,CAAO,GAAG,IAAwB;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kCAQC"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/map/map.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAGjD;;;;GAIG;AACH,SAAgB,WAAW,CAAO,GAAG,IAAwB;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kCAQC;AAED;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAO,GAAc,EAAE,GAAoB,EAAE,KAAQ;IAC/E,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAHD,oCAGC"}
@@ -1,4 +1,4 @@
1
- import { Maybe } from "../value/maybe";
1
+ import { Maybe } from '../value/maybe';
2
2
  export declare function joinHostAndPort(config: Maybe<{
3
3
  host: string;
4
4
  port: number | string;
@@ -1,3 +1,4 @@
1
1
  export * from './model';
2
2
  export * from './model.copy';
3
3
  export * from './model.conversion';
4
+ export * from './model.conversion.field';
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./model"), exports);
5
5
  tslib_1.__exportStar(require("./model.copy"), exports);
6
6
  tslib_1.__exportStar(require("./model.conversion"), exports);
7
+ tslib_1.__exportStar(require("./model.conversion.field"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,uDAA6B;AAC7B,6DAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,uDAA6B;AAC7B,6DAAmC;AACnC,mEAAyC"}
@@ -1,20 +1,24 @@
1
- import { GetterOrValue } from "../getter/getter";
2
- import { Maybe } from "../value/maybe";
3
- import { ApplyMapFunctionWithOptions, MapFunction } from "../value/map";
4
- export declare type ModelMapFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I, O>>;
5
- export declare type ModelFromFunction<V extends object, D extends object> = ModelMapFunction<D, V>;
6
- export declare type ModelToFunction<V extends object, D extends object> = ModelMapFunction<V, D>;
1
+ import { GetterOrValue } from '../getter/getter';
2
+ import { Maybe, MaybeSo } from '../value/maybe';
3
+ import { ApplyMapFunctionWithOptions, MapFunction } from '../value/map';
4
+ import { MergeReplace, ReplaceType } from '../type';
5
+ import { XOR } from 'ts-essentials';
6
+ /**
7
+ * Type used to declare a sister-type to the generic object.
8
+ */
9
+ export declare type MappedModelData<I extends object, R extends object> = MergeReplace<I, R>;
10
+ export declare type TypedMappedModelData<I extends object, O extends object, X = any> = ReplaceType<I, O, X>;
11
+ export declare type ModelMapFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I>>;
12
+ export declare type ModelMapFromFunction<V extends object, D extends object> = ModelMapFunction<D, V>;
13
+ export declare type ModelMapToFunction<V extends object, D extends object> = ModelMapFunction<V, D>;
7
14
  export interface ModelMapFunctions<V extends object, D extends object> {
8
- from: ModelFromFunction<V, D>;
9
- to: ModelToFunction<V, D>;
15
+ from: ModelMapFromFunction<V, D>;
16
+ to: ModelMapToFunction<V, D>;
10
17
  }
11
- export declare type ModelFieldsConversionConfig<I extends object> = {
12
- [K in keyof I]: ModelFieldConversionConfig;
13
- };
14
- export declare function makeModelMapFunctions<V extends object, D extends object>(fields: ModelFieldsConversionConfig<V>): ModelMapFunctions<V, D>;
15
- export declare type ModelConversionFieldTuple<I extends object> = [keyof I, ModelFieldMapFunction<any, any>];
18
+ export declare function makeModelMapFunctions<V extends object, D extends object>(fields: ModelFieldConversions<V, D>): ModelMapFunctions<V, D>;
19
+ export declare type ModelConversionFieldTuple<I extends object> = [keyof I, ModelFieldMapFunction<unknown, unknown>];
16
20
  export declare type ModelConversionFieldValuesConfig<I extends object> = ModelConversionFieldTuple<I>[];
17
- export interface ModelConversionOptions<I extends object, O extends object> {
21
+ export interface ModelConversionOptions<I extends object> {
18
22
  /**
19
23
  * Fields to include.
20
24
  */
@@ -24,40 +28,63 @@ export interface ModelConversionOptions<I extends object, O extends object> {
24
28
  */
25
29
  definedOnly?: boolean;
26
30
  }
27
- export declare type ModelConversionFieldValuesFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I, O>>;
31
+ export declare type ModelConversionFieldValuesFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I>>;
28
32
  export declare function makeModelConversionFieldValuesFunction<I extends object, O extends object>(fields: ModelConversionFieldValuesConfig<I>): ModelConversionFieldValuesFunction<I, O>;
29
- export interface ModelFieldConversionConfig<V = any, D = any> {
30
- from?: ModelFieldFromConfig<V, D>;
31
- to?: ModelFieldToConfig<V, D>;
32
- }
33
- export interface ModelFieldConvertConfig<I, O> {
34
- /**
35
- * Default value to use if the input value is null/undefined.
36
- */
37
- default?: GetterOrValue<O>;
38
- /**
39
- * Whether or not to pass through maybe values to the convert function. Must be explicitly set.
40
- *
41
- * If a default value is provided, this option is ignored.
42
- */
43
- convertMaybe?: boolean;
44
- /**
45
- * Conversion from I to O.
46
- */
47
- convert?: MapFunction<I, O>;
48
- }
49
- export interface ModelFieldFromConfig<V = any, D = any> extends ModelFieldConvertConfig<D, V> {
50
- }
51
- export interface ModelFieldToConfig<V = any, D = any> extends ModelFieldConvertConfig<V, D> {
52
- }
53
- export declare type ModelFieldMapFunction<I = any, O = any> = MapFunction<Maybe<I>, O>;
54
- export declare type ModelFieldFromFunction<V, D> = ModelFieldMapFunction<D, V>;
55
- export declare type ModelFieldToFunction<V, D> = ModelFieldMapFunction<V, D>;
56
- export interface ModelFieldMapFunctions<V = any, D = any> {
57
- from: ModelFieldFromFunction<V, D>;
58
- to: ModelFieldToFunction<V, D>;
59
- }
60
- export declare function makeModelFieldMapFunction<I, O>(inputConfig: Maybe<ModelFieldConvertConfig<I, O>>): ModelFieldMapFunction<I, O>;
61
- export declare const makeModelFieldFromFunction: typeof makeModelFieldMapFunction;
62
- export declare const makeModelFieldToFunction: typeof makeModelFieldMapFunction;
63
- export declare function makeModelFieldMapFunctions<V = any, D = any>(config: ModelFieldConversionConfig<V, D>): ModelFieldMapFunctions<V, D>;
33
+ /**
34
+ * An object map containing a ModelFieldMapFunctions entry for each key (required and optional) from the generic object.
35
+ */
36
+ export declare type ModelFieldConversions<V extends object, D extends object> = Required<{
37
+ [K in keyof V]: ModelFieldMapFunctions<V[K], TypedMappedModelData<V, D>[K]>;
38
+ }>;
39
+ /**
40
+ * An object map containing a ModelFieldMapFunctionsConfig for each key (required and optional) from the generic object.
41
+ */
42
+ export declare type ModelFieldConversionsConfig<V extends object, D extends object> = Required<{
43
+ [K in keyof V]: ModelFieldMapFunctionsConfig<V[K], TypedMappedModelData<V, D>[K]>;
44
+ }>;
45
+ export declare function modelFieldConversions<V extends object, D extends object>(config: ModelFieldConversionsConfig<V, D>): ModelFieldConversions<V, D>;
46
+ export declare type ModelFieldMapFunctions<I = unknown, O = unknown> = {
47
+ from: ModelFieldMapFromFunction<I, O>;
48
+ to: ModelFieldMapToFunction<I, O>;
49
+ };
50
+ export declare type ModelFieldMapFunctionsConfig<I = unknown, O = unknown> = {
51
+ from: ModelFieldMapFromConfig<I, O>;
52
+ to: ModelFieldMapToConfig<I, O>;
53
+ };
54
+ export declare function modelFieldMapFunctions<I = unknown, O = unknown>(config: ModelFieldMapFunctionsConfig<I, O>): ModelFieldMapFunctions<I, O>;
55
+ /**
56
+ * ModelFieldMapFunction configuration that can convert a MaybeValue to the target value.
57
+ */
58
+ export declare type ModelFieldMapMaybeTooConfig<I, O> = {
59
+ convertMaybe: ModelFieldMapConvertMaybeFunction<I, O>;
60
+ };
61
+ export declare type ModelFieldMapMaybeWithDefaultValueConfig<I, O> = {
62
+ defaultInput: GetterOrValue<I>;
63
+ convert: ModelFieldMapConvertFunction<I, O>;
64
+ };
65
+ export declare type ModelFieldMapMaybeWithDefaultDataConfig<I, O> = {
66
+ convert: ModelFieldMapConvertFunction<I, O>;
67
+ default: GetterOrValue<O>;
68
+ };
69
+ export declare type ModelFieldMapConvertMaybeFunction<I, O> = MapFunction<Maybe<I>, O>;
70
+ export declare type ModelFieldMapConvertFunction<I, O> = MapFunction<MaybeSo<I>, O>;
71
+ /**
72
+ * ModelFieldMapFunction configuration that handles the MaybeNot case with undefined.
73
+ */
74
+ export declare type ModelFieldMapMaybeWithDefaultConfig<I, O> = ModelFieldMapMaybeWithDefaultValueConfig<I, O> | ModelFieldMapMaybeWithDefaultDataConfig<I, O>;
75
+ /**
76
+ * Configuration is either a ModelFieldMapMaybeTooConfig or a ModelFieldMapMaybeWithDefaultConfig
77
+ */
78
+ export declare type ModelFieldMapConfig<I, O> = XOR<ModelFieldMapMaybeTooConfig<I, O>, ModelFieldMapMaybeWithDefaultConfig<I, O>>;
79
+ export declare type ModelFieldMapFromConfig<I = unknown, O = unknown> = ModelFieldMapConfig<O, I>;
80
+ export declare type ModelFieldMapToConfig<I = unknown, O = unknown> = ModelFieldMapConfig<I, O>;
81
+ export declare type ModelFieldMapFunction<I = unknown, O = unknown> = MapFunction<Maybe<I>, O>;
82
+ export declare type ModelFieldMapFromFunction<I, O> = ModelFieldMapFunction<O, I>;
83
+ export declare type ModelFieldMapToFunction<I, O> = ModelFieldMapFunction<I, O>;
84
+ /**
85
+ * Creates a ModelFieldMapFunction.
86
+ *
87
+ * @param config
88
+ * @returns
89
+ */
90
+ export declare function modelFieldMapFunction<I, O>(config: ModelFieldMapConfig<I, O>): ModelFieldMapFunction<I, O>;
@@ -0,0 +1,8 @@
1
+ import { ModelFieldMapFunctionsConfig } from './model.conversion';
2
+ /**
3
+ * Field conversion that copies the same value across.
4
+ *
5
+ * @param defaultValue
6
+ * @returns
7
+ */
8
+ export declare function copyField<T>(defaultOutput: T): ModelFieldMapFunctionsConfig<T, T>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyField = void 0;
4
+ /**
5
+ * Field conversion that copies the same value across.
6
+ *
7
+ * @param defaultValue
8
+ * @returns
9
+ */
10
+ function copyField(defaultOutput) {
11
+ return {
12
+ from: {
13
+ default: defaultOutput,
14
+ convert: (x) => x
15
+ },
16
+ to: {
17
+ default: defaultOutput,
18
+ convert: (x) => x
19
+ }
20
+ };
21
+ }
22
+ exports.copyField = copyField;
23
+ //# sourceMappingURL=model.conversion.field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.conversion.field.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.conversion.field.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,aAAgB;IAC3C,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC;SACrB;QACD,EAAE,EAAE;YACF,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC;SACrB;KACF,CAAC;AACJ,CAAC;AAXD,8BAWC"}
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
+ /*eslint @typescript-eslint/no-explicit-any:"off"*/
3
+ // any is used with intent here, as there isn't enough typing information available when going from a parent of fields to the types of each child.
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeModelFieldMapFunctions = exports.makeModelFieldToFunction = exports.makeModelFieldFromFunction = exports.makeModelFieldMapFunction = exports.makeModelConversionFieldValuesFunction = exports.makeModelMapFunctions = void 0;
5
+ exports.modelFieldMapFunction = exports.modelFieldMapFunctions = exports.modelFieldConversions = exports.makeModelConversionFieldValuesFunction = exports.makeModelMapFunctions = void 0;
4
6
  const getter_1 = require("../getter/getter");
5
7
  const object_1 = require("../object/object");
8
+ const maybe_1 = require("../value/maybe");
9
+ const object_2 = require("../object");
6
10
  function makeModelMapFunctions(fields) {
7
11
  const keys = (0, object_1.filterKeyValueTuples)(fields);
8
- const conversionsByKey = keys.map(([key, field]) => [key, makeModelFieldMapFunctions(field)]);
9
- const fromConversions = conversionsByKey.map(([key, configs]) => ([key, configs.from]));
10
- const toConversions = conversionsByKey.map(([key, configs]) => ([key, configs.to]));
12
+ const conversionsByKey = keys.map(([key, field]) => [key, field]);
13
+ const fromConversions = conversionsByKey.map(([key, configs]) => [key, configs.from]);
14
+ const toConversions = conversionsByKey.map(([key, configs]) => [key, configs.to]);
11
15
  const from = makeModelConversionFieldValuesFunction(fromConversions);
12
16
  const to = makeModelConversionFieldValuesFunction(toConversions);
13
17
  return {
@@ -17,50 +21,61 @@ function makeModelMapFunctions(fields) {
17
21
  }
18
22
  exports.makeModelMapFunctions = makeModelMapFunctions;
19
23
  function makeModelConversionFieldValuesFunction(fields) {
20
- return (input, target, options) => {
21
- target = target !== null && target !== void 0 ? target : {};
24
+ return (input, inputTarget, options) => {
25
+ const target = (inputTarget !== null && inputTarget !== void 0 ? inputTarget : {});
22
26
  if (input) {
23
27
  let targetFields = fields;
24
28
  // if options are provided, filter down.
25
29
  if (options) {
26
- const fieldsToConvert = new Set((0, object_1.findPOJOKeys)(input, {
30
+ const fieldsToMap = new Set((0, object_1.findPOJOKeys)(input, {
27
31
  keysFilter: options.fields,
28
- valueFilter: (options.definedOnly === false) ? object_1.KeyValueTypleValueFilter.NONE : object_1.KeyValueTypleValueFilter.UNDEFINED
32
+ valueFilter: options.definedOnly === false ? object_1.KeyValueTypleValueFilter.NONE : object_1.KeyValueTypleValueFilter.UNDEFINED
29
33
  }));
30
- targetFields = fields.filter(x => fieldsToConvert.has(x[0]));
34
+ targetFields = fields.filter((x) => fieldsToMap.has(x[0]));
31
35
  }
32
- targetFields.forEach(([key, convert]) => target[key] = convert(input[key]));
36
+ targetFields.forEach(([key, convert]) => (target[key] = convert(input[key])));
33
37
  }
34
38
  return target;
35
39
  };
36
40
  }
37
41
  exports.makeModelConversionFieldValuesFunction = makeModelConversionFieldValuesFunction;
38
- function makeModelFieldMapFunction(inputConfig) {
39
- const config = inputConfig !== null && inputConfig !== void 0 ? inputConfig : {};
40
- const { convertMaybe, convert = (x) => x, default: defaultValue } = config;
41
- const getDefaultValue = (0, getter_1.asGetter)(defaultValue);
42
+ function modelFieldConversions(config) {
43
+ return (0, object_2.mapObjectMap)(config, (x) => modelFieldMapFunctions(x));
44
+ }
45
+ exports.modelFieldConversions = modelFieldConversions;
46
+ function modelFieldMapFunctions(config) {
47
+ return {
48
+ from: modelFieldMapFunction(config.from),
49
+ to: modelFieldMapFunction(config.to)
50
+ };
51
+ }
52
+ exports.modelFieldMapFunctions = modelFieldMapFunctions;
53
+ /**
54
+ * Creates a ModelFieldMapFunction.
55
+ *
56
+ * @param config
57
+ * @returns
58
+ */
59
+ function modelFieldMapFunction(config) {
60
+ const convert = config.convert;
61
+ const convertMaybe = config.convertMaybe;
62
+ const defaultOutput = config.default;
63
+ const defaultInput = config.defaultInput;
64
+ const getDefaultOutput = (0, getter_1.asGetter)(defaultOutput);
65
+ const getDefaultInput = (0, getter_1.asGetter)(defaultInput);
42
66
  return (input) => {
43
- if (input == null) {
67
+ if ((0, maybe_1.isMaybeSo)(input)) {
68
+ return convert(input);
69
+ }
70
+ else {
44
71
  if (convertMaybe) {
45
- return convert(input);
72
+ return convertMaybe(input !== null && input !== void 0 ? input : getDefaultInput());
46
73
  }
47
74
  else {
48
- return getDefaultValue();
75
+ return getDefaultOutput();
49
76
  }
50
77
  }
51
- else {
52
- return convert(input);
53
- }
54
- };
55
- }
56
- exports.makeModelFieldMapFunction = makeModelFieldMapFunction;
57
- exports.makeModelFieldFromFunction = makeModelFieldMapFunction;
58
- exports.makeModelFieldToFunction = makeModelFieldMapFunction;
59
- function makeModelFieldMapFunctions(config) {
60
- return {
61
- from: makeModelFieldMapFunction(config.from),
62
- to: makeModelFieldMapFunction(config.to),
63
78
  };
64
79
  }
65
- exports.makeModelFieldMapFunctions = makeModelFieldMapFunctions;
80
+ exports.modelFieldMapFunction = modelFieldMapFunction;
66
81
  //# sourceMappingURL=model.conversion.js.map