@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
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.overrideInObject = exports.mergeObjects = exports.objectIsEmpty = exports.filterKeyValueTuplesFn = exports.toKeyValueTuples = exports.forEachKeyValue = exports.KeyValueTypleValueFilter = exports.assignValuesToPOJO = exports.filterFromPOJO = exports.mapToObject = exports.applyToMultipleFields = exports.objectHasKey = void 0;
4
- const value_1 = require("../value");
3
+ exports.overrideInObject = exports.mergeObjects = exports.objectIsEmpty = exports.filterKeyValueTupleFunction = exports.filterKeyValueTuples = exports.forEachKeyValue = exports.KeyValueTypleValueFilter = exports.allKeyValueTuples = exports.valuesFromPOJO = exports.assignValuesToPOJO = exports.filterFromPOJO = exports.countPOJOKeys = exports.findPOJOKeys = exports.allMaybeSoKeys = exports.allNonUndefinedKeys = exports.filterUndefinedValues = exports.filterNullAndUndefinedValues = exports.mapToObject = exports.applyToMultipleFields = exports.objectHasKey = exports.objectHasNoKeys = void 0;
4
+ const maybe_1 = require("../value/maybe");
5
5
  const array_value_1 = require("../array/array.value");
6
6
  const filter_1 = require("../filter/filter");
7
+ function objectHasNoKeys(obj) {
8
+ return (Object.keys(obj).length === 0);
9
+ }
10
+ exports.objectHasNoKeys = objectHasNoKeys;
7
11
  function objectHasKey(obj, key) {
8
12
  return Object.prototype.hasOwnProperty.call(obj, key);
9
13
  }
@@ -24,6 +28,74 @@ function mapToObject(map) {
24
28
  return object;
25
29
  }
26
30
  exports.mapToObject = mapToObject;
31
+ /**
32
+ * Returns a copy of the input object with all null and undefined values filtered from it.
33
+ *
34
+ * @param obj
35
+ * @returns
36
+ */
37
+ function filterNullAndUndefinedValues(obj) {
38
+ return filterUndefinedValues(obj, true);
39
+ }
40
+ exports.filterNullAndUndefinedValues = filterNullAndUndefinedValues;
41
+ /**
42
+ * Returns a copy of the input object with all undefined values filtered from it.
43
+ *
44
+ * @param obj
45
+ * @returns
46
+ */
47
+ function filterUndefinedValues(obj, filterNull = false) {
48
+ return filterFromPOJO(obj, { copy: true, filter: { valueFilter: (filterNull) ? KeyValueTypleValueFilter.NULL : KeyValueTypleValueFilter.UNDEFINED } });
49
+ }
50
+ exports.filterUndefinedValues = filterUndefinedValues;
51
+ /**
52
+ * Returns all keys that are not associated with an undefined value.
53
+ *
54
+ * @param obj
55
+ * @returns
56
+ */
57
+ function allNonUndefinedKeys(obj) {
58
+ return findPOJOKeys(obj, { valueFilter: KeyValueTypleValueFilter.UNDEFINED });
59
+ }
60
+ exports.allNonUndefinedKeys = allNonUndefinedKeys;
61
+ function allMaybeSoKeys(obj) {
62
+ return findPOJOKeys(obj, { valueFilter: KeyValueTypleValueFilter.NULL });
63
+ }
64
+ exports.allMaybeSoKeys = allMaybeSoKeys;
65
+ /**
66
+ * Finds keys from the POJO that meet the filter.
67
+ *
68
+ * @param obj
69
+ * @param filter
70
+ * @returns
71
+ */
72
+ function findPOJOKeys(obj, filter) {
73
+ const keys = [];
74
+ forEachKeyValue(obj, {
75
+ filter,
76
+ forEach: ([key]) => {
77
+ keys.push(key);
78
+ }
79
+ });
80
+ return keys;
81
+ }
82
+ exports.findPOJOKeys = findPOJOKeys;
83
+ /**
84
+ * Finds and counts the number of keys from the POJO that meet the filter.
85
+ *
86
+ * @param obj
87
+ * @param filter
88
+ * @returns
89
+ */
90
+ function countPOJOKeys(obj, filter = KeyValueTypleValueFilter.UNDEFINED) {
91
+ let count = 0;
92
+ forEachKeyValue(obj, {
93
+ filter,
94
+ forEach: () => count += 1
95
+ });
96
+ return count;
97
+ }
98
+ exports.countPOJOKeys = countPOJOKeys;
27
99
  /**
28
100
  * Removes values, per the the filter config, from the input object.
29
101
  *
@@ -53,30 +125,64 @@ function assignValuesToPOJO(target, obj, filter = KeyValueTypleValueFilter.UNDEF
53
125
  return obj;
54
126
  }
55
127
  exports.assignValuesToPOJO = assignValuesToPOJO;
128
+ /**
129
+ * Reads all values from the pojo based on the filter and puts them into an array.
130
+ *
131
+ * @param target
132
+ * @param filter
133
+ * @returns
134
+ */
135
+ function valuesFromPOJO(target, filter = KeyValueTypleValueFilter.UNDEFINED) {
136
+ const values = [];
137
+ forEachKeyValue(target, {
138
+ filter,
139
+ forEach: ([key, value]) => {
140
+ values.push(value);
141
+ }
142
+ });
143
+ return values;
144
+ }
145
+ exports.valuesFromPOJO = valuesFromPOJO;
146
+ function allKeyValueTuples(obj) {
147
+ return Object.entries(obj);
148
+ }
149
+ exports.allKeyValueTuples = allKeyValueTuples;
56
150
  var KeyValueTypleValueFilter;
57
151
  (function (KeyValueTypleValueFilter) {
152
+ /**
153
+ * No filter
154
+ */
58
155
  KeyValueTypleValueFilter[KeyValueTypleValueFilter["NONE"] = 0] = "NONE";
156
+ /**
157
+ * Only undefined values.
158
+ */
59
159
  KeyValueTypleValueFilter[KeyValueTypleValueFilter["UNDEFINED"] = 1] = "UNDEFINED";
160
+ /**
161
+ * All values that are null or undefined.
162
+ */
60
163
  KeyValueTypleValueFilter[KeyValueTypleValueFilter["NULL"] = 2] = "NULL";
164
+ /**
165
+ * All values that are falsy.
166
+ */
61
167
  KeyValueTypleValueFilter[KeyValueTypleValueFilter["FALSY"] = 3] = "FALSY";
62
168
  })(KeyValueTypleValueFilter = exports.KeyValueTypleValueFilter || (exports.KeyValueTypleValueFilter = {}));
63
169
  function forEachKeyValue(obj, { forEach, filter }) {
64
- const keyValues = toKeyValueTuples(obj, filter);
170
+ const keyValues = filterKeyValueTuples(obj, filter);
65
171
  keyValues.forEach(forEach);
66
172
  }
67
173
  exports.forEachKeyValue = forEachKeyValue;
68
- function toKeyValueTuples(obj, filter) {
69
- let pairs = Object.entries(obj);
174
+ function filterKeyValueTuples(obj, filter) {
175
+ let pairs = allKeyValueTuples(obj);
70
176
  if (filter) {
71
- const filterFn = filterKeyValueTuplesFn(filter);
177
+ const filterFn = filterKeyValueTupleFunction(filter);
72
178
  pairs = pairs.filter(filterFn);
73
179
  }
74
180
  return pairs;
75
181
  }
76
- exports.toKeyValueTuples = toKeyValueTuples;
77
- function filterKeyValueTuplesFn(input) {
182
+ exports.filterKeyValueTuples = filterKeyValueTuples;
183
+ function filterKeyValueTupleFunction(input) {
78
184
  const filter = (typeof input === 'object') ? input : { valueFilter: input };
79
- const { valueFilter: type, invertFilter: inverseFilter, keysFilter } = filter;
185
+ const { valueFilter: type, invertFilter: inverseFilter = false, keysFilter } = filter;
80
186
  let filterFn;
81
187
  switch (type) {
82
188
  case KeyValueTypleValueFilter.UNDEFINED:
@@ -100,7 +206,7 @@ function filterKeyValueTuplesFn(input) {
100
206
  }
101
207
  return (0, filter_1.invertFilter)(filterFn, inverseFilter);
102
208
  }
103
- exports.filterKeyValueTuplesFn = filterKeyValueTuplesFn;
209
+ exports.filterKeyValueTupleFunction = filterKeyValueTupleFunction;
104
210
  /**
105
211
  * Recursively function that returns true if the input is not an object or if every key on the object is empty.
106
212
  *
@@ -113,7 +219,7 @@ function objectIsEmpty(obj) {
113
219
  for (let i = 0; i < keys.length; i += 1) {
114
220
  const key = keys[i];
115
221
  const value = obj[key];
116
- const isEmpty = (typeof obj === 'object') ? objectIsEmpty(value) : !(0, value_1.hasValueOrNotEmpty)(value);
222
+ const isEmpty = (typeof obj === 'object') ? objectIsEmpty(value) : !(0, maybe_1.hasValueOrNotEmpty)(value);
117
223
  if (!isEmpty) {
118
224
  return false;
119
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * An object with values of a specific type keyed by either string or number or symbols.
3
+ */
4
+ export declare type ObjectMap<T> = {
5
+ [key: string | number | symbol]: T;
6
+ };
7
+ /**
8
+ * An object with values of a specific type keyed to string values.
9
+ */
10
+ export declare type StringObjectMap<T> = {
11
+ [key: string]: T;
12
+ };
13
+ export declare type MappedObjectMap<M extends ObjectMap<any>, O> = {
14
+ [key in keyof M]: O;
15
+ };
16
+ /**
17
+ * Converts an ObjectMap into a Map.
18
+ *
19
+ * @param object
20
+ * @returns
21
+ */
22
+ export declare function objectToMap<T>(object: ObjectMap<T>): Map<string, T>;
23
+ /**
24
+ * Converts an ObjectMap into tuples.
25
+ *
26
+ * @param object
27
+ * @returns
28
+ */
29
+ export declare function objectToTuples<T>(object: ObjectMap<T>): [string, T][];
30
+ /**
31
+ * Maps the values of an ObjectMap from one type to another and returns an ObjectMap containing that type.
32
+ *
33
+ * @param object
34
+ */
35
+ export declare function mapObjectMap<M extends ObjectMap<I>, I = any, O = any>(object: M, mapFn: <K extends keyof M>(value: M[K], key: K) => O): MappedObjectMap<M, O>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapObjectMap = exports.objectToTuples = exports.objectToMap = void 0;
4
+ /**
5
+ * Converts an ObjectMap into a Map.
6
+ *
7
+ * @param object
8
+ * @returns
9
+ */
10
+ function objectToMap(object) {
11
+ return new Map(objectToTuples(object));
12
+ }
13
+ exports.objectToMap = objectToMap;
14
+ /**
15
+ * Converts an ObjectMap into tuples.
16
+ *
17
+ * @param object
18
+ * @returns
19
+ */
20
+ function objectToTuples(object) {
21
+ const keys = Object.keys(object);
22
+ return keys.map(x => ([x, object[x]]));
23
+ }
24
+ exports.objectToTuples = objectToTuples;
25
+ /**
26
+ * Maps the values of an ObjectMap from one type to another and returns an ObjectMap containing that type.
27
+ *
28
+ * @param object
29
+ */
30
+ function mapObjectMap(object, mapFn) {
31
+ const mappedObject = {};
32
+ const keys = Object.keys(object);
33
+ keys.forEach((key) => {
34
+ const value = object[key];
35
+ mappedObject[key] = mapFn(value, key);
36
+ });
37
+ return mappedObject;
38
+ }
39
+ exports.mapObjectMap = mapObjectMap;
40
+ //# sourceMappingURL=object.map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/object/object.map.ts"],"names":[],"mappings":";;;AAkBA;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,MAAoB;IACjD,OAAO,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,kCAEC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAoB;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAA2C,MAAS,EAAE,KAAoD;IACpI,MAAM,YAAY,GAA0B,EAA2B,CAAC;IAExE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,CAAoB,GAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAS,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC;AAVD,oCAUC"}
@@ -1,7 +1,7 @@
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("./page"), exports);
5
- (0, tslib_1.__exportStar)(require("./page.calculator"), exports);
6
- (0, tslib_1.__exportStar)(require("./page.filter"), exports);
4
+ tslib_1.__exportStar(require("./page"), exports);
5
+ tslib_1.__exportStar(require("./page.calculator"), exports);
6
+ tslib_1.__exportStar(require("./page.filter"), exports);
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/page/index.ts"],"names":[],"mappings":";;;AAAA,sDAAuB;AACvB,iEAAkC;AAClC,6DAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/page/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,4DAAkC;AAClC,wDAA8B"}
@@ -1,4 +1,4 @@
1
- import { Maybe } from "../value";
1
+ import { Maybe } from "../value/maybe";
2
2
  /**
3
3
  * Page value used when no list items have been loaded.
4
4
  */
@@ -27,7 +27,7 @@ exports.filteredPage = filteredPage;
27
27
  */
28
28
  function iterateFilteredPages(inputPage, loadFn, iterFn) {
29
29
  var _a, _b;
30
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
31
  let currentPage = (_a = inputPage === null || inputPage === void 0 ? void 0 : inputPage.page) !== null && _a !== void 0 ? _a : 0;
32
32
  let hasMore = true;
33
33
  let count = 0;
@@ -1,4 +1,7 @@
1
+ export * from './is';
1
2
  export * from './poll';
3
+ export * from './map';
2
4
  export * from './promise';
3
5
  export * from './promise.loop';
6
+ export * from './promise.ref';
4
7
  export * from './wait';
@@ -1,8 +1,11 @@
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("./poll"), exports);
5
- (0, tslib_1.__exportStar)(require("./promise"), exports);
6
- (0, tslib_1.__exportStar)(require("./promise.loop"), exports);
7
- (0, tslib_1.__exportStar)(require("./wait"), exports);
4
+ tslib_1.__exportStar(require("./is"), exports);
5
+ tslib_1.__exportStar(require("./poll"), exports);
6
+ tslib_1.__exportStar(require("./map"), exports);
7
+ tslib_1.__exportStar(require("./promise"), exports);
8
+ tslib_1.__exportStar(require("./promise.loop"), exports);
9
+ tslib_1.__exportStar(require("./promise.ref"), exports);
10
+ tslib_1.__exportStar(require("./wait"), exports);
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,sDAAuB;AACvB,yDAA0B;AAC1B,8DAA+B;AAC/B,sDAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/index.ts"],"names":[],"mappings":";;;AAAA,+CAAqB;AACrB,iDAAuB;AACvB,gDAAsB;AACtB,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,iDAAuB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Whether or not the input is function-like.
3
+ *
4
+ * @param obj
5
+ * @returns
6
+ */
7
+ export declare function isPromise<T, S>(obj: PromiseLike<T> | S): obj is PromiseLike<T>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPromise = void 0;
4
+ /**
5
+ * Whether or not the input is function-like.
6
+ *
7
+ * @param obj
8
+ * @returns
9
+ */
10
+ function isPromise(obj) {
11
+ // https://github.com/then/is-promise
12
+ return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof (obj.then) === 'function';
13
+ }
14
+ exports.isPromise = isPromise;
15
+ //# sourceMappingURL=is.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/is.ts"],"names":[],"mappings":";;;AACA;;;;;GAKG;AACH,SAAgB,SAAS,CAAO,GAAuB;IACrD,qCAAqC;IACrC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,IAAI,OAAO,CAAE,GAAW,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;AACtH,CAAC;AAHD,8BAGC"}
@@ -0,0 +1,10 @@
1
+ import { PromiseOrValue } from "./promise";
2
+ /**
3
+ * Performs a mapping function on the input PromiseOrValue value.
4
+ *
5
+ * @param input
6
+ * @param mapFn
7
+ */
8
+ export declare function mapPromiseOrValue<I, O>(input: Promise<I>, mapFn: (input: I) => O): Promise<O>;
9
+ export declare function mapPromiseOrValue<I, O>(input: I, mapFn: (input: I) => O): O;
10
+ export declare function mapPromiseOrValue<I, O>(input: PromiseOrValue<I>, mapFn: (input: I) => O): PromiseOrValue<O>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapPromiseOrValue = void 0;
4
+ const is_1 = require("./is");
5
+ function mapPromiseOrValue(input, mapFn) {
6
+ if ((0, is_1.isPromise)(input)) {
7
+ return input.then(mapFn);
8
+ }
9
+ else {
10
+ return mapFn(input);
11
+ }
12
+ }
13
+ exports.mapPromiseOrValue = mapPromiseOrValue;
14
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/map.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AAYjC,SAAgB,iBAAiB,CAAO,KAAwB,EAAE,KAAsB;IACtF,IAAI,IAAA,cAAS,EAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;SAAM;QACL,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;KACrB;AACH,CAAC;AAND,8CAMC"}
@@ -1,4 +1,6 @@
1
- import { Maybe } from "../value";
1
+ import { Maybe } from "../value/maybe";
2
+ export declare type PromiseOrValue<T> = Promise<T> | T;
3
+ export declare function asPromise<T>(input: PromiseOrValue<T>): Promise<T>;
2
4
  export declare type PromiseTaskFn<T, K = any> = (value: T, tryNumber?: number) => Promise<K>;
3
5
  export interface PerformTaskResult<O> {
4
6
  value: Maybe<O>;
@@ -25,11 +27,21 @@ export interface PerformTasksConfig<T = any> extends PerformTaskConfig<T> {
25
27
  */
26
28
  sequential?: boolean;
27
29
  }
30
+ export declare type ValuesTaskConfig<T = any> = Omit<PerformTasksConfig<T>, 'throwError'>;
28
31
  export declare class PromiseUtility {
29
32
  /**
30
33
  * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
31
34
  */
32
35
  static runTaskForValue<O>(taskFn: () => Promise<O>, config?: ValueTaskConfig<0>): Promise<Maybe<O>>;
36
+ /**
37
+ * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
38
+ *
39
+ * @param input
40
+ * @param taskFn
41
+ * @param config
42
+ * @returns
43
+ */
44
+ static runTasksForValues<T, K = any>(input: T[], taskFn: PromiseTaskFn<T, K>, config?: PerformTasksConfig<T>): Promise<K[]>;
33
45
  /**
34
46
  * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
35
47
  *
@@ -1,19 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PromiseUtility = void 0;
3
+ exports.PromiseUtility = exports.asPromise = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const wait_1 = require("./wait");
6
+ function asPromise(input) {
7
+ return Promise.resolve(input);
8
+ }
9
+ exports.asPromise = asPromise;
6
10
  class PromiseUtility {
7
11
  // MARK: Run
8
12
  /**
9
13
  * Runs the task using the input config, and returns the value. Is always configured to throw the error if it fails.
10
14
  */
11
15
  static runTaskForValue(taskFn, config) {
12
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
17
  const { value } = yield this.performTask(taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
14
18
  return value;
15
19
  });
16
20
  }
21
+ /**
22
+ * Returns the task for each input value, and returns the values. Is always configured to throw the error if it fails.
23
+ *
24
+ * @param input
25
+ * @param taskFn
26
+ * @param config
27
+ * @returns
28
+ */
29
+ static runTasksForValues(input, taskFn, config) {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ const results = yield PromiseUtility.performTasks(input, taskFn, Object.assign(Object.assign({}, config), { throwError: true }));
32
+ return results.results.map(x => x[1]);
33
+ });
34
+ }
17
35
  // MARK: Perform
18
36
  /**
19
37
  * Performs the input tasks, and will retry tasks if they fail, up to a certain point.
@@ -21,7 +39,7 @@ class PromiseUtility {
21
39
  * This is useful for retrying sections that may experience optimistic concurrency collisions.
22
40
  */
23
41
  static performTasks(input, taskFn, config = { throwError: true }) {
24
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
43
  let taskResults;
26
44
  if (config.sequential) {
27
45
  taskResults = [];
@@ -55,15 +73,15 @@ class PromiseUtility {
55
73
  });
56
74
  }
57
75
  static performTask(taskFn, config) {
58
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
76
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
77
  const [_, value, success] = yield PromiseUtility._performTask(0, () => taskFn(), config);
60
78
  return { value, success };
61
79
  });
62
80
  }
63
81
  static _performTask(value, taskFn, { throwError, retriesAllowed = 5, retryWait = 200, beforeRetry } = { throwError: true }) {
64
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
82
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
83
  function tryTask(value, tryNumber) {
66
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
85
  try {
68
86
  const result = yield taskFn(value, tryNumber);
69
87
  return [result, true];
@@ -74,7 +92,7 @@ class PromiseUtility {
74
92
  });
75
93
  }
76
94
  function iterateTask(value, tryNumber) {
77
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
95
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
96
  const result = yield tryTask(value, tryNumber);
79
97
  const success = result[1];
80
98
  if (success) {
@@ -83,7 +101,7 @@ class PromiseUtility {
83
101
  const retriesRemaining = retriesAllowed - tryNumber;
84
102
  if (retriesRemaining > 0) {
85
103
  function doNextTry() {
86
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
105
  const nextTryNumber = tryNumber + 1;
88
106
  if (beforeRetry) {
89
107
  yield beforeRetry(value, nextTryNumber);
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Maybe } from "../value";
1
+ import { Maybe } from "../value/maybe";
2
2
  export interface PerformTaskLoopConfig<O> {
3
3
  next: (i: number, prev: Maybe<O>) => Promise<O>;
4
4
  checkContinue: (prev: Maybe<O>, i: number) => boolean;
@@ -8,6 +8,21 @@ export interface PerformTaskLoopWithInitConfig<O> {
8
8
  next: (i: number, prev: O) => Promise<O>;
9
9
  checkContinue: (prev: O, i: number) => boolean;
10
10
  }
11
- export declare function performTaskLoop(config: PerformTaskLoopConfig<void>): Promise<void>;
12
- export declare function performTaskLoop<O>(config: PerformTaskLoopConfig<O>): Promise<Maybe<O>>;
13
11
  export declare function performTaskLoop<O>(config: PerformTaskLoopWithInitConfig<O>): Promise<O>;
12
+ export declare function performTaskLoop<O>(config: PerformTaskLoopConfig<O>): Promise<O>;
13
+ export declare function performTaskLoop<O>(config: PerformTaskLoopConfig<O>): Promise<Maybe<O>>;
14
+ export declare function performTaskLoop(config: PerformTaskLoopConfig<void>): Promise<void>;
15
+ export interface PerformTaskCountLoopConfig<O> extends Omit<PerformTaskLoopConfig<O>, 'checkContinue'> {
16
+ count: number;
17
+ }
18
+ export interface PerformTaskCountLoopWithInitConfig<O> extends Omit<PerformTaskLoopWithInitConfig<O>, 'checkContinue'> {
19
+ count: number;
20
+ }
21
+ export declare function performTaskCountLoop<O>(config: PerformTaskCountLoopWithInitConfig<O>): Promise<O>;
22
+ export declare function performTaskCountLoop<O>(config: PerformTaskCountLoopConfig<O>): Promise<Maybe<O>>;
23
+ export declare function performTaskCountLoop(config: PerformTaskCountLoopConfig<void>): Promise<void>;
24
+ export interface PerformMakeLoopConfig<O> {
25
+ make: (i: number, made: O[]) => Promise<O>;
26
+ count: number;
27
+ }
28
+ export declare function performMakeLoop<O>(config: PerformMakeLoopConfig<O>): Promise<O[]>;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.performTaskLoop = void 0;
3
+ exports.performMakeLoop = exports.performTaskCountLoop = exports.performTaskLoop = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  function performTaskLoop(config) {
6
- return new Promise((resolve, reject) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
6
+ return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
7
7
  try {
8
8
  let startLoop = config.initValue == null || config.checkContinue(config.initValue, -1);
9
9
  if (startLoop) {
@@ -27,4 +27,20 @@ function performTaskLoop(config) {
27
27
  }));
28
28
  }
29
29
  exports.performTaskLoop = performTaskLoop;
30
+ function performTaskCountLoop(config) {
31
+ return performTaskLoop(Object.assign(Object.assign({}, config), { checkContinue: (_, i) => (i < config.count) }));
32
+ }
33
+ exports.performTaskCountLoop = performTaskCountLoop;
34
+ function performMakeLoop(config) {
35
+ return performTaskCountLoop({
36
+ count: config.count,
37
+ initValue: [],
38
+ next: (i, accumulator) => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ const result = yield config.make(i, accumulator);
40
+ accumulator.push(result);
41
+ return accumulator;
42
+ })
43
+ });
44
+ }
45
+ exports.performMakeLoop = performMakeLoop;
30
46
  //# sourceMappingURL=promise.loop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.loop.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.loop.ts"],"names":[],"mappings":";;;;AAiBA,SAAgB,eAAe,CAAI,MAAW;IAC5C,OAAO,IAAI,OAAO,CAAI,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI;YACF,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvF,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,SAAS,GAAa,MAAM,CAAC,SAAS,CAAC;gBAC3C,IAAI,KAAc,CAAC;gBAEnB,GAAG;oBACD,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC5C,CAAC,IAAI,CAAC,CAAC;oBACP,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBAC5C,QAAQ,KAAK,EAAE;gBAEhB,OAAO,CAAC,SAAU,CAAC,CAAC;aACrB;iBAAM;gBACL,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC3B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC;AAxBD,0CAwBC"}
1
+ {"version":3,"file":"promise.loop.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/promise/promise.loop.ts"],"names":[],"mappings":";;;;AAkBA,SAAgB,eAAe,CAAI,MAAW;IAC5C,OAAO,IAAI,OAAO,CAAI,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI;YACF,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvF,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,SAAS,GAAa,MAAM,CAAC,SAAS,CAAC;gBAC3C,IAAI,KAAc,CAAC;gBAEnB,GAAG;oBACD,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC5C,CAAC,IAAI,CAAC,CAAC;oBACP,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBAC5C,QAAQ,KAAK,EAAE;gBAEhB,OAAO,CAAC,SAAU,CAAC,CAAC;aACrB;iBAAM;gBACL,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC3B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC;AAxBD,0CAwBC;AAcD,SAAgB,oBAAoB,CAAI,MAAW;IACjD,OAAO,eAAe,iCACjB,MAAM,KACT,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IACpC,CAAC;AACZ,CAAC;AALD,oDAKC;AAQD,SAAgB,eAAe,CAAI,MAAgC;IACjE,OAAO,oBAAoB,CAAM;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,EAAS;QACpB,IAAI,EAAE,CAAO,CAAC,EAAE,WAAgB,EAAE,EAAE;YAClC,MAAM,MAAM,GAAM,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC,CAAA;KACF,CAAC,CAAC;AACL,CAAC;AAVD,0CAUC"}
@@ -0,0 +1,10 @@
1
+ export interface PromiseFullRef<O = any> {
2
+ readonly promise: Promise<O>;
3
+ readonly resolve: (value: O | PromiseLike<O>) => void;
4
+ readonly reject: (reason?: any) => void;
5
+ }
6
+ export declare type PromiseExecutor<O> = (resolve: (value: O | PromiseLike<O>) => void, reject: (reason?: any) => void) => void;
7
+ /**
8
+ * Creates a new promise and returns the full ref for it.
9
+ */
10
+ export declare function makePromiseFullRef<O>(executor: PromiseExecutor<O>): PromiseFullRef<O>;