@dereekb/util 2.1.0 → 4.0.1

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 (245) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/package.json +13 -5
  3. package/src/index.d.ts +0 -1
  4. package/src/index.js +1 -2
  5. package/src/index.js.map +1 -1
  6. package/src/lib/array/array.boolean.d.ts +2 -2
  7. package/src/lib/array/array.boolean.js +1 -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 +1 -1
  45. package/src/lib/date/index.js +2 -2
  46. package/src/lib/date/index.js.map +1 -1
  47. package/src/lib/error/error.d.ts +6 -1
  48. package/src/lib/error/error.js +8 -1
  49. package/src/lib/error/error.js.map +1 -1
  50. package/src/lib/error/error.server.d.ts +5 -12
  51. package/src/lib/error/error.server.js.map +1 -1
  52. package/src/lib/error/index.js +2 -2
  53. package/src/lib/error/index.js.map +1 -1
  54. package/src/lib/filter/index.js +1 -1
  55. package/src/lib/filter/index.js.map +1 -1
  56. package/src/lib/function/function.forward.d.ts +9 -0
  57. package/src/lib/function/function.forward.js +18 -0
  58. package/src/lib/function/function.forward.js.map +1 -0
  59. package/src/lib/function/index.d.ts +1 -0
  60. package/src/lib/function/index.js +5 -0
  61. package/src/lib/function/index.js.map +1 -0
  62. package/src/lib/getter/getter.cache.d.ts +38 -0
  63. package/src/lib/getter/getter.cache.js +23 -0
  64. package/src/lib/getter/getter.cache.js.map +1 -0
  65. package/src/lib/getter/getter.d.ts +61 -0
  66. package/src/lib/getter/getter.js +48 -0
  67. package/src/lib/getter/getter.js.map +1 -0
  68. package/src/lib/getter/getter.map.d.ts +15 -0
  69. package/src/lib/getter/getter.map.js +24 -0
  70. package/src/lib/getter/getter.map.js.map +1 -0
  71. package/src/lib/getter/index.d.ts +3 -0
  72. package/src/lib/getter/index.js +7 -0
  73. package/src/lib/getter/index.js.map +1 -0
  74. package/src/lib/grouping.d.ts +4 -4
  75. package/src/lib/index.d.ts +9 -5
  76. package/src/lib/index.js +31 -28
  77. package/src/lib/index.js.map +1 -1
  78. package/src/lib/iterable/index.d.ts +2 -0
  79. package/src/lib/iterable/index.js +6 -0
  80. package/src/lib/iterable/index.js.map +1 -0
  81. package/src/lib/iterable/iterable.d.ts +53 -0
  82. package/src/lib/iterable/iterable.js +113 -0
  83. package/src/lib/iterable/iterable.js.map +1 -0
  84. package/src/lib/iterable/iterable.map.d.ts +8 -0
  85. package/src/lib/iterable/iterable.map.js +18 -0
  86. package/src/lib/iterable/iterable.map.js.map +1 -0
  87. package/src/lib/iterate.js +1 -1
  88. package/src/lib/key.d.ts +1 -1
  89. package/src/lib/map/index.d.ts +2 -0
  90. package/src/lib/map/index.js +6 -0
  91. package/src/lib/map/index.js.map +1 -0
  92. package/src/lib/map/map.d.ts +9 -0
  93. package/src/lib/map/map.intersection.d.ts +15 -0
  94. package/src/lib/map/map.intersection.js +24 -0
  95. package/src/lib/map/map.intersection.js.map +1 -0
  96. package/src/lib/map/map.js +17 -0
  97. package/src/lib/map/map.js.map +1 -0
  98. package/src/lib/misc/host.d.ts +5 -0
  99. package/src/lib/misc/host.js +13 -0
  100. package/src/lib/misc/host.js.map +1 -0
  101. package/src/lib/misc/index.d.ts +1 -0
  102. package/src/lib/misc/index.js +5 -0
  103. package/src/lib/misc/index.js.map +1 -0
  104. package/src/lib/model/index.d.ts +3 -0
  105. package/src/lib/model/index.js +7 -0
  106. package/src/lib/model/index.js.map +1 -0
  107. package/src/lib/model/model.conversion.d.ts +63 -0
  108. package/src/lib/model/model.conversion.js +66 -0
  109. package/src/lib/model/model.conversion.js.map +1 -0
  110. package/src/lib/model/model.copy.d.ts +16 -0
  111. package/src/lib/model/model.copy.js +20 -0
  112. package/src/lib/model/model.copy.js.map +1 -0
  113. package/src/lib/{model.d.ts → model/model.d.ts} +2 -2
  114. package/src/lib/{model.js → model/model.js} +3 -3
  115. package/src/lib/model/model.js.map +1 -0
  116. package/src/lib/number/factory.d.ts +22 -0
  117. package/src/lib/number/factory.js +22 -0
  118. package/src/lib/number/factory.js.map +1 -0
  119. package/src/lib/number/index.d.ts +3 -0
  120. package/src/lib/number/index.js +7 -0
  121. package/src/lib/number/index.js.map +1 -0
  122. package/src/lib/number/random.d.ts +13 -0
  123. package/src/lib/number/random.js +22 -0
  124. package/src/lib/number/random.js.map +1 -0
  125. package/src/lib/{number.d.ts → number/round.d.ts} +0 -13
  126. package/src/lib/{number.js → number/round.js} +2 -20
  127. package/src/lib/number/round.js.map +1 -0
  128. package/src/lib/object/index.d.ts +1 -0
  129. package/src/lib/object/index.js +4 -3
  130. package/src/lib/object/index.js.map +1 -1
  131. package/src/lib/object/object.d.ts +69 -8
  132. package/src/lib/object/object.equal.d.ts +1 -1
  133. package/src/lib/object/object.equal.js +3 -3
  134. package/src/lib/object/object.equal.js.map +1 -1
  135. package/src/lib/object/object.js +117 -11
  136. package/src/lib/object/object.js.map +1 -1
  137. package/src/lib/object/object.map.d.ts +35 -0
  138. package/src/lib/object/object.map.js +40 -0
  139. package/src/lib/object/object.map.js.map +1 -0
  140. package/src/lib/page/index.js +3 -3
  141. package/src/lib/page/index.js.map +1 -1
  142. package/src/lib/page/page.d.ts +1 -1
  143. package/src/lib/page/page.filter.js +1 -1
  144. package/src/lib/promise/index.d.ts +3 -0
  145. package/src/lib/promise/index.js +7 -4
  146. package/src/lib/promise/index.js.map +1 -1
  147. package/src/lib/promise/is.d.ts +7 -0
  148. package/src/lib/promise/is.js +15 -0
  149. package/src/lib/promise/is.js.map +1 -0
  150. package/src/lib/promise/map.d.ts +10 -0
  151. package/src/lib/promise/map.js +14 -0
  152. package/src/lib/promise/map.js.map +1 -0
  153. package/src/lib/promise/promise.d.ts +13 -1
  154. package/src/lib/promise/promise.js +26 -8
  155. package/src/lib/promise/promise.js.map +1 -1
  156. package/src/lib/promise/promise.loop.d.ts +18 -3
  157. package/src/lib/promise/promise.loop.js +18 -2
  158. package/src/lib/promise/promise.loop.js.map +1 -1
  159. package/src/lib/promise/promise.ref.d.ts +10 -0
  160. package/src/lib/promise/promise.ref.js +19 -0
  161. package/src/lib/promise/promise.ref.js.map +1 -0
  162. package/src/lib/promise/wait.js +2 -2
  163. package/src/lib/promise/wait.js.map +1 -1
  164. package/src/lib/relation/index.js +1 -1
  165. package/src/lib/relation/index.js.map +1 -1
  166. package/src/lib/relation/relation.js +2 -2
  167. package/src/lib/set/index.d.ts +4 -0
  168. package/src/lib/set/index.js +8 -0
  169. package/src/lib/set/index.js.map +1 -0
  170. package/src/lib/set/set.allowed.d.ts +23 -0
  171. package/src/lib/set/set.allowed.js +29 -0
  172. package/src/lib/set/set.allowed.js.map +1 -0
  173. package/src/lib/set/set.d.ts +53 -0
  174. package/src/lib/{set.hashset.d.ts → set/set.hashset.d.ts} +2 -2
  175. package/src/lib/{set.hashset.js → set/set.hashset.js} +0 -0
  176. package/src/lib/set/set.hashset.js.map +1 -0
  177. package/src/lib/set/set.js +114 -0
  178. package/src/lib/set/set.js.map +1 -0
  179. package/src/lib/set/set.maybe.d.ts +11 -0
  180. package/src/lib/set/set.maybe.js +22 -0
  181. package/src/lib/set/set.maybe.js.map +1 -0
  182. package/src/lib/sort.d.ts +1 -4
  183. package/src/lib/sort.js +3 -8
  184. package/src/lib/sort.js.map +1 -1
  185. package/src/lib/storage/index.js +4 -4
  186. package/src/lib/storage/index.js.map +1 -1
  187. package/src/lib/storage/storage.memory.d.ts +1 -1
  188. package/src/lib/storage/storage.object.d.ts +1 -1
  189. package/src/lib/string.d.ts +9 -2
  190. package/src/lib/string.js +11 -1
  191. package/src/lib/string.js.map +1 -1
  192. package/src/lib/tree/index.js +4 -4
  193. package/src/lib/tree/index.js.map +1 -1
  194. package/src/lib/tree/tree.expand.d.ts +1 -1
  195. package/src/lib/type.d.ts +17 -1
  196. package/src/lib/value/equal.d.ts +41 -0
  197. package/src/lib/value/equal.js +56 -0
  198. package/src/lib/value/equal.js.map +1 -0
  199. package/src/lib/value/index.d.ts +4 -0
  200. package/src/lib/value/index.js +8 -0
  201. package/src/lib/value/index.js.map +1 -0
  202. package/src/lib/value/map.d.ts +13 -0
  203. package/src/lib/{map.js → value/map.js} +0 -0
  204. package/src/lib/value/map.js.map +1 -0
  205. package/src/lib/{value.d.ts → value/maybe.d.ts} +33 -4
  206. package/src/lib/{value.js → value/maybe.js} +35 -5
  207. package/src/lib/value/maybe.js.map +1 -0
  208. package/src/lib/value/modifier.d.ts +58 -0
  209. package/src/lib/value/modifier.js +69 -0
  210. package/src/lib/value/modifier.js.map +1 -0
  211. package/test/CHANGELOG.md +9 -0
  212. package/test/README.md +11 -0
  213. package/test/package.json +14 -0
  214. package/test/src/index.d.ts +1 -0
  215. package/test/src/index.js +5 -0
  216. package/test/src/index.js.map +1 -0
  217. package/{src/test → test/src/lib}/index.d.ts +1 -0
  218. package/test/src/lib/index.js +7 -0
  219. package/test/src/lib/index.js.map +1 -0
  220. package/{src/test → test/src/lib}/jest.d.ts +21 -1
  221. package/test/src/lib/jest.function.d.ts +9 -0
  222. package/test/src/lib/jest.function.js +14 -0
  223. package/test/src/lib/jest.function.js.map +1 -0
  224. package/test/src/lib/jest.js +108 -0
  225. package/test/src/lib/jest.js.map +1 -0
  226. package/{src/test → test/src/lib}/jest.wrap.d.ts +0 -0
  227. package/{src/test → test/src/lib}/jest.wrap.js +5 -5
  228. package/test/src/lib/jest.wrap.js.map +1 -0
  229. package/src/lib/getter.d.ts +0 -26
  230. package/src/lib/getter.js +0 -13
  231. package/src/lib/getter.js.map +0 -1
  232. package/src/lib/map.d.ts +0 -2
  233. package/src/lib/map.js.map +0 -1
  234. package/src/lib/model.js.map +0 -1
  235. package/src/lib/number.js.map +0 -1
  236. package/src/lib/set.d.ts +0 -0
  237. package/src/lib/set.hashset.js.map +0 -1
  238. package/src/lib/set.js +0 -2
  239. package/src/lib/set.js.map +0 -1
  240. package/src/lib/value.js.map +0 -1
  241. package/src/test/index.js +0 -6
  242. package/src/test/index.js.map +0 -1
  243. package/src/test/jest.js +0 -80
  244. package/src/test/jest.js.map +0 -1
  245. package/src/test/jest.wrap.js.map +0 -1
@@ -0,0 +1,63 @@
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>;
7
+ export interface ModelMapFunctions<V extends object, D extends object> {
8
+ from: ModelFromFunction<V, D>;
9
+ to: ModelToFunction<V, D>;
10
+ }
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>];
16
+ export declare type ModelConversionFieldValuesConfig<I extends object> = ModelConversionFieldTuple<I>[];
17
+ export interface ModelConversionOptions<I extends object, O extends object> {
18
+ /**
19
+ * Fields to include.
20
+ */
21
+ fields?: (keyof I)[];
22
+ /**
23
+ * Whether or not to only convert fields that are defined. Fields with a null value are still converted.
24
+ */
25
+ definedOnly?: boolean;
26
+ }
27
+ export declare type ModelConversionFieldValuesFunction<I extends object, O extends object> = ApplyMapFunctionWithOptions<Maybe<I>, O, ModelConversionOptions<I, O>>;
28
+ 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>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeModelFieldMapFunctions = exports.makeModelFieldToFunction = exports.makeModelFieldFromFunction = exports.makeModelFieldMapFunction = exports.makeModelConversionFieldValuesFunction = exports.makeModelMapFunctions = void 0;
4
+ const getter_1 = require("../getter/getter");
5
+ const object_1 = require("../object/object");
6
+ function makeModelMapFunctions(fields) {
7
+ 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]));
11
+ const from = makeModelConversionFieldValuesFunction(fromConversions);
12
+ const to = makeModelConversionFieldValuesFunction(toConversions);
13
+ return {
14
+ from,
15
+ to
16
+ };
17
+ }
18
+ exports.makeModelMapFunctions = makeModelMapFunctions;
19
+ function makeModelConversionFieldValuesFunction(fields) {
20
+ return (input, target, options) => {
21
+ target = target !== null && target !== void 0 ? target : {};
22
+ if (input) {
23
+ let targetFields = fields;
24
+ // if options are provided, filter down.
25
+ if (options) {
26
+ const fieldsToConvert = new Set((0, object_1.findPOJOKeys)(input, {
27
+ keysFilter: options.fields,
28
+ valueFilter: (options.definedOnly === false) ? object_1.KeyValueTypleValueFilter.NONE : object_1.KeyValueTypleValueFilter.UNDEFINED
29
+ }));
30
+ targetFields = fields.filter(x => fieldsToConvert.has(x[0]));
31
+ }
32
+ targetFields.forEach(([key, convert]) => target[key] = convert(input[key]));
33
+ }
34
+ return target;
35
+ };
36
+ }
37
+ 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
+ return (input) => {
43
+ if (input == null) {
44
+ if (convertMaybe) {
45
+ return convert(input);
46
+ }
47
+ else {
48
+ return getDefaultValue();
49
+ }
50
+ }
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
+ };
64
+ }
65
+ exports.makeModelFieldMapFunctions = makeModelFieldMapFunctions;
66
+ //# sourceMappingURL=model.conversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.conversion.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.conversion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Maybe } from '../value/maybe';
2
+ export declare type CopySelectModelFieldsConfig<T = any> = Partial<CopyModelFieldsConfig<T>>;
3
+ export declare type CopyModelFieldsConfig<T = any> = {
4
+ [K in keyof T]: Maybe<CopyModelFieldConfig>;
5
+ };
6
+ export interface CopyModelFieldConfig<V = any> {
7
+ /**
8
+ * Default value if not presented. If default is not defined and there is no value, the key will be ignored entirely.
9
+ */
10
+ default?: V;
11
+ }
12
+ /**
13
+ * Used for copying one field from one partial object to a target object.
14
+ */
15
+ export declare type CopyModelFieldFunction<T> = (from: Partial<T>, target: Partial<T>) => void;
16
+ export declare function makeCopyModelFieldFunction<T extends object>(key: keyof T, inputConfig?: Maybe<CopyModelFieldConfig>): (from: Partial<T>, target: Partial<T>) => void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCopyModelFieldFunction = void 0;
4
+ const object_1 = require("../object");
5
+ function makeCopyModelFieldFunction(key, inputConfig) {
6
+ const config = inputConfig !== null && inputConfig !== void 0 ? inputConfig : {};
7
+ const hasDefault = (0, object_1.objectHasKey)(config, 'default');
8
+ const defaultValue = config.default;
9
+ return (from, target) => {
10
+ var _a;
11
+ if ((0, object_1.objectHasKey)(from, key)) {
12
+ target[key] = (_a = from[key]) !== null && _a !== void 0 ? _a : defaultValue;
13
+ }
14
+ else if (hasDefault) {
15
+ target[key] = defaultValue;
16
+ }
17
+ };
18
+ }
19
+ exports.makeCopyModelFieldFunction = makeCopyModelFieldFunction;
20
+ //# sourceMappingURL=model.copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.copy.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.copy.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AAuBzC,SAAgB,0BAA0B,CAAmB,GAAY,EAAE,WAAyC;IAClH,MAAM,MAAM,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,OAAO,CAAC,IAAgB,EAAE,MAAkB,EAAE,EAAE;;QAC9C,IAAI,IAAA,qBAAY,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAA,IAAI,CAAC,GAAG,CAAC,mCAAI,YAAY,CAAC;SACzC;aAAM,IAAI,UAAU,EAAE;YACpB,MAAc,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;SACrC;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,gEAYC"}
@@ -1,5 +1,5 @@
1
- import { ReadKeyFunction, ReadKeysFunction } from './key';
2
- import { Maybe } from './value';
1
+ import { ReadKeyFunction, ReadKeysFunction } from '../key';
2
+ import { Maybe } from '../value/maybe';
3
3
  /**
4
4
  * A string model key
5
5
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decodeModelKeyTypePair = exports.encodeModelKeyTypePair = exports.throwKeyIsRequired = exports.isModelKey = exports.readModelKeyFromObject = exports.readModelKey = exports.requireModelKey = exports.readModelKeys = exports.useModelOrKey = exports.makeMultiModelKeyMap = exports.makeModelMap = exports.removeModelsWithKey = exports.removeModelsWithSameKey = exports.symmetricDifferenceWithModels = exports.readModelKeysFromObjects = exports.uniqueModels = exports.uniqueKeys = exports.AbstractUniqueModel = exports.readUniqueModelKey = void 0;
4
- const array_set_1 = require("./array/array.set");
5
- const array_unique_1 = require("./array/array.unique");
4
+ const set_1 = require("../set/set");
5
+ const array_unique_1 = require("../array/array.unique");
6
6
  const readUniqueModelKey = (model) => model.id;
7
7
  exports.readUniqueModelKey = readUniqueModelKey;
8
8
  class AbstractUniqueModel {
@@ -26,7 +26,7 @@ function readModelKeysFromObjects(input, required, read) {
26
26
  }
27
27
  exports.readModelKeysFromObjects = readModelKeysFromObjects;
28
28
  function symmetricDifferenceWithModels(a, b, required, read) {
29
- return (0, array_set_1.symmetricDifferenceKeys)(readModelKeys(a, required, read), readModelKeys(b, required, read));
29
+ return (0, set_1.symmetricDifferenceKeys)(readModelKeys(a, required, read), readModelKeys(b, required, read));
30
30
  }
31
31
  exports.symmetricDifferenceWithModels = symmetricDifferenceWithModels;
32
32
  function removeModelsWithSameKey(input, model, read) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/model/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { GetterOrValue } from '@dereekb/util';
2
+ import { Factory } from './../getter/getter';
3
+ /**
4
+ * incrementingNumberFactory() configuration.
5
+ */
6
+ export interface IncrementingNumberFactoryConfig {
7
+ /**
8
+ * Value to start at. Defaults to 0.
9
+ */
10
+ startAt?: number;
11
+ /**
12
+ * Getter to increase by. Defaults to 1.
13
+ */
14
+ increaseBy?: GetterOrValue<number>;
15
+ }
16
+ /**
17
+ * Creates a factory that returns increasing numbers.
18
+ *
19
+ * @param config
20
+ * @returns
21
+ */
22
+ export declare function incrementingNumberFactory(config?: IncrementingNumberFactoryConfig): Factory<number>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.incrementingNumberFactory = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ /**
6
+ * Creates a factory that returns increasing numbers.
7
+ *
8
+ * @param config
9
+ * @returns
10
+ */
11
+ function incrementingNumberFactory(config = {}) {
12
+ const { startAt: initial, increaseBy: inputIncreaseBy } = config;
13
+ const increaseBy = (0, util_1.asGetter)(inputIncreaseBy !== null && inputIncreaseBy !== void 0 ? inputIncreaseBy : 1);
14
+ let i = initial !== null && initial !== void 0 ? initial : 0;
15
+ return () => {
16
+ const x = i;
17
+ i += increaseBy();
18
+ return x;
19
+ };
20
+ }
21
+ exports.incrementingNumberFactory = incrementingNumberFactory;
22
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/factory.ts"],"names":[],"mappings":";;;AAAA,wCAAwD;AAiBxD;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,SAA0C,EAAE;IACpF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACjE,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC,CAAC,CAAC;IAElD,IAAI,CAAC,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,CAAC;IAErB,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,IAAI,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAXD,8DAWC"}
@@ -0,0 +1,3 @@
1
+ export * from './factory';
2
+ export * from './random';
3
+ export * from './round';
@@ -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("./factory"), exports);
5
+ tslib_1.__exportStar(require("./random"), exports);
6
+ tslib_1.__exportStar(require("./round"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,mDAAyB;AACzB,kDAAwB"}
@@ -0,0 +1,13 @@
1
+ export declare type RandomNumberFunction = () => number;
2
+ export interface MakeRandomFunction {
3
+ min?: number;
4
+ max: number;
5
+ }
6
+ export declare type MakeRandomFunctionInput = number | MakeRandomFunction;
7
+ /**
8
+ * Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
9
+ *
10
+ * @param maxOrArgs
11
+ * @returns
12
+ */
13
+ export declare function makeRandomFunction(maxOrArgs: MakeRandomFunctionInput): RandomNumberFunction;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeRandomFunction = void 0;
4
+ /**
5
+ * Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
6
+ *
7
+ * @param maxOrArgs
8
+ * @returns
9
+ */
10
+ function makeRandomFunction(maxOrArgs) {
11
+ const config = (typeof maxOrArgs === 'number') ? { min: 0, max: maxOrArgs } : maxOrArgs;
12
+ const { min, max } = config;
13
+ if (min != null) {
14
+ const range = max - min;
15
+ return () => (Math.random() * range) + min;
16
+ }
17
+ else {
18
+ return () => Math.random() * max;
19
+ }
20
+ }
21
+ exports.makeRandomFunction = makeRandomFunction;
22
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/random.ts"],"names":[],"mappings":";;;AASA;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,SAAkC;IACnE,MAAM,MAAM,GAAuB,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;KAC5C;SAAM;QACL,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;KAClC;AACH,CAAC;AAVD,gDAUC"}
@@ -16,16 +16,3 @@ export declare function roundToPrecision(value: number, precision: number): numb
16
16
  * @returns Step that contains the value.
17
17
  */
18
18
  export declare function roundNumberUpToStep(value: number, step: number): number;
19
- export declare type RandomNumberFunction = () => number;
20
- export interface MakeRandomFunction {
21
- min?: number;
22
- max: number;
23
- }
24
- export declare type MakeRandomFunctionInput = number | MakeRandomFunction;
25
- /**
26
- * Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
27
- *
28
- * @param maxOrArgs
29
- * @returns
30
- */
31
- export declare function makeRandomFunction(maxOrArgs: MakeRandomFunctionInput): RandomNumberFunction;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeRandomFunction = exports.roundNumberUpToStep = exports.roundToPrecision = void 0;
3
+ exports.roundNumberUpToStep = exports.roundToPrecision = void 0;
4
4
  // MARK: Number/Math
5
5
  /**
6
6
  * Rounds the input number to the given precision.
@@ -26,22 +26,4 @@ function roundNumberUpToStep(value, step) {
26
26
  return Math.ceil(value / step) * step;
27
27
  }
28
28
  exports.roundNumberUpToStep = roundNumberUpToStep;
29
- /**
30
- * Used to generate a RandomNumberFunction that returns a number between the input and the maximum.
31
- *
32
- * @param maxOrArgs
33
- * @returns
34
- */
35
- function makeRandomFunction(maxOrArgs) {
36
- const config = (typeof maxOrArgs === 'number') ? { min: 0, max: maxOrArgs } : maxOrArgs;
37
- const { min, max } = config;
38
- if (min != null) {
39
- const range = max - min;
40
- return () => (Math.random() * range) + min;
41
- }
42
- else {
43
- return () => Math.random() * max;
44
- }
45
- }
46
- exports.makeRandomFunction = makeRandomFunction;
47
- //# sourceMappingURL=number.js.map
29
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/number/round.ts"],"names":[],"mappings":";;;AACA,oBAAoB;AACpB;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,KAAa,EAAE,SAAiB;IAC/D,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAC5E,CAAC;AAFD,4CAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,IAAY;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACxC,CAAC;AAFD,kDAEC"}
@@ -1,3 +1,4 @@
1
1
  export * from './object.array';
2
2
  export * from './object.equal';
3
+ export * from './object.map';
3
4
  export * from './object';
@@ -1,7 +1,8 @@
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("./object.array"), exports);
5
- (0, tslib_1.__exportStar)(require("./object.equal"), exports);
6
- (0, tslib_1.__exportStar)(require("./object"), exports);
4
+ tslib_1.__exportStar(require("./object.array"), exports);
5
+ tslib_1.__exportStar(require("./object.equal"), exports);
6
+ tslib_1.__exportStar(require("./object.map"), exports);
7
+ tslib_1.__exportStar(require("./object"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/index.ts"],"names":[],"mappings":";;;AAAA,8DAA+B;AAC/B,8DAA+B;AAC/B,wDAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,yDAA+B;AAC/B,uDAA6B;AAC7B,mDAAyB"}
@@ -1,5 +1,6 @@
1
1
  import { FieldOfType } from "../key";
2
- import { Maybe } from "../value";
2
+ import { Maybe } from "../value/maybe";
3
+ export declare function objectHasNoKeys(obj: object): obj is {};
3
4
  export declare function objectHasKey<T, K extends keyof T = keyof T>(obj: T, key: K): boolean;
4
5
  export declare function objectHasKey<T>(obj: T, key: string): boolean;
5
6
  export declare function applyToMultipleFields<T extends object>(value: any, fields: FieldOfType<T>[]): Partial<T>;
@@ -8,8 +9,46 @@ export declare function mapToObject<T, K extends PropertyKey>(map: Map<K, T>): {
8
9
  };
9
10
  export interface FilterFromPOJO<T extends object> {
10
11
  copy?: boolean;
11
- filter?: Omit<FilterKeyValueTuples<T>, 'inverse'>;
12
+ filter?: Omit<KeyValueTupleFilter<T>, 'inverse'>;
12
13
  }
14
+ /**
15
+ * Returns a copy of the input object with all null and undefined values filtered from it.
16
+ *
17
+ * @param obj
18
+ * @returns
19
+ */
20
+ export declare function filterNullAndUndefinedValues<T extends object = object>(obj: T): T;
21
+ /**
22
+ * Returns a copy of the input object with all undefined values filtered from it.
23
+ *
24
+ * @param obj
25
+ * @returns
26
+ */
27
+ export declare function filterUndefinedValues<T extends object = object>(obj: T, filterNull?: boolean): T;
28
+ /**
29
+ * Returns all keys that are not associated with an undefined value.
30
+ *
31
+ * @param obj
32
+ * @returns
33
+ */
34
+ export declare function allNonUndefinedKeys<T extends object = Object>(obj: T): (keyof T)[];
35
+ export declare function allMaybeSoKeys<T extends object = Object>(obj: T): (keyof T)[];
36
+ /**
37
+ * Finds keys from the POJO that meet the filter.
38
+ *
39
+ * @param obj
40
+ * @param filter
41
+ * @returns
42
+ */
43
+ export declare function findPOJOKeys<T extends object = object>(obj: T, filter: FilterKeyValueTuplesInput<T>): (keyof T)[];
44
+ /**
45
+ * Finds and counts the number of keys from the POJO that meet the filter.
46
+ *
47
+ * @param obj
48
+ * @param filter
49
+ * @returns
50
+ */
51
+ export declare function countPOJOKeys<T extends object = object>(obj: T, filter?: FilterKeyValueTuplesInput<T>): number;
13
52
  /**
14
53
  * Removes values, per the the filter config, from the input object.
15
54
  *
@@ -18,11 +57,32 @@ export interface FilterFromPOJO<T extends object> {
18
57
  */
19
58
  export declare function filterFromPOJO<T extends object = object>(obj: T, { copy, filter }?: FilterFromPOJO<T>): T;
20
59
  export declare function assignValuesToPOJO<T extends object = object>(target: T, obj: T, filter?: FilterKeyValueTuplesInput<T>): T;
60
+ /**
61
+ * Reads all values from the pojo based on the filter and puts them into an array.
62
+ *
63
+ * @param target
64
+ * @param filter
65
+ * @returns
66
+ */
67
+ export declare function valuesFromPOJO<O = any, I extends object = object>(target: I, filter?: FilterKeyValueTuplesInput<I>): O[];
21
68
  export declare type KeyValueTuple<T extends object = object, K extends keyof T = keyof T> = [K, T[K]];
69
+ export declare function allKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T): KeyValueTuple<T, K>[];
22
70
  export declare enum KeyValueTypleValueFilter {
71
+ /**
72
+ * No filter
73
+ */
23
74
  NONE = 0,
75
+ /**
76
+ * Only undefined values.
77
+ */
24
78
  UNDEFINED = 1,
79
+ /**
80
+ * All values that are null or undefined.
81
+ */
25
82
  NULL = 2,
83
+ /**
84
+ * All values that are falsy.
85
+ */
26
86
  FALSY = 3
27
87
  }
28
88
  export declare type ForEachKeyValueFunction<T extends object = object, K extends keyof T = keyof T> = (tuple: KeyValueTuple<T, K>, index: number) => void;
@@ -31,14 +91,15 @@ export interface ForEachKeyValue<T extends object = object, K extends keyof T =
31
91
  forEach: ForEachKeyValueFunction<T, K>;
32
92
  }
33
93
  export declare function forEachKeyValue<T extends object = object, K extends keyof T = keyof T>(obj: T, { forEach, filter }: ForEachKeyValue<T, K>): void;
34
- export declare function toKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T, filter?: FilterKeyValueTuplesInput<T, K>): KeyValueTuple<T, K>[];
35
- export declare type FilterKeyValueTuplesInput<T extends object = object, K extends keyof T = keyof T> = KeyValueTypleValueFilter | FilterKeyValueTuples<T, K>;
36
- export interface FilterKeyValueTuples<T extends object = object, K extends keyof T = keyof T> {
94
+ export declare function filterKeyValueTuples<T extends object = object, K extends keyof T = keyof T>(obj: T, filter?: FilterKeyValueTuplesInput<T, K>): KeyValueTuple<T, K>[];
95
+ export interface KeyValueTupleFilter<T extends object = object, K extends keyof T = keyof T> {
37
96
  valueFilter?: KeyValueTypleValueFilter;
38
97
  invertFilter?: boolean;
39
98
  keysFilter?: K[];
40
99
  }
41
- export declare function filterKeyValueTuplesFn<T extends object = object, K extends keyof T = keyof T>(input: FilterKeyValueTuplesInput<T, K>): (tuples: KeyValueTuple<T, K>) => boolean;
100
+ export declare type FilterKeyValueTuplesInput<T extends object = object, K extends keyof T = keyof T> = KeyValueTypleValueFilter | KeyValueTupleFilter<T, K>;
101
+ export declare type FilterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T> = (tuples: KeyValueTuple<T, K>) => boolean;
102
+ export declare function filterKeyValueTupleFunction<T extends object = object, K extends keyof T = keyof T>(input: FilterKeyValueTuplesInput<T, K>): FilterKeyValueTupleFunction<T, K>;
42
103
  /**
43
104
  * Recursively function that returns true if the input is not an object or if every key on the object is empty.
44
105
  *
@@ -50,7 +111,7 @@ export declare function objectIsEmpty<T extends object>(obj: Maybe<T>): boolean;
50
111
  *
51
112
  * @param objects
52
113
  */
53
- export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?: FilterKeyValueTuples<T>): Partial<T>;
114
+ export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>>[], filter?: KeyValueTupleFilter<T>): Partial<T>;
54
115
  /**
55
116
  * Assigns all undefined valeus from one or more objects into the target object.
56
117
  *
@@ -58,5 +119,5 @@ export declare function mergeObjects<T extends object>(objects: Maybe<Partial<T>
58
119
  */
59
120
  export declare function overrideInObject<T extends object>(target: Partial<T>, { from, filter }: {
60
121
  from: Partial<T>[];
61
- filter?: FilterKeyValueTuples<T>;
122
+ filter?: KeyValueTupleFilter<T>;
62
123
  }): Partial<T>;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Performs a deep comparison to check if all values on the input filters are equal.
3
3
  */
4
- export declare function areEqualObjectValues<F>(a: F, b: F): boolean;
4
+ export declare function areEqualPOJOValues<F>(a: F, b: F): boolean;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.areEqualObjectValues = void 0;
3
+ exports.areEqualPOJOValues = void 0;
4
4
  const lodash_1 = require("lodash");
5
5
  /**
6
6
  * Performs a deep comparison to check if all values on the input filters are equal.
7
7
  */
8
- function areEqualObjectValues(a, b) {
8
+ function areEqualPOJOValues(a, b) {
9
9
  return (0, lodash_1.isEqual)(a, b);
10
10
  }
11
- exports.areEqualObjectValues = areEqualObjectValues;
11
+ exports.areEqualPOJOValues = areEqualPOJOValues;
12
12
  //# sourceMappingURL=object.equal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.equal.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.equal.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC;;GAEG;AACH,SAAgB,oBAAoB,CAAI,CAAI,EAAE,CAAI;IAChD,OAAO,IAAA,gBAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,oDAEC"}
1
+ {"version":3,"file":"object.equal.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.equal.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC;;GAEG;AACH,SAAgB,kBAAkB,CAAI,CAAI,EAAE,CAAI;IAC9C,OAAO,IAAA,gBAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC;AAFD,gDAEC"}