@dereekb/util 1.2.0 → 3.0.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 (236) hide show
  1. package/CHANGELOG.md +54 -9
  2. package/README.md +1 -1
  3. package/package.json +8 -5
  4. package/src/index.js +2 -2
  5. package/src/index.js.map +1 -1
  6. package/src/lib/array/array.boolean.d.ts +4 -2
  7. package/src/lib/array/array.boolean.js +11 -1
  8. package/src/lib/array/array.boolean.js.map +1 -1
  9. package/src/lib/array/array.d.ts +24 -2
  10. package/src/lib/array/array.index.d.ts +1 -1
  11. package/src/lib/array/array.js +37 -2
  12. package/src/lib/array/array.js.map +1 -1
  13. package/src/lib/array/array.limit.d.ts +1 -1
  14. package/src/lib/array/array.make.d.ts +1 -1
  15. package/src/lib/array/array.make.js +2 -2
  16. package/src/lib/array/array.make.js.map +1 -1
  17. package/src/lib/array/array.map.d.ts +1 -1
  18. package/src/lib/array/array.set.d.ts +2 -16
  19. package/src/lib/array/array.set.js +21 -55
  20. package/src/lib/array/array.set.js.map +1 -1
  21. package/src/lib/array/array.string.d.ts +7 -5
  22. package/src/lib/array/array.string.js +14 -4
  23. package/src/lib/array/array.string.js.map +1 -1
  24. package/src/lib/array/array.unique.d.ts +1 -1
  25. package/src/lib/array/array.value.d.ts +15 -1
  26. package/src/lib/array/array.value.js +21 -1
  27. package/src/lib/array/array.value.js.map +1 -1
  28. package/src/lib/array/index.js +12 -12
  29. package/src/lib/array/index.js.map +1 -1
  30. package/src/lib/assertion/index.js +5 -5
  31. package/src/lib/assertion/index.js.map +1 -1
  32. package/src/lib/auth/auth.role.claims.d.ts +98 -0
  33. package/src/lib/auth/auth.role.claims.js +93 -0
  34. package/src/lib/auth/auth.role.claims.js.map +1 -0
  35. package/src/lib/auth/auth.role.d.ts +22 -0
  36. package/src/lib/auth/auth.role.js +17 -0
  37. package/src/lib/auth/auth.role.js.map +1 -0
  38. package/src/lib/auth/index.d.ts +2 -0
  39. package/src/lib/auth/index.js +6 -0
  40. package/src/lib/auth/index.js.map +1 -0
  41. package/src/lib/contact/index.js +3 -3
  42. package/src/lib/contact/index.js.map +1 -1
  43. package/src/lib/date/date.d.ts +1 -1
  44. package/src/lib/date/date.time.d.ts +4 -2
  45. package/src/lib/date/date.time.js +13 -1
  46. package/src/lib/date/date.time.js.map +1 -1
  47. package/src/lib/date/index.js +2 -2
  48. package/src/lib/date/index.js.map +1 -1
  49. package/src/lib/error/error.d.ts +6 -1
  50. package/src/lib/error/error.js +8 -1
  51. package/src/lib/error/error.js.map +1 -1
  52. package/src/lib/error/error.server.d.ts +5 -12
  53. package/src/lib/error/error.server.js.map +1 -1
  54. package/src/lib/error/index.js +2 -2
  55. package/src/lib/error/index.js.map +1 -1
  56. package/src/lib/filter/index.js +1 -1
  57. package/src/lib/filter/index.js.map +1 -1
  58. package/src/lib/function/function.forward.d.ts +9 -0
  59. package/src/lib/function/function.forward.js +18 -0
  60. package/src/lib/function/function.forward.js.map +1 -0
  61. package/src/lib/function/index.d.ts +1 -0
  62. package/src/lib/function/index.js +5 -0
  63. package/src/lib/function/index.js.map +1 -0
  64. package/src/lib/getter/getter.cache.d.ts +38 -0
  65. package/src/lib/getter/getter.cache.js +23 -0
  66. package/src/lib/getter/getter.cache.js.map +1 -0
  67. package/src/lib/getter/getter.d.ts +61 -0
  68. package/src/lib/getter/getter.js +48 -0
  69. package/src/lib/getter/getter.js.map +1 -0
  70. package/src/lib/getter/getter.map.d.ts +15 -0
  71. package/src/lib/getter/getter.map.js +24 -0
  72. package/src/lib/getter/getter.map.js.map +1 -0
  73. package/src/lib/getter/index.d.ts +3 -0
  74. package/src/lib/getter/index.js +7 -0
  75. package/src/lib/getter/index.js.map +1 -0
  76. package/src/lib/grouping.d.ts +4 -4
  77. package/src/lib/index.d.ts +9 -5
  78. package/src/lib/index.js +31 -28
  79. package/src/lib/index.js.map +1 -1
  80. package/src/lib/iterable/index.d.ts +2 -0
  81. package/src/lib/iterable/index.js +6 -0
  82. package/src/lib/iterable/index.js.map +1 -0
  83. package/src/lib/iterable/iterable.d.ts +53 -0
  84. package/src/lib/iterable/iterable.js +113 -0
  85. package/src/lib/iterable/iterable.js.map +1 -0
  86. package/src/lib/iterable/iterable.map.d.ts +8 -0
  87. package/src/lib/iterable/iterable.map.js +18 -0
  88. package/src/lib/iterable/iterable.map.js.map +1 -0
  89. package/src/lib/iterate.js +1 -1
  90. package/src/lib/key.d.ts +1 -1
  91. package/src/lib/map/index.d.ts +2 -0
  92. package/src/lib/map/index.js +6 -0
  93. package/src/lib/map/index.js.map +1 -0
  94. package/src/lib/map/map.d.ts +9 -0
  95. package/src/lib/map/map.intersection.d.ts +15 -0
  96. package/src/lib/map/map.intersection.js +24 -0
  97. package/src/lib/map/map.intersection.js.map +1 -0
  98. package/src/lib/map/map.js +17 -0
  99. package/src/lib/map/map.js.map +1 -0
  100. package/src/lib/misc/host.d.ts +5 -0
  101. package/src/lib/misc/host.js +13 -0
  102. package/src/lib/misc/host.js.map +1 -0
  103. package/src/lib/misc/index.d.ts +1 -0
  104. package/src/lib/misc/index.js +5 -0
  105. package/src/lib/misc/index.js.map +1 -0
  106. package/src/lib/model/index.d.ts +3 -0
  107. package/src/lib/model/index.js +7 -0
  108. package/src/lib/model/index.js.map +1 -0
  109. package/src/lib/model/model.conversion.d.ts +63 -0
  110. package/src/lib/model/model.conversion.js +66 -0
  111. package/src/lib/model/model.conversion.js.map +1 -0
  112. package/src/lib/model/model.copy.d.ts +16 -0
  113. package/src/lib/model/model.copy.js +20 -0
  114. package/src/lib/model/model.copy.js.map +1 -0
  115. package/src/lib/{model.d.ts → model/model.d.ts} +2 -2
  116. package/src/lib/{model.js → model/model.js} +3 -3
  117. package/src/lib/model/model.js.map +1 -0
  118. package/src/lib/number/factory.d.ts +22 -0
  119. package/src/lib/number/factory.js +22 -0
  120. package/src/lib/number/factory.js.map +1 -0
  121. package/src/lib/number/index.d.ts +3 -0
  122. package/src/lib/number/index.js +7 -0
  123. package/src/lib/number/index.js.map +1 -0
  124. package/src/lib/number/random.d.ts +13 -0
  125. package/src/lib/number/random.js +22 -0
  126. package/src/lib/number/random.js.map +1 -0
  127. package/src/lib/{number.d.ts → number/round.d.ts} +0 -13
  128. package/src/lib/{number.js → number/round.js} +2 -20
  129. package/src/lib/number/round.js.map +1 -0
  130. package/src/lib/object/index.d.ts +1 -0
  131. package/src/lib/object/index.js +4 -3
  132. package/src/lib/object/index.js.map +1 -1
  133. package/src/lib/object/object.d.ts +69 -8
  134. package/src/lib/object/object.equal.d.ts +1 -1
  135. package/src/lib/object/object.equal.js +3 -3
  136. package/src/lib/object/object.equal.js.map +1 -1
  137. package/src/lib/object/object.js +117 -11
  138. package/src/lib/object/object.js.map +1 -1
  139. package/src/lib/object/object.map.d.ts +35 -0
  140. package/src/lib/object/object.map.js +40 -0
  141. package/src/lib/object/object.map.js.map +1 -0
  142. package/src/lib/page/index.js +3 -3
  143. package/src/lib/page/index.js.map +1 -1
  144. package/src/lib/page/page.d.ts +1 -1
  145. package/src/lib/page/page.filter.js +1 -1
  146. package/src/lib/promise/index.d.ts +3 -0
  147. package/src/lib/promise/index.js +7 -4
  148. package/src/lib/promise/index.js.map +1 -1
  149. package/src/lib/promise/is.d.ts +7 -0
  150. package/src/lib/promise/is.js +15 -0
  151. package/src/lib/promise/is.js.map +1 -0
  152. package/src/lib/promise/map.d.ts +10 -0
  153. package/src/lib/promise/map.js +14 -0
  154. package/src/lib/promise/map.js.map +1 -0
  155. package/src/lib/promise/promise.d.ts +13 -1
  156. package/src/lib/promise/promise.js +26 -8
  157. package/src/lib/promise/promise.js.map +1 -1
  158. package/src/lib/promise/promise.loop.d.ts +18 -3
  159. package/src/lib/promise/promise.loop.js +18 -2
  160. package/src/lib/promise/promise.loop.js.map +1 -1
  161. package/src/lib/promise/promise.ref.d.ts +10 -0
  162. package/src/lib/promise/promise.ref.js +19 -0
  163. package/src/lib/promise/promise.ref.js.map +1 -0
  164. package/src/lib/promise/wait.js +2 -2
  165. package/src/lib/promise/wait.js.map +1 -1
  166. package/src/lib/relation/index.js +1 -1
  167. package/src/lib/relation/index.js.map +1 -1
  168. package/src/lib/relation/relation.js +2 -2
  169. package/src/lib/set/index.d.ts +4 -0
  170. package/src/lib/set/index.js +8 -0
  171. package/src/lib/set/index.js.map +1 -0
  172. package/src/lib/set/set.allowed.d.ts +23 -0
  173. package/src/lib/set/set.allowed.js +29 -0
  174. package/src/lib/set/set.allowed.js.map +1 -0
  175. package/src/lib/set/set.d.ts +53 -0
  176. package/src/lib/{set.hashset.d.ts → set/set.hashset.d.ts} +2 -2
  177. package/src/lib/{set.hashset.js → set/set.hashset.js} +0 -0
  178. package/src/lib/set/set.hashset.js.map +1 -0
  179. package/src/lib/set/set.js +114 -0
  180. package/src/lib/set/set.js.map +1 -0
  181. package/src/lib/set/set.maybe.d.ts +11 -0
  182. package/src/lib/set/set.maybe.js +22 -0
  183. package/src/lib/set/set.maybe.js.map +1 -0
  184. package/src/lib/sort.d.ts +1 -4
  185. package/src/lib/sort.js +3 -8
  186. package/src/lib/sort.js.map +1 -1
  187. package/src/lib/storage/index.js +4 -4
  188. package/src/lib/storage/index.js.map +1 -1
  189. package/src/lib/storage/storage.memory.d.ts +1 -1
  190. package/src/lib/storage/storage.object.d.ts +1 -1
  191. package/src/lib/string.d.ts +9 -2
  192. package/src/lib/string.js +11 -1
  193. package/src/lib/string.js.map +1 -1
  194. package/src/lib/tree/index.js +4 -4
  195. package/src/lib/tree/index.js.map +1 -1
  196. package/src/lib/tree/tree.expand.d.ts +1 -1
  197. package/src/lib/type.d.ts +17 -1
  198. package/src/lib/value/equal.d.ts +41 -0
  199. package/src/lib/value/equal.js +56 -0
  200. package/src/lib/value/equal.js.map +1 -0
  201. package/src/lib/value/index.d.ts +4 -0
  202. package/src/lib/value/index.js +8 -0
  203. package/src/lib/value/index.js.map +1 -0
  204. package/src/lib/value/map.d.ts +13 -0
  205. package/src/lib/{map.js → value/map.js} +0 -0
  206. package/src/lib/value/map.js.map +1 -0
  207. package/src/lib/{value.d.ts → value/maybe.d.ts} +45 -2
  208. package/src/lib/value/maybe.js +78 -0
  209. package/src/lib/value/maybe.js.map +1 -0
  210. package/src/lib/value/modifier.d.ts +58 -0
  211. package/src/lib/value/modifier.js +69 -0
  212. package/src/lib/value/modifier.js.map +1 -0
  213. package/src/test/index.d.ts +1 -0
  214. package/src/test/index.js +3 -2
  215. package/src/test/index.js.map +1 -1
  216. package/src/test/jest.d.ts +21 -1
  217. package/src/test/jest.function.d.ts +9 -0
  218. package/src/test/jest.function.js +14 -0
  219. package/src/test/jest.function.js.map +1 -0
  220. package/src/test/jest.js +64 -36
  221. package/src/test/jest.js.map +1 -1
  222. package/src/test/jest.wrap.js +5 -5
  223. package/src/test/jest.wrap.js.map +1 -1
  224. package/src/lib/getter.d.ts +0 -26
  225. package/src/lib/getter.js +0 -13
  226. package/src/lib/getter.js.map +0 -1
  227. package/src/lib/map.d.ts +0 -2
  228. package/src/lib/map.js.map +0 -1
  229. package/src/lib/model.js.map +0 -1
  230. package/src/lib/number.js.map +0 -1
  231. package/src/lib/set.d.ts +0 -0
  232. package/src/lib/set.hashset.js.map +0 -1
  233. package/src/lib/set.js +0 -2
  234. package/src/lib/set.js.map +0 -1
  235. package/src/lib/value.js +0 -28
  236. package/src/lib/value.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ import { FactoryWithInput, Getter } from "./getter";
2
+ /**
3
+ * Getter that returns a cached value.
4
+ */
5
+ export declare type CachedGetter<T> = Getter<T> & {
6
+ /**
7
+ * Sets the value in the cache.
8
+ *
9
+ * @param value
10
+ */
11
+ set(value: T): void;
12
+ /**
13
+ * Resets/clears the cache.
14
+ */
15
+ reset(): void;
16
+ /**
17
+ * Re-initializes the getter and reloads the value from the source.
18
+ */
19
+ init(): void;
20
+ };
21
+ export declare type CachedFactoryWithInput<T, A = any> = CachedGetter<T> & FactoryWithInput<T, A> & {
22
+ /**
23
+ * Re-initializes the cache using the factory function.
24
+ *
25
+ * @param input
26
+ */
27
+ init(input?: A): void;
28
+ };
29
+ /**
30
+ * Creates a CachedGetter from the input Getter.
31
+ *
32
+ * The value will be retrieved once, then cached permenantly by this function.
33
+ *
34
+ * @param getter
35
+ * @returns
36
+ */
37
+ export declare function cachedGetter<T>(getter: Getter<T>): CachedFactoryWithInput<T>;
38
+ export declare function cachedGetter<T, A = any>(factory: FactoryWithInput<T, A>): CachedFactoryWithInput<T, A>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cachedGetter = void 0;
4
+ function cachedGetter(factory) {
5
+ let loaded;
6
+ const init = (input) => {
7
+ loaded = {
8
+ value: factory(input)
9
+ };
10
+ };
11
+ const result = ((input) => {
12
+ if (!loaded) {
13
+ init(input);
14
+ }
15
+ return loaded.value;
16
+ });
17
+ result.set = (value) => loaded = { value };
18
+ result.reset = () => loaded = undefined;
19
+ result.init = init;
20
+ return result;
21
+ }
22
+ exports.cachedGetter = cachedGetter;
23
+ //# sourceMappingURL=getter.cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getter.cache.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.cache.ts"],"names":[],"mappings":";;;AA8CA,SAAgB,YAAY,CAAa,OAA+B;IACtE,IAAI,MAA2B,CAAC;IAEhC,MAAM,IAAI,GAAG,CAAC,KAAS,EAAE,EAAE;QACzB,MAAM,GAAG;YACP,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;SACtB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,CAAC,KAAS,EAAE,EAAE;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,CAAC;SACb;QAED,OAAO,MAAO,CAAC,KAAK,CAAC;IACvB,CAAC,CAAiC,CAAC;IAEnC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAQ,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC;IAC9C,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,oCAsBC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Function that returns a value.
3
+ */
4
+ export declare type Getter<T> = () => T;
5
+ /**
6
+ * Getter with the design of returning a new value each time.
7
+ */
8
+ export declare type Factory<T> = Getter<T>;
9
+ /**
10
+ * Function that returns a value with an optional single argument.
11
+ */
12
+ export declare type FactoryWithInput<T, A> = (args?: A) => T;
13
+ /**
14
+ * Function that returns a value with a single argument.
15
+ */
16
+ export declare type FactoryWithRequiredInput<T, A> = (args: A) => T;
17
+ /**
18
+ * Either a Getter, or an instance of the item.
19
+ */
20
+ export declare type GetterOrValue<T> = T | Getter<T>;
21
+ /**
22
+ * Either a GetterWithInput, or a Getter.
23
+ */
24
+ export declare type GetterOrFactoryWithInput<T, A> = Getter<T> | FactoryWithInput<T, A>;
25
+ /**
26
+ * Either a GetterOrValue, or a FactoryWithInput.
27
+ */
28
+ export declare type GetterOrValueWithInput<T extends string | number | object | symbol, A> = GetterOrValue<T> | FactoryWithInput<T, A>;
29
+ export declare type StringOrGetter = GetterOrValue<string>;
30
+ /**
31
+ * Returns true if the input object looks like a Getter (is a function).
32
+ *
33
+ * @param value
34
+ * @returns
35
+ */
36
+ export declare function isGetter<T = any>(value: any): value is Getter<T>;
37
+ /**
38
+ * If the input is a function, it is executed. Otherwise, the value is returned.
39
+ *
40
+ * @param input
41
+ * @returns
42
+ */
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;
48
+ /**
49
+ * Returns the input as a getter.
50
+ *
51
+ * @param input
52
+ * @returns
53
+ */
54
+ export declare function asGetter<T>(input: GetterOrValue<T>): Getter<T>;
55
+ /**
56
+ * Wraps the input and returns a Getter for that value.
57
+ *
58
+ * @param input
59
+ * @returns
60
+ */
61
+ export declare function makeGetter<T>(input: T): Getter<T>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeGetter = exports.asGetter = exports.getValueFromGetter = exports.isGetter = void 0;
4
+ /**
5
+ * Returns true if the input object looks like a Getter (is a function).
6
+ *
7
+ * @param value
8
+ * @returns
9
+ */
10
+ function isGetter(value) {
11
+ return (typeof value === 'function');
12
+ }
13
+ exports.isGetter = isGetter;
14
+ function getValueFromGetter(input, args) {
15
+ if (typeof input === 'function') {
16
+ return input(args);
17
+ }
18
+ else {
19
+ return input;
20
+ }
21
+ }
22
+ exports.getValueFromGetter = getValueFromGetter;
23
+ /**
24
+ * Returns the input as a getter.
25
+ *
26
+ * @param input
27
+ * @returns
28
+ */
29
+ function asGetter(input) {
30
+ if (typeof input === 'function') {
31
+ return input;
32
+ }
33
+ else {
34
+ return makeGetter(input);
35
+ }
36
+ }
37
+ exports.asGetter = asGetter;
38
+ /**
39
+ * Wraps the input and returns a Getter for that value.
40
+ *
41
+ * @param input
42
+ * @returns
43
+ */
44
+ function makeGetter(input) {
45
+ return () => input;
46
+ }
47
+ exports.makeGetter = makeGetter;
48
+ //# sourceMappingURL=getter.js.map
@@ -0,0 +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"}
@@ -0,0 +1,15 @@
1
+ import { MapFunction } from "../value/map";
2
+ import { Getter } from "./getter";
3
+ export declare type MapGetterFactory<I, O> = (input: Getter<I>) => Getter<O>;
4
+ /**
5
+ * Maps the input getter.
6
+ *
7
+ * @param input
8
+ */
9
+ export declare function mapGetter<I, O>(input: Getter<I>, mapFn: MapFunction<I, O>): Getter<O>;
10
+ /**
11
+ * Creates a MapGetter
12
+ *
13
+ * @param input
14
+ */
15
+ export declare function mapGetterFactory<I, O>(mapFn: MapFunction<I, O>): MapGetterFactory<I, O>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapGetterFactory = exports.mapGetter = void 0;
4
+ /**
5
+ * Maps the input getter.
6
+ *
7
+ * @param input
8
+ */
9
+ function mapGetter(input, mapFn) {
10
+ return mapGetterFactory(mapFn)(input);
11
+ }
12
+ exports.mapGetter = mapGetter;
13
+ /**
14
+ * Creates a MapGetter
15
+ *
16
+ * @param input
17
+ */
18
+ function mapGetterFactory(mapFn) {
19
+ return (getter) => {
20
+ return () => mapFn(getter());
21
+ };
22
+ }
23
+ exports.mapGetterFactory = mapGetterFactory;
24
+ //# sourceMappingURL=getter.map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getter.map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/getter.map.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACH,SAAgB,SAAS,CAAO,KAAgB,EAAE,KAAwB;IACxE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAO,KAAwB;IAC7D,OAAO,CAAC,MAAiB,EAAE,EAAE;QAC3B,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAJD,4CAIC"}
@@ -0,0 +1,3 @@
1
+ export * from './getter';
2
+ export * from './getter.cache';
3
+ export * from './getter.map';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./getter"), exports);
5
+ tslib_1.__exportStar(require("./getter.cache"), exports);
6
+ tslib_1.__exportStar(require("./getter.map"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,yDAA+B;AAC/B,uDAA6B"}
@@ -1,5 +1,5 @@
1
1
  import { PrimativeKey, ReadKeyFunction } from "./key";
2
- import { Maybe } from "./value";
2
+ import { Maybe } from "./value/maybe";
3
3
  export interface SeparateResult<T> {
4
4
  included: T[];
5
5
  excluded: T[];
@@ -7,8 +7,8 @@ export interface SeparateResult<T> {
7
7
  export interface GroupingResult<T> {
8
8
  [key: string]: T[];
9
9
  }
10
- export declare type KeyedGroupingResult<T, O, K extends keyof O = keyof O> = {
11
- [k in K]: T[];
10
+ export declare type KeyedGroupingResult<T, O> = {
11
+ [K in keyof O]: T[];
12
12
  };
13
13
  export interface PairsGroupingResult<T> {
14
14
  pairs: T[][];
@@ -86,7 +86,7 @@ export declare function separateValues<T>(values: T[], checkInclusion: (x: T) =>
86
86
  * @param values
87
87
  * @param groupKeyFn
88
88
  */
89
- export declare function groupValues<T, R, K extends PrimativeKey & keyof R>(values: T[], groupKeyFn: ReadKeyFunction<T, K>): KeyedGroupingResult<T, R, K>;
89
+ export declare function groupValues<T, R, K extends PrimativeKey & keyof R>(values: T[], groupKeyFn: ReadKeyFunction<T, K>): KeyedGroupingResult<T, R>;
90
90
  export declare function groupValues<T, K extends PrimativeKey = PrimativeKey>(values: T[], groupKeyFn: ReadKeyFunction<T, K>): GroupingResult<T>;
91
91
  /**
92
92
  * Reads keys from the values in the arrays, and groups them together into a Map.
@@ -1,27 +1,31 @@
1
1
  export * from './array';
2
2
  export * from './assertion';
3
+ export * from './auth';
3
4
  export * from './contact';
4
5
  export * from './error';
5
6
  export * from './filter';
7
+ export * from './function';
8
+ export * from './getter';
9
+ export * from './iterable';
10
+ export * from './map';
11
+ export * from './model';
12
+ export * from './misc';
6
13
  export * from './promise';
7
14
  export * from './relation';
15
+ export * from './set';
8
16
  export * from './storage';
9
17
  export * from './tree';
18
+ export * from './value';
10
19
  export * from './boolean';
11
20
  export * from './date';
12
21
  export * from './lifecycle';
13
- export * from './getter';
14
22
  export * from './grouping';
15
23
  export * from './hash';
16
24
  export * from './iterate';
17
25
  export * from './key';
18
- export * from './map';
19
- export * from './model';
20
26
  export * from './number';
21
27
  export * from './object';
22
28
  export * from './page';
23
- export * from './set.hashset';
24
29
  export * from './sort';
25
30
  export * from './string';
26
31
  export * from './type';
27
- export * from './value';
package/src/lib/index.js CHANGED
@@ -1,32 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./array"), exports);
5
- (0, tslib_1.__exportStar)(require("./assertion"), exports);
6
- (0, tslib_1.__exportStar)(require("./contact"), exports);
7
- (0, tslib_1.__exportStar)(require("./error"), exports);
8
- (0, tslib_1.__exportStar)(require("./filter"), exports);
9
- (0, tslib_1.__exportStar)(require("./promise"), exports);
10
- (0, tslib_1.__exportStar)(require("./relation"), exports);
11
- (0, tslib_1.__exportStar)(require("./storage"), exports);
12
- (0, tslib_1.__exportStar)(require("./tree"), exports);
13
- (0, tslib_1.__exportStar)(require("./boolean"), exports);
14
- (0, tslib_1.__exportStar)(require("./date"), exports);
15
- (0, tslib_1.__exportStar)(require("./lifecycle"), exports);
16
- (0, tslib_1.__exportStar)(require("./getter"), exports);
17
- (0, tslib_1.__exportStar)(require("./grouping"), exports);
18
- (0, tslib_1.__exportStar)(require("./hash"), exports);
19
- (0, tslib_1.__exportStar)(require("./iterate"), exports);
20
- (0, tslib_1.__exportStar)(require("./key"), exports);
21
- (0, tslib_1.__exportStar)(require("./map"), exports);
22
- (0, tslib_1.__exportStar)(require("./model"), exports);
23
- (0, tslib_1.__exportStar)(require("./number"), exports);
24
- (0, tslib_1.__exportStar)(require("./object"), exports);
25
- (0, tslib_1.__exportStar)(require("./page"), exports);
26
- (0, tslib_1.__exportStar)(require("./set.hashset"), exports);
27
- // export * from './lib/set';
28
- (0, tslib_1.__exportStar)(require("./sort"), exports);
29
- (0, tslib_1.__exportStar)(require("./string"), exports);
30
- (0, tslib_1.__exportStar)(require("./type"), exports);
31
- (0, tslib_1.__exportStar)(require("./value"), exports);
4
+ tslib_1.__exportStar(require("./array"), exports);
5
+ tslib_1.__exportStar(require("./assertion"), exports);
6
+ tslib_1.__exportStar(require("./auth"), exports);
7
+ tslib_1.__exportStar(require("./contact"), exports);
8
+ tslib_1.__exportStar(require("./error"), exports);
9
+ tslib_1.__exportStar(require("./filter"), exports);
10
+ tslib_1.__exportStar(require("./function"), exports);
11
+ tslib_1.__exportStar(require("./getter"), exports);
12
+ tslib_1.__exportStar(require("./iterable"), exports);
13
+ tslib_1.__exportStar(require("./map"), exports);
14
+ tslib_1.__exportStar(require("./model"), exports);
15
+ tslib_1.__exportStar(require("./misc"), exports);
16
+ tslib_1.__exportStar(require("./promise"), exports);
17
+ tslib_1.__exportStar(require("./relation"), exports);
18
+ tslib_1.__exportStar(require("./set"), exports);
19
+ tslib_1.__exportStar(require("./storage"), exports);
20
+ tslib_1.__exportStar(require("./tree"), exports);
21
+ tslib_1.__exportStar(require("./value"), exports);
22
+ tslib_1.__exportStar(require("./boolean"), exports);
23
+ tslib_1.__exportStar(require("./date"), exports);
24
+ tslib_1.__exportStar(require("./lifecycle"), exports);
25
+ tslib_1.__exportStar(require("./grouping"), exports);
26
+ tslib_1.__exportStar(require("./hash"), exports);
27
+ tslib_1.__exportStar(require("./iterate"), exports);
28
+ tslib_1.__exportStar(require("./key"), exports);
29
+ tslib_1.__exportStar(require("./number"), exports);
30
+ tslib_1.__exportStar(require("./object"), exports);
31
+ tslib_1.__exportStar(require("./page"), exports);
32
+ tslib_1.__exportStar(require("./sort"), exports);
33
+ tslib_1.__exportStar(require("./string"), exports);
34
+ tslib_1.__exportStar(require("./type"), exports);
32
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/util/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,uDAAwB;AACxB,2DAA4B;AAC5B,yDAA0B;AAC1B,uDAAwB;AACxB,wDAAyB;AACzB,yDAA0B;AAC1B,0DAA2B;AAC3B,yDAA0B;AAC1B,sDAAuB;AACvB,yDAA0B;AAC1B,sDAAuB;AACvB,2DAA4B;AAC5B,wDAAyB;AACzB,0DAA2B;AAC3B,sDAAuB;AACvB,yDAA0B;AAC1B,qDAAsB;AACtB,qDAAsB;AACtB,uDAAwB;AACxB,wDAAyB;AACzB,wDAAyB;AACzB,sDAAuB;AACvB,6DAA8B;AAC9B,6BAA6B;AAC7B,sDAAuB;AACvB,wDAAyB;AACzB,sDAAuB;AACvB,uDAAwB"}
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"}
@@ -0,0 +1,2 @@
1
+ export * from './iterable';
2
+ export * from './iterable.map';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./iterable"), exports);
5
+ tslib_1.__exportStar(require("./iterable.map"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,yDAA+B"}
@@ -0,0 +1,53 @@
1
+ import { Maybe } from "../value/maybe";
2
+ export declare type IterableOrValue<T> = T | Iterable<T>;
3
+ /**
4
+ * Returns true if the input is an Iterable.
5
+ *
6
+ * @param values
7
+ * @returns
8
+ */
9
+ export declare function isIterable<T = any>(values: any): values is Iterable<T>;
10
+ /**
11
+ * Returns the first value from the Iterable. If there are no values, returns undefined. Order is not guranteed.
12
+ *
13
+ * @param values
14
+ * @returns
15
+ */
16
+ export declare function firstValueFromIterable<T>(values: Iterable<T>): Maybe<T>;
17
+ /**
18
+ * Takes items from the iterable in the order they are read. Order is not guranteed.
19
+ *
20
+ * @param values
21
+ * @param count
22
+ * @returns
23
+ */
24
+ export declare function takeValuesFromIterable<T>(values: Iterable<T>, count: number): T[];
25
+ /**
26
+ * Iterates over iterable values.
27
+ *
28
+ * @param values
29
+ * @param fn
30
+ */
31
+ export declare function forEachInIterable<T>(values: Iterable<T>, fn: (value: T) => void): void;
32
+ /**
33
+ * Uses the input iterable if it is defined.
34
+ *
35
+ * @param values
36
+ * @param fn
37
+ */
38
+ export declare function useIterableOrValue<T>(values: Maybe<IterableOrValue<T>>, fn: (value: T) => void): void;
39
+ /**
40
+ * Find the first matching value in the Iterable.
41
+ *
42
+ * @param values
43
+ * @param fn
44
+ */
45
+ export declare function findInIterable<T>(values: Iterable<T>, fn: (value: T) => boolean): Maybe<T>;
46
+ /**
47
+ * Whether or not the value exists in the iterable.
48
+ *
49
+ * @param values
50
+ * @param fn
51
+ * @returns
52
+ */
53
+ export declare function existsInIterable<T>(values: Iterable<T>, fn: (value: T) => boolean): boolean;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.existsInIterable = exports.findInIterable = exports.useIterableOrValue = exports.forEachInIterable = exports.takeValuesFromIterable = exports.firstValueFromIterable = exports.isIterable = void 0;
4
+ // MARK: Functions
5
+ /**
6
+ * Returns true if the input is an Iterable.
7
+ *
8
+ * @param values
9
+ * @returns
10
+ */
11
+ function isIterable(values) {
12
+ if (values && values[Symbol.iterator]) {
13
+ return true;
14
+ }
15
+ else {
16
+ return false;
17
+ }
18
+ }
19
+ exports.isIterable = isIterable;
20
+ /**
21
+ * Returns the first value from the Iterable. If there are no values, returns undefined. Order is not guranteed.
22
+ *
23
+ * @param values
24
+ * @returns
25
+ */
26
+ function firstValueFromIterable(values) {
27
+ for (const value of values) {
28
+ return value;
29
+ }
30
+ return undefined;
31
+ }
32
+ exports.firstValueFromIterable = firstValueFromIterable;
33
+ /**
34
+ * Takes items from the iterable in the order they are read. Order is not guranteed.
35
+ *
36
+ * @param values
37
+ * @param count
38
+ * @returns
39
+ */
40
+ function takeValuesFromIterable(values, count) {
41
+ let result = [];
42
+ for (const value of values) {
43
+ if (result.length < count) {
44
+ result.push(value);
45
+ }
46
+ else {
47
+ break;
48
+ }
49
+ }
50
+ return result;
51
+ }
52
+ exports.takeValuesFromIterable = takeValuesFromIterable;
53
+ /**
54
+ * Iterates over iterable values.
55
+ *
56
+ * @param values
57
+ * @param fn
58
+ */
59
+ function forEachInIterable(values, fn) {
60
+ for (const value of values) {
61
+ fn(value);
62
+ }
63
+ }
64
+ exports.forEachInIterable = forEachInIterable;
65
+ /**
66
+ * Uses the input iterable if it is defined.
67
+ *
68
+ * @param values
69
+ * @param fn
70
+ */
71
+ function useIterableOrValue(values, fn) {
72
+ if (values != null) {
73
+ if (isIterable(values)) {
74
+ forEachInIterable(values, fn);
75
+ }
76
+ else {
77
+ fn(values);
78
+ }
79
+ }
80
+ }
81
+ exports.useIterableOrValue = useIterableOrValue;
82
+ /**
83
+ * Find the first matching value in the Iterable.
84
+ *
85
+ * @param values
86
+ * @param fn
87
+ */
88
+ function findInIterable(values, fn) {
89
+ for (const value of values) {
90
+ if (fn(value)) {
91
+ return value;
92
+ }
93
+ }
94
+ return undefined;
95
+ }
96
+ exports.findInIterable = findInIterable;
97
+ /**
98
+ * Whether or not the value exists in the iterable.
99
+ *
100
+ * @param values
101
+ * @param fn
102
+ * @returns
103
+ */
104
+ function existsInIterable(values, fn) {
105
+ for (const value of values) {
106
+ if (fn(value)) {
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ }
112
+ exports.existsInIterable = existsInIterable;
113
+ //# sourceMappingURL=iterable.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * map utility function for an iterable that maps and places the results into an array.
3
+ *
4
+ * @param values
5
+ * @param fn
6
+ * @returns
7
+ */
8
+ export declare function mapIterable<I, O>(values: Iterable<I>, fn: (value: I) => O): O[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapIterable = void 0;
4
+ const iterable_1 = require("./iterable");
5
+ /**
6
+ * map utility function for an iterable that maps and places the results into an array.
7
+ *
8
+ * @param values
9
+ * @param fn
10
+ * @returns
11
+ */
12
+ function mapIterable(values, fn) {
13
+ const mapping = [];
14
+ (0, iterable_1.forEachInIterable)(values, (value) => mapping.push(fn(value)));
15
+ return mapping;
16
+ }
17
+ exports.mapIterable = mapIterable;
18
+ //# sourceMappingURL=iterable.map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable.map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.map.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAE/C;;;;;;GAMG;AACH,SAAgB,WAAW,CAAO,MAAmB,EAAE,EAAmB;IACxE,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAA,4BAAiB,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,kCAIC"}
@@ -6,7 +6,7 @@ const tslib_1 = require("tslib");
6
6
  * Async iteration over the input values in-order.
7
7
  */
8
8
  function iterate(values, useFn) {
9
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
10
  for (let i = 0; i < values.length; i += 1) {
11
11
  yield useFn(values[i]);
12
12
  }
package/src/lib/key.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Maybe } from "./value";
1
+ import { Maybe } from "./value/maybe";
2
2
  /**
3
3
  * A key made up of either a string or number value.
4
4
  */
@@ -0,0 +1,2 @@
1
+ export * from './map';
2
+ export * from './map.intersection';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./map"), exports);
5
+ tslib_1.__exportStar(require("./map.intersection"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/map/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB;AACtB,6DAAmC"}
@@ -0,0 +1,9 @@
1
+ import { Maybe } from "../value";
2
+ export declare type MapFn<A, B> = (value: A) => B;
3
+ export declare type MapStringFn<T> = MapFn<string, T>;
4
+ /**
5
+ *
6
+ * @param maps
7
+ * @returns
8
+ */
9
+ export declare function combineMaps<K, T>(...maps: Maybe<Map<K, T>>[]): Map<K, T>;