si-funciona 2.6.0 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/README.md +40 -10
  2. package/browser/siFunciona.js +3959 -20603
  3. package/browser/siFunciona.min.js +1 -1
  4. package/dist/helpers/arrays/BasicQueue.d.ts +64 -65
  5. package/dist/helpers/arrays/BasicQueue.js +61 -62
  6. package/dist/helpers/arrays/BasicQueue.min.js +1 -1
  7. package/dist/helpers/arrays/addUniqueToArray.d.ts +9 -10
  8. package/dist/helpers/arrays/addUniqueToArray.js +16 -17
  9. package/dist/helpers/arrays/addUniqueToArray.min.js +1 -1
  10. package/dist/helpers/arrays/buildArray.d.ts +10 -11
  11. package/dist/helpers/arrays/buildArray.js +25 -26
  12. package/dist/helpers/arrays/buildArray.min.js +1 -1
  13. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +10 -11
  14. package/dist/helpers/arrays/buildArrayOfReferences.js +22 -23
  15. package/dist/helpers/arrays/buildArrayOfReferences.min.js +1 -1
  16. package/dist/helpers/arrays/compareArrays.d.ts +96 -97
  17. package/dist/helpers/arrays/compareArrays.js +96 -97
  18. package/dist/helpers/arrays/compareArrays.min.js +1 -1
  19. package/dist/helpers/arrays/mergeArrays.d.ts +8 -9
  20. package/dist/helpers/arrays/mergeArrays.js +21 -22
  21. package/dist/helpers/arrays/mergeArrays.min.js +1 -1
  22. package/dist/helpers/arrays/uniqueArray.d.ts +8 -9
  23. package/dist/helpers/arrays/uniqueArray.js +16 -17
  24. package/dist/helpers/arrays/uniqueArray.min.js +1 -1
  25. package/dist/helpers/arrays.d.ts +27 -28
  26. package/dist/helpers/arrays.js +74 -75
  27. package/dist/helpers/arrays.min.js +1 -1
  28. package/dist/helpers/descriptors/assignDescriptor.d.ts +13 -14
  29. package/dist/helpers/descriptors/assignDescriptor.js +57 -58
  30. package/dist/helpers/descriptors/assignDescriptor.min.js +1 -1
  31. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +13 -14
  32. package/dist/helpers/descriptors/assignDescriptorDetail.js +36 -37
  33. package/dist/helpers/descriptors/assignDescriptorDetail.min.js +1 -1
  34. package/dist/helpers/descriptors/checkClearValues.d.ts +11 -12
  35. package/dist/helpers/descriptors/checkClearValues.js +20 -21
  36. package/dist/helpers/descriptors/checkClearValues.min.js +1 -1
  37. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +10 -11
  38. package/dist/helpers/descriptors/checkDescriptorComplete.js +19 -20
  39. package/dist/helpers/descriptors/checkDescriptorComplete.min.js +1 -1
  40. package/dist/helpers/descriptors/cloneDescriptor.d.ts +9 -10
  41. package/dist/helpers/descriptors/cloneDescriptor.js +35 -36
  42. package/dist/helpers/descriptors/cloneDescriptor.min.js +1 -1
  43. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +9 -10
  44. package/dist/helpers/descriptors/cloneDescriptorDetail.js +26 -27
  45. package/dist/helpers/descriptors/cloneDescriptorDetail.min.js +1 -1
  46. package/dist/helpers/descriptors/compareDescriptor.d.ts +12 -13
  47. package/dist/helpers/descriptors/compareDescriptor.js +32 -33
  48. package/dist/helpers/descriptors/compareDescriptor.min.js +1 -1
  49. package/dist/helpers/descriptors/describeObject.d.ts +14 -15
  50. package/dist/helpers/descriptors/describeObject.js +52 -53
  51. package/dist/helpers/descriptors/describeObject.min.js +1 -1
  52. package/dist/helpers/descriptors/describeObjectDetail.d.ts +13 -14
  53. package/dist/helpers/descriptors/describeObjectDetail.js +37 -38
  54. package/dist/helpers/descriptors/describeObjectDetail.min.js +1 -1
  55. package/dist/helpers/descriptors/describeObjectMap.d.ts +35 -36
  56. package/dist/helpers/descriptors/describeObjectMap.js +107 -108
  57. package/dist/helpers/descriptors/describeObjectMap.min.js +1 -1
  58. package/dist/helpers/descriptors/nextReference.d.ts +12 -13
  59. package/dist/helpers/descriptors/nextReference.js +30 -31
  60. package/dist/helpers/descriptors/nextReference.min.js +1 -1
  61. package/dist/helpers/descriptors/sameDescriptor.d.ts +12 -13
  62. package/dist/helpers/descriptors/sameDescriptor.js +21 -22
  63. package/dist/helpers/descriptors/sameDescriptor.min.js +1 -1
  64. package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -34
  65. package/dist/helpers/descriptors/samples/descriptor.js +22 -22
  66. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -42
  67. package/dist/helpers/descriptors/samples/descriptorDetail.js +24 -24
  68. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -16
  69. package/dist/helpers/descriptors/samples/descriptorMap.js +14 -14
  70. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -10
  71. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -287
  72. package/dist/helpers/descriptors.d.ts +56 -57
  73. package/dist/helpers/descriptors.js +129 -130
  74. package/dist/helpers/descriptors.min.js +1 -1
  75. package/dist/helpers/functions/callWithParams.d.ts +10 -11
  76. package/dist/helpers/functions/callWithParams.js +16 -17
  77. package/dist/helpers/functions/callWithParams.min.js +1 -1
  78. package/dist/helpers/functions/curry.d.ts +10 -11
  79. package/dist/helpers/functions/curry.js +16 -17
  80. package/dist/helpers/functions/curry.min.js +1 -1
  81. package/dist/helpers/functions/delay.d.ts +20 -21
  82. package/dist/helpers/functions/delay.js +31 -32
  83. package/dist/helpers/functions/delay.min.js +1 -1
  84. package/dist/helpers/functions/makeBasicQueue.d.ts +9 -10
  85. package/dist/helpers/functions/makeBasicQueue.js +18 -19
  86. package/dist/helpers/functions/makeBasicQueue.min.js +1 -1
  87. package/dist/helpers/functions/onBodyLoad.d.ts +9 -10
  88. package/dist/helpers/functions/onBodyLoad.js +75 -74
  89. package/dist/helpers/functions/onBodyLoad.min.js +1 -1
  90. package/dist/helpers/functions/pipe.d.ts +9 -10
  91. package/dist/helpers/functions/pipe.js +17 -18
  92. package/dist/helpers/functions/pipe.min.js +1 -1
  93. package/dist/helpers/functions/preloadParams.d.ts +19 -20
  94. package/dist/helpers/functions/preloadParams.js +20 -21
  95. package/dist/helpers/functions/preloadParams.min.js +1 -1
  96. package/dist/helpers/functions/queueManager.d.ts +48 -49
  97. package/dist/helpers/functions/queueManager.js +123 -124
  98. package/dist/helpers/functions/queueManager.min.js +1 -1
  99. package/dist/helpers/functions/queueTimeout.d.ts +20 -21
  100. package/dist/helpers/functions/queueTimeout.js +22 -23
  101. package/dist/helpers/functions/queueTimeout.min.js +1 -1
  102. package/dist/helpers/functions/relevancyFilter.d.ts +34 -35
  103. package/dist/helpers/functions/relevancyFilter.js +33 -34
  104. package/dist/helpers/functions/relevancyFilter.min.js +1 -1
  105. package/dist/helpers/functions/trace.d.ts +13 -14
  106. package/dist/helpers/functions/trace.js +24 -25
  107. package/dist/helpers/functions/trace.min.js +1 -1
  108. package/dist/helpers/functions.d.ts +40 -41
  109. package/dist/helpers/functions.js +105 -106
  110. package/dist/helpers/functions.min.js +1 -1
  111. package/dist/helpers/numbers/absoluteMax.d.ts +9 -10
  112. package/dist/helpers/numbers/absoluteMax.js +15 -16
  113. package/dist/helpers/numbers/absoluteMax.min.js +1 -1
  114. package/dist/helpers/numbers/absoluteMin.d.ts +9 -10
  115. package/dist/helpers/numbers/absoluteMin.js +15 -16
  116. package/dist/helpers/numbers/absoluteMin.min.js +1 -1
  117. package/dist/helpers/numbers/compare.d.ts +12 -13
  118. package/dist/helpers/numbers/compare.js +18 -19
  119. package/dist/helpers/numbers/compare.min.js +1 -1
  120. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +9 -10
  121. package/dist/helpers/numbers/greatestCommonDivisor.js +15 -16
  122. package/dist/helpers/numbers/greatestCommonDivisor.min.js +1 -1
  123. package/dist/helpers/numbers/leastCommonMultiple.d.ts +9 -10
  124. package/dist/helpers/numbers/leastCommonMultiple.js +17 -18
  125. package/dist/helpers/numbers/leastCommonMultiple.min.js +1 -1
  126. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +9 -10
  127. package/dist/helpers/numbers/lowestCommonDenominator.js +19 -20
  128. package/dist/helpers/numbers/lowestCommonDenominator.min.js +1 -1
  129. package/dist/helpers/numbers/randomInteger.d.ts +11 -6
  130. package/dist/helpers/numbers/randomInteger.js +12 -7
  131. package/dist/helpers/numbers/randomInteger.min.js +1 -1
  132. package/dist/helpers/numbers/randomNumber.d.ts +7 -7
  133. package/dist/helpers/numbers/randomNumber.js +8 -8
  134. package/dist/helpers/numbers/randomNumber.min.js +1 -1
  135. package/dist/helpers/numbers/simplestRatio.d.ts +8 -9
  136. package/dist/helpers/numbers/simplestRatio.js +28 -29
  137. package/dist/helpers/numbers/simplestRatio.min.js +1 -1
  138. package/dist/helpers/numbers.d.ts +30 -31
  139. package/dist/helpers/numbers.js +89 -90
  140. package/dist/helpers/numbers.min.js +1 -1
  141. package/dist/helpers/objects/cloneObject.d.ts +19 -20
  142. package/dist/helpers/objects/cloneObject.js +31 -32
  143. package/dist/helpers/objects/cloneObject.min.js +1 -1
  144. package/dist/helpers/objects/dotGet.d.ts +11 -12
  145. package/dist/helpers/objects/dotGet.js +59 -60
  146. package/dist/helpers/objects/dotGet.min.js +1 -1
  147. package/dist/helpers/objects/dotNotate.d.ts +27 -28
  148. package/dist/helpers/objects/dotNotate.js +79 -80
  149. package/dist/helpers/objects/dotNotate.min.js +1 -1
  150. package/dist/helpers/objects/dotSet.d.ts +11 -12
  151. package/dist/helpers/objects/dotSet.js +53 -54
  152. package/dist/helpers/objects/dotSet.min.js +1 -1
  153. package/dist/helpers/objects/dotUnset.d.ts +10 -11
  154. package/dist/helpers/objects/dotUnset.js +52 -53
  155. package/dist/helpers/objects/dotUnset.min.js +1 -1
  156. package/dist/helpers/objects/emptyObject.d.ts +8 -9
  157. package/dist/helpers/objects/emptyObject.js +17 -18
  158. package/dist/helpers/objects/emptyObject.min.js +1 -1
  159. package/dist/helpers/objects/filterObject.d.ts +26 -27
  160. package/dist/helpers/objects/filterObject.js +33 -32
  161. package/dist/helpers/objects/filterObject.min.js +1 -1
  162. package/dist/helpers/objects/isCloneable.d.ts +8 -9
  163. package/dist/helpers/objects/isCloneable.js +16 -17
  164. package/dist/helpers/objects/isCloneable.min.js +1 -1
  165. package/dist/helpers/objects/isEqual.d.ts +16 -17
  166. package/dist/helpers/objects/isEqual.js +100 -101
  167. package/dist/helpers/objects/isEqual.min.js +1 -1
  168. package/dist/helpers/objects/isInstanceObject.d.ts +8 -9
  169. package/dist/helpers/objects/isInstanceObject.js +26 -27
  170. package/dist/helpers/objects/isInstanceObject.min.js +1 -1
  171. package/dist/helpers/objects/isObject.d.ts +8 -9
  172. package/dist/helpers/objects/isObject.js +14 -15
  173. package/dist/helpers/objects/isObject.min.js +1 -1
  174. package/dist/helpers/objects/mapObject.d.ts +25 -26
  175. package/dist/helpers/objects/mapObject.js +25 -26
  176. package/dist/helpers/objects/mapObject.min.js +1 -1
  177. package/dist/helpers/objects/mergeObjects.d.ts +12 -13
  178. package/dist/helpers/objects/mergeObjects.js +19 -20
  179. package/dist/helpers/objects/mergeObjects.min.js +1 -1
  180. package/dist/helpers/objects/mergeObjectsBase.d.ts +35 -36
  181. package/dist/helpers/objects/mergeObjectsBase.js +91 -92
  182. package/dist/helpers/objects/mergeObjectsBase.min.js +1 -1
  183. package/dist/helpers/objects/mergeObjectsMutable.d.ts +12 -13
  184. package/dist/helpers/objects/mergeObjectsMutable.js +17 -18
  185. package/dist/helpers/objects/mergeObjectsMutable.min.js +1 -1
  186. package/dist/helpers/objects/objectKeys.d.ts +13 -14
  187. package/dist/helpers/objects/objectKeys.js +39 -40
  188. package/dist/helpers/objects/objectKeys.min.js +1 -1
  189. package/dist/helpers/objects/objectValues.d.ts +13 -14
  190. package/dist/helpers/objects/objectValues.js +20 -21
  191. package/dist/helpers/objects/objectValues.min.js +1 -1
  192. package/dist/helpers/objects/reduceObject.d.ts +30 -31
  193. package/dist/helpers/objects/reduceObject.js +25 -26
  194. package/dist/helpers/objects/reduceObject.min.js +1 -1
  195. package/dist/helpers/objects/setAndReturnValue.d.ts +13 -14
  196. package/dist/helpers/objects/setAndReturnValue.js +19 -20
  197. package/dist/helpers/objects/setAndReturnValue.min.js +1 -1
  198. package/dist/helpers/objects/setValue.d.ts +14 -15
  199. package/dist/helpers/objects/setValue.js +21 -22
  200. package/dist/helpers/objects/setValue.min.js +1 -1
  201. package/dist/helpers/objects.d.ts +121 -122
  202. package/dist/helpers/objects.js +177 -178
  203. package/dist/helpers/objects.min.js +1 -1
  204. package/dist/helpers/strings/camelCase.d.ts +8 -9
  205. package/dist/helpers/strings/camelCase.js +19 -20
  206. package/dist/helpers/strings/camelCase.min.js +1 -1
  207. package/dist/helpers/strings/kabobCase.d.ts +8 -9
  208. package/dist/helpers/strings/kabobCase.js +18 -19
  209. package/dist/helpers/strings/kabobCase.min.js +1 -1
  210. package/dist/helpers/strings/makeFilepath.d.ts +9 -9
  211. package/dist/helpers/strings/makeFilepath.js +49 -49
  212. package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
  213. package/dist/helpers/strings/makeRelativePath.js +43 -43
  214. package/dist/helpers/strings/regexEscape.d.ts +8 -8
  215. package/dist/helpers/strings/regexEscape.js +15 -15
  216. package/dist/helpers/strings/snakeCase.d.ts +8 -9
  217. package/dist/helpers/strings/snakeCase.js +18 -19
  218. package/dist/helpers/strings/snakeCase.min.js +1 -1
  219. package/dist/helpers/strings/strAfter.d.ts +9 -10
  220. package/dist/helpers/strings/strAfter.js +18 -19
  221. package/dist/helpers/strings/strAfter.min.js +1 -1
  222. package/dist/helpers/strings/strAfterLast.d.ts +9 -10
  223. package/dist/helpers/strings/strAfterLast.js +18 -19
  224. package/dist/helpers/strings/strAfterLast.min.js +1 -1
  225. package/dist/helpers/strings/strBefore.d.ts +9 -10
  226. package/dist/helpers/strings/strBefore.js +18 -19
  227. package/dist/helpers/strings/strBefore.min.js +1 -1
  228. package/dist/helpers/strings/strBeforeLast.d.ts +9 -10
  229. package/dist/helpers/strings/strBeforeLast.js +18 -19
  230. package/dist/helpers/strings/strBeforeLast.min.js +1 -1
  231. package/dist/helpers/strings/titleCase.d.ts +8 -9
  232. package/dist/helpers/strings/titleCase.js +19 -20
  233. package/dist/helpers/strings/titleCase.min.js +1 -1
  234. package/dist/helpers/strings/ucFirst.d.ts +8 -9
  235. package/dist/helpers/strings/ucFirst.js +14 -15
  236. package/dist/helpers/strings/ucFirst.min.js +1 -1
  237. package/dist/helpers/strings/words.d.ts +9 -10
  238. package/dist/helpers/strings/words.js +15 -16
  239. package/dist/helpers/strings/words.min.js +1 -1
  240. package/dist/helpers/strings.d.ts +38 -39
  241. package/dist/helpers/strings.js +121 -122
  242. package/dist/helpers/strings.min.js +1 -1
  243. package/dist/main.d.ts +15 -15
  244. package/dist/main.js +103 -103
  245. package/package.json +4 -4
@@ -1,124 +1,123 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.for-each.js')
9
- require('core-js/stable')
10
- require('regenerator-runtime/runtime')
11
- var _makeBasicQueue = _interopRequireDefault(require('./makeBasicQueue'))
12
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
13
- /**
14
- * Manage functions to run sequentially.
15
- * @memberOf module:functionHelpers
16
- * @param {IsQueue|Array} [queue=null] - The queue to manage. Pass a plain array to have it converted into a
17
- * {@link module:arrayHelpers.BasicQueue} automatically, or a custom queue implementing `IsQueue`; omit it (or pass
18
- * `null`) to have one created for you.
19
- * @returns {module:functionHelpers~queueManagerHandle}
20
- */
21
- const queueManager = (queue = null) => {
22
- let isRunning = false
23
- let isPaused = true
24
- /**
25
- * Convert a function to a queueable object.
26
- * @param {Promise.resolve} resolve
27
- * @param {Promise.reject} reject
28
- * @param {Function} fn
29
- * @param {...*} args
30
- * @returns {queuedRunnable}
31
- */
32
- const makeQueuedRunnable = (resolve, reject, fn, ...args) => {
33
- const generator = (function * () {
34
- const item = yield
35
- return typeof item.fn === 'function' ? resolve(item.fn(...item.args)) : reject(item)
36
- }())
37
- // Prepare the generator to be used on the subsequent call
38
- generator.next()
39
- return {
40
- item: {
41
- fn: fn,
42
- args: args
43
- },
44
- generator: generator
45
- }
46
- }
47
- /**
48
- * After an item is run, THEN run this function to reset isRunning
49
- * @param {*} result
50
- * @returns {*}
51
- */
52
- const postRun = result => {
53
- isRunning = false
54
- runNextItem()
55
- return result
56
- }
57
- /**
58
- * When ready, runs the next queued runnable generator.
59
- * @returns {IteratorYieldResult|null}
60
- */
61
- const runNextItem = () => {
62
- if (!isPaused && !queue.empty() && !isRunning) {
63
- isRunning = true
64
- let toRun = queue.dequeue()
65
- if (typeof toRun === 'undefined' || toRun === null) {
66
- return null
67
- }
68
- if (typeof toRun === 'function') {
69
- new Promise((resolve, reject) => {
70
- toRun = makeQueuedRunnable(resolve, reject, toRun)
71
- runNextItem()
72
- }).then(postRun)
73
- }
74
- if ('success' in toRun) {
75
- // Some run responses return an object with 'success' property.
76
- console.info(toRun.success)
77
- return null
78
- }
79
- if (!toRun.generator || 'error' in toRun) {
80
- // Some run responses return an object with an 'error' property
81
- let errorMessage = 'Verify queued function implements "done()" state.'
82
- if ('error' in toRun && toRun.error) {
83
- errorMessage = `[${toRun.error}]: ${errorMessage}`
84
- }
85
- throw new Error(errorMessage)
86
- }
87
- if (toRun.generator && toRun.item) {
88
- // Ensure the returned result has both the generator and the item to be valid
89
- return toRun.generator.next(toRun.item)
90
- }
91
- }
92
- return null
93
- }
94
- /**
95
- * Add a function into the queue to be run when ready.
96
- * @param {Function} fn - The function to run when ready
97
- * @param {...*} args - Optional arguments to apply when the function is ready to be run
98
- * @returns Promise
99
- */
100
- const pushAnother = (fn, ...args) => new Promise((resolve, reject) => {
101
- queue.enqueue(makeQueuedRunnable(resolve, reject, fn, ...args))
102
- runNextItem()
103
- }).then(postRun)
104
- if (Array.isArray(queue)) {
105
- const queueArray = queue
106
- queue = (0, _makeBasicQueue.default)()
107
- queueArray.forEach(queued => pushAnother(queued))
108
- }
109
- if (queue === null) {
110
- queue = (0, _makeBasicQueue.default)()
111
- }
112
- runNextItem()
113
- return {
114
- start: () => {
115
- isPaused = false
116
- runNextItem()
117
- },
118
- pause: () => {
119
- isPaused = true
120
- },
121
- push: pushAnother
122
- }
123
- }
124
- var _default = exports.default = queueManager
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/modules/esnext.iterator.constructor.js')
8
+ require('core-js/modules/esnext.iterator.for-each.js')
9
+ require('regenerator-runtime/runtime')
10
+ const _makeBasicQueue = _interopRequireDefault(require('./makeBasicQueue'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Manage functions to run sequentially.
14
+ * @memberOf module:functionHelpers
15
+ * @param {IsQueue|Array} [queue=null] - The queue to manage. Pass a plain array to have it converted into a
16
+ * {@link module:arrayHelpers.BasicQueue} automatically, or a custom queue implementing `IsQueue`; omit it (or pass
17
+ * `null`) to have one created for you.
18
+ * @returns {module:functionHelpers~queueManagerHandle}
19
+ */
20
+ const queueManager = (queue = null) => {
21
+ let isRunning = false
22
+ let isPaused = true
23
+ /**
24
+ * Convert a function to a queueable object.
25
+ * @param {Promise.resolve} resolve
26
+ * @param {Promise.reject} reject
27
+ * @param {Function} fn
28
+ * @param {...*} args
29
+ * @returns {queuedRunnable}
30
+ */
31
+ const makeQueuedRunnable = (resolve, reject, fn, ...args) => {
32
+ const generator = (function * () {
33
+ const item = yield
34
+ return typeof item.fn === 'function' ? resolve(item.fn(...item.args)) : reject(item)
35
+ }())
36
+ // Prepare the generator to be used on the subsequent call
37
+ generator.next()
38
+ return {
39
+ item: {
40
+ fn,
41
+ args
42
+ },
43
+ generator
44
+ }
45
+ }
46
+ /**
47
+ * After an item is run, THEN run this function to reset isRunning
48
+ * @param {*} result
49
+ * @returns {*}
50
+ */
51
+ const postRun = result => {
52
+ isRunning = false
53
+ runNextItem()
54
+ return result
55
+ }
56
+ /**
57
+ * When ready, runs the next queued runnable generator.
58
+ * @returns {IteratorYieldResult|null}
59
+ */
60
+ const runNextItem = () => {
61
+ if (!isPaused && !queue.empty() && !isRunning) {
62
+ isRunning = true
63
+ let toRun = queue.dequeue()
64
+ if (typeof toRun === 'undefined' || toRun === null) {
65
+ return null
66
+ }
67
+ if (typeof toRun === 'function') {
68
+ new Promise((resolve, reject) => {
69
+ toRun = makeQueuedRunnable(resolve, reject, toRun)
70
+ runNextItem()
71
+ }).then(postRun)
72
+ }
73
+ if ('success' in toRun) {
74
+ // Some run responses return an object with 'success' property.
75
+ console.info(toRun.success)
76
+ return null
77
+ }
78
+ if (!toRun.generator || 'error' in toRun) {
79
+ // Some run responses return an object with an 'error' property
80
+ let errorMessage = 'Verify queued function implements "done()" state.'
81
+ if ('error' in toRun && toRun.error) {
82
+ errorMessage = `[${toRun.error}]: ${errorMessage}`
83
+ }
84
+ throw new Error(errorMessage)
85
+ }
86
+ if (toRun.generator && toRun.item) {
87
+ // Ensure the returned result has both the generator and the item to be valid
88
+ return toRun.generator.next(toRun.item)
89
+ }
90
+ }
91
+ return null
92
+ }
93
+ /**
94
+ * Add a function into the queue to be run when ready.
95
+ * @param {Function} fn - The function to run when ready
96
+ * @param {...*} args - Optional arguments to apply when the function is ready to be run
97
+ * @returns Promise
98
+ */
99
+ const pushAnother = (fn, ...args) => new Promise((resolve, reject) => {
100
+ queue.enqueue(makeQueuedRunnable(resolve, reject, fn, ...args))
101
+ runNextItem()
102
+ }).then(postRun)
103
+ if (Array.isArray(queue)) {
104
+ const queueArray = queue
105
+ queue = (0, _makeBasicQueue.default)()
106
+ queueArray.forEach(queued => pushAnother(queued))
107
+ }
108
+ if (queue === null) {
109
+ queue = (0, _makeBasicQueue.default)()
110
+ }
111
+ runNextItem()
112
+ return {
113
+ start: () => {
114
+ isPaused = false
115
+ runNextItem()
116
+ },
117
+ pause: () => {
118
+ isPaused = true
119
+ },
120
+ push: pushAnother
121
+ }
122
+ }
123
+ const _default = exports.default = queueManager
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/stable"),require("regenerator-runtime/runtime");var _makeBasicQueue=_interopRequireDefault(require("./makeBasicQueue"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const queueManager=(e=null)=>{let r=!1,t=!0;const u=(e,r,t,...u)=>{const n=function*(){const t=yield;return"function"==typeof t.fn?e(t.fn(...t.args)):r(t)}();return n.next(),{item:{fn:t,args:u},generator:n}},n=e=>(r=!1,o(),e),o=()=>{if(!t&&!e.empty()&&!r){r=!0;let t=e.dequeue();if(null==t)return null;if("function"==typeof t&&new Promise(((e,r)=>{t=u(e,r,t),o()})).then(n),"success"in t)return console.info(t.success),null;if(!t.generator||"error"in t){let e='Verify queued function implements "done()" state.';throw"error"in t&&t.error&&(e=`[${t.error}]: ${e}`),new Error(e)}if(t.generator&&t.item)return t.generator.next(t.item)}return null},i=(r,...t)=>new Promise(((n,i)=>{e.enqueue(u(n,i,r,...t)),o()})).then(n);if(Array.isArray(e)){const r=e;e=(0,_makeBasicQueue.default)(),r.forEach((e=>i(e)))}return null===e&&(e=(0,_makeBasicQueue.default)()),o(),{start:()=>{t=!1,o()},pause:()=>{t=!0},push:i}};var _default=exports.default=queueManager;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("regenerator-runtime/runtime");var _makeBasicQueue=_interopRequireDefault(require("./makeBasicQueue"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const queueManager=(e=null)=>{let r=!1,t=!0;const u=(e,r,t,...u)=>{const n=function*(){const t=yield;return"function"==typeof t.fn?e(t.fn(...t.args)):r(t)}();return n.next(),{item:{fn:t,args:u},generator:n}},n=e=>(r=!1,o(),e),o=()=>{if(!t&&!e.empty()&&!r){r=!0;let t=e.dequeue();if(null==t)return null;if("function"==typeof t&&new Promise(((e,r)=>{t=u(e,r,t),o()})).then(n),"success"in t)return console.info(t.success),null;if(!t.generator||"error"in t){let e='Verify queued function implements "done()" state.';throw"error"in t&&t.error&&(e=`[${t.error}]: ${e}`),new Error(e)}if(t.generator&&t.item)return t.generator.next(t.item)}return null},i=(r,...t)=>new Promise(((n,i)=>{e.enqueue(u(n,i,r,...t)),o()})).then(n);if(Array.isArray(e)){const r=e;e=(0,_makeBasicQueue.default)(),r.forEach((e=>i(e)))}return null===e&&(e=(0,_makeBasicQueue.default)()),o(),{start:()=>{t=!1,o()},pause:()=>{t=!0},push:i}};var _default=exports.default=queueManager;
@@ -1,22 +1,21 @@
1
- import 'core-js/stable';
2
- import 'regenerator-runtime/runtime';
3
- import { queueManagerHandle } from './queueManager';
4
- /**
5
- * Run Timeout functions one after the otherin queue.
6
- * @typedef {Function} module:functionHelpers~queueTimeoutHandle
7
- * @memberOf module:functionHelpers
8
- * @param {Function} fn - A callback function to be performed at some time in the future.
9
- * @param {number} time - The time in milliseconds to delay.
10
- * @param {...*} args - Arguments to be passed to the callback once it is implemented.
11
- * @returns {Promise}
12
- */
13
- type queueTimeoutHandle = (fn: Function, time: number, ...args: any) => Promise<any>;
14
- /**
15
- * Manage functions to run sequentially with delays.
16
- * @memberOf module:functionHelpers
17
- * @param {module:functionHelpers~queueManagerHandle} [queueManagerHandle=null]
18
- * @returns {module:functionHelpers~queueTimeoutHandle}
19
- */
20
- declare const queueTimeout: (queueManagerHandle?: queueManagerHandle) => queueTimeoutHandle;
21
- export default queueTimeout;
1
+ import 'regenerator-runtime/runtime';
2
+ import { queueManagerHandle } from './queueManager';
3
+ /**
4
+ * Run Timeout functions one after the otherin queue.
5
+ * @typedef {Function} module:functionHelpers~queueTimeoutHandle
6
+ * @memberOf module:functionHelpers
7
+ * @param {Function} fn - A callback function to be performed at some time in the future.
8
+ * @param {number} time - The time in milliseconds to delay.
9
+ * @param {...*} args - Arguments to be passed to the callback once it is implemented.
10
+ * @returns {Promise}
11
+ */
12
+ type queueTimeoutHandle = (fn: Function, time: number, ...args: any) => Promise<any>;
13
+ /**
14
+ * Manage functions to run sequentially with delays.
15
+ * @memberOf module:functionHelpers
16
+ * @param {module:functionHelpers~queueManagerHandle} [queueManagerHandle=null]
17
+ * @returns {module:functionHelpers~queueTimeoutHandle}
18
+ */
19
+ declare const queueTimeout: (queueManagerHandle?: queueManagerHandle) => queueTimeoutHandle;
20
+ export default queueTimeout;
22
21
  //# sourceMappingURL=queueTimeout.d.ts.map
@@ -1,23 +1,22 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/stable')
8
- require('regenerator-runtime/runtime')
9
- var _delay = _interopRequireDefault(require('./delay'))
10
- var _queueManager = _interopRequireDefault(require('./queueManager'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Manage functions to run sequentially with delays.
14
- * @memberOf module:functionHelpers
15
- * @param {module:functionHelpers~queueManagerHandle} [queueManagerHandle=null]
16
- * @returns {module:functionHelpers~queueTimeoutHandle}
17
- */
18
- const queueTimeout = (queueManagerHandle = null) => {
19
- const manager = queueManagerHandle || (0, _queueManager.default)()
20
- manager.start()
21
- return (fn, time = 0, ...args) => manager.push(() => (0, _delay.default)(time).resolver.then(() => fn(...args)))
22
- }
23
- var _default = exports.default = queueTimeout
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('regenerator-runtime/runtime')
8
+ const _delay = _interopRequireDefault(require('./delay'))
9
+ const _queueManager = _interopRequireDefault(require('./queueManager'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Manage functions to run sequentially with delays.
13
+ * @memberOf module:functionHelpers
14
+ * @param {module:functionHelpers~queueManagerHandle} [queueManagerHandle=null]
15
+ * @returns {module:functionHelpers~queueTimeoutHandle}
16
+ */
17
+ const queueTimeout = (queueManagerHandle = null) => {
18
+ const manager = queueManagerHandle || (0, _queueManager.default)()
19
+ manager.start()
20
+ return (fn, time = 0, ...args) => manager.push(() => (0, _delay.default)(time).resolver.then(() => fn(...args)))
21
+ }
22
+ const _default = exports.default = queueTimeout
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable"),require("regenerator-runtime/runtime");var _delay=_interopRequireDefault(require("./delay")),_queueManager=_interopRequireDefault(require("./queueManager"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const queueTimeout=(e=null)=>{const u=e||(0,_queueManager.default)();return u.start(),(e,r=0,...t)=>u.push((()=>(0,_delay.default)(r).resolver.then((()=>e(...t)))))};var _default=exports.default=queueTimeout;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("regenerator-runtime/runtime");var _delay=_interopRequireDefault(require("./delay")),_queueManager=_interopRequireDefault(require("./queueManager"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const queueTimeout=(e=null)=>{const u=e||(0,_queueManager.default)();return u.start(),(e,r=0,...t)=>u.push((()=>(0,_delay.default)(r).resolver.then((()=>e(...t)))))};var _default=exports.default=queueTimeout;
@@ -1,36 +1,35 @@
1
- import 'core-js/stable';
2
- /**
3
- * An object having an integer valued property named 'relevance'.
4
- * @typedef {Object} relevanceObject
5
- * @memberOf module:functionHelpers
6
- * @property {Array|Object} source
7
- * @property {Array|Object} object
8
- * @property {number} relevance
9
- */
10
- export type relevanceObject = {
11
- source: Array<any> | Object;
12
- object: Array<any> | Object;
13
- relevance: number;
14
- };
15
- /**
16
- * A map of relevanceObjects which can be manipulated to filter results.
17
- * @typedef {Array.<relevanceObject>} relevanceMap
18
- * @memberOf module:functionHelpers
19
- */
20
- export type relevanceMap = Array<relevanceObject>;
21
- type relevancyFilterOptions = {
22
- mapLimit?: number;
23
- relevancyRange?: number;
24
- };
25
- /**
26
- * Remove elements out of relevance range and update the max relevance.
27
- * @memberOf module:functionHelpers
28
- * @param {relevanceMap} map
29
- * @param {Object} [options={}]
30
- * @param {number} [options.mapLimit=1000] - Only filter once the map exceeds this many entries.
31
- * @param {number} [options.relevancyRange=100] - How many of the most-recent relevance values to keep.
32
- * @returns {relevanceMap}
33
- */
34
- declare const relevancyFilter: (map: relevanceMap, { mapLimit, relevancyRange }?: relevancyFilterOptions) => relevanceMap;
35
- export default relevancyFilter;
1
+ /**
2
+ * An object having an integer valued property named 'relevance'.
3
+ * @typedef {Object} relevanceObject
4
+ * @memberOf module:functionHelpers
5
+ * @property {Array|Object} source
6
+ * @property {Array|Object} object
7
+ * @property {number} relevance
8
+ */
9
+ export type relevanceObject = {
10
+ source: Array<any> | Object;
11
+ object: Array<any> | Object;
12
+ relevance: number;
13
+ };
14
+ /**
15
+ * A map of relevanceObjects which can be manipulated to filter results.
16
+ * @typedef {Array.<relevanceObject>} relevanceMap
17
+ * @memberOf module:functionHelpers
18
+ */
19
+ export type relevanceMap = Array<relevanceObject>;
20
+ type relevancyFilterOptions = {
21
+ mapLimit?: number;
22
+ relevancyRange?: number;
23
+ };
24
+ /**
25
+ * Remove elements out of relevance range and update the max relevance.
26
+ * @memberOf module:functionHelpers
27
+ * @param {relevanceMap} map
28
+ * @param {Object} [options={}]
29
+ * @param {number} [options.mapLimit=1000] - Only filter once the map exceeds this many entries.
30
+ * @param {number} [options.relevancyRange=100] - How many of the most-recent relevance values to keep.
31
+ * @returns {relevanceMap}
32
+ */
33
+ declare const relevancyFilter: (map: relevanceMap, { mapLimit, relevancyRange }?: relevancyFilterOptions) => relevanceMap;
34
+ export default relevancyFilter;
36
35
  //# sourceMappingURL=relevancyFilter.d.ts.map
@@ -1,34 +1,33 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.filter.js')
9
- require('core-js/modules/esnext.iterator.map.js')
10
- require('core-js/stable')
11
- /**
12
- * Remove elements out of relevance range and update the max relevance.
13
- * @memberOf module:functionHelpers
14
- * @param {relevanceMap} map
15
- * @param {Object} [options={}]
16
- * @param {number} [options.mapLimit=1000] - Only filter once the map exceeds this many entries.
17
- * @param {number} [options.relevancyRange=100] - How many of the most-recent relevance values to keep.
18
- * @returns {relevanceMap}
19
- */
20
- const relevancyFilter = (map, {
21
- mapLimit = 1000,
22
- relevancyRange = 100
23
- } = {}) => {
24
- if (map.length <= mapLimit) {
25
- return map
26
- }
27
- const minRelevance = map.length - relevancyRange
28
- const filtered = map.filter(reference => reference.relevance >= minRelevance)
29
- return filtered.map(reference => {
30
- reference.relevance = reference.relevance > filtered.length ? filtered.length : reference.relevance
31
- return reference
32
- })
33
- }
34
- var _default = exports.default = relevancyFilter
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/modules/esnext.iterator.constructor.js')
8
+ require('core-js/modules/esnext.iterator.filter.js')
9
+ require('core-js/modules/esnext.iterator.map.js')
10
+ /**
11
+ * Remove elements out of relevance range and update the max relevance.
12
+ * @memberOf module:functionHelpers
13
+ * @param {relevanceMap} map
14
+ * @param {Object} [options={}]
15
+ * @param {number} [options.mapLimit=1000] - Only filter once the map exceeds this many entries.
16
+ * @param {number} [options.relevancyRange=100] - How many of the most-recent relevance values to keep.
17
+ * @returns {relevanceMap}
18
+ */
19
+ const relevancyFilter = (map, {
20
+ mapLimit = 1000,
21
+ relevancyRange = 100
22
+ } = {}) => {
23
+ if (map.length <= mapLimit) {
24
+ return map
25
+ }
26
+ const minRelevance = map.length - relevancyRange
27
+ const filtered = map.filter(reference => reference.relevance >= minRelevance)
28
+ return filtered.map(reference => {
29
+ reference.relevance = reference.relevance > filtered.length ? filtered.length : reference.relevance
30
+ return reference
31
+ })
32
+ }
33
+ const _default = exports.default = relevancyFilter
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/stable");const relevancyFilter=(e,{mapLimit:r=1e3,relevancyRange:t=100}={})=>{if(e.length<=r)return e;const l=e.length-t,s=e.filter((e=>e.relevance>=l));return s.map((e=>(e.relevance=e.relevance>s.length?s.length:e.relevance,e)))};var _default=exports.default=relevancyFilter;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.map.js");const relevancyFilter=(e,{mapLimit:r=1e3,relevancyRange:t=100}={})=>{if(e.length<=r)return e;const l=e.length-t,n=e.filter((e=>e.relevance>=l));return n.map((e=>(e.relevance=e.relevance>n.length?n.length:e.relevance,e)))};var _default=exports.default=relevancyFilter;
@@ -1,15 +1,14 @@
1
- import 'core-js/stable';
2
- import 'regenerator-runtime/runtime';
3
- type outputAndReturn = (value: any) => any;
4
- /**
5
- * Output the value with label to the console and return the value to not interrupt the code - useful for
6
- * inspecting a value mid-pipe/mid-chain without altering the result.
7
- * @memberOf module:functionHelpers
8
- * @param {string} label - Pass an identifying label of the value being output.
9
- * @param {boolean} [useClone=true] - Determines if the logged data should be a clone of the original to preserve
10
- * its state at the time of logging (rather than a live reference that may show later mutations).
11
- * @returns {function(*=)}
12
- */
13
- declare const trace: (label: string, useClone?: boolean) => outputAndReturn;
14
- export default trace;
1
+ import 'regenerator-runtime/runtime';
2
+ type outputAndReturn = (value: any) => any;
3
+ /**
4
+ * Output the value with label to the console and return the value to not interrupt the code - useful for
5
+ * inspecting a value mid-pipe/mid-chain without altering the result.
6
+ * @memberOf module:functionHelpers
7
+ * @param {string} label - Pass an identifying label of the value being output.
8
+ * @param {boolean} [useClone=true] - Determines if the logged data should be a clone of the original to preserve
9
+ * its state at the time of logging (rather than a live reference that may show later mutations).
10
+ * @returns {function(*=)}
11
+ */
12
+ declare const trace: (label: string, useClone?: boolean) => outputAndReturn;
13
+ export default trace;
15
14
  //# sourceMappingURL=trace.d.ts.map
@@ -1,25 +1,24 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/stable')
8
- require('regenerator-runtime/runtime')
9
- var _cloneObject = _interopRequireDefault(require('../objects/cloneObject'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Output the value with label to the console and return the value to not interrupt the code - useful for
13
- * inspecting a value mid-pipe/mid-chain without altering the result.
14
- * @memberOf module:functionHelpers
15
- * @param {string} label - Pass an identifying label of the value being output.
16
- * @param {boolean} [useClone=true] - Determines if the logged data should be a clone of the original to preserve
17
- * its state at the time of logging (rather than a live reference that may show later mutations).
18
- * @returns {function(*=)}
19
- */
20
- const trace = (label, useClone = true) => value => {
21
- // noinspection JSForgottenDebugStatementInspection
22
- console.info(`${label}: `, useClone ? (0, _cloneObject.default)(value) : value)
23
- return value
24
- }
25
- var _default = exports.default = trace
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('regenerator-runtime/runtime')
8
+ const _cloneObject = _interopRequireDefault(require('../objects/cloneObject'))
9
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
10
+ /**
11
+ * Output the value with label to the console and return the value to not interrupt the code - useful for
12
+ * inspecting a value mid-pipe/mid-chain without altering the result.
13
+ * @memberOf module:functionHelpers
14
+ * @param {string} label - Pass an identifying label of the value being output.
15
+ * @param {boolean} [useClone=true] - Determines if the logged data should be a clone of the original to preserve
16
+ * its state at the time of logging (rather than a live reference that may show later mutations).
17
+ * @returns {function(*=)}
18
+ */
19
+ const trace = (label, useClone = true) => value => {
20
+ // noinspection JSForgottenDebugStatementInspection
21
+ console.info(`${label}: `, useClone ? (0, _cloneObject.default)(value) : value)
22
+ return value
23
+ }
24
+ const _default = exports.default = trace
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable"),require("regenerator-runtime/runtime");var _cloneObject=_interopRequireDefault(require("../objects/cloneObject"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const trace=(e,t=!0)=>r=>(console.info(`${e}: `,t?(0,_cloneObject.default)(r):r),r);var _default=exports.default=trace;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("regenerator-runtime/runtime");var _cloneObject=_interopRequireDefault(require("../objects/cloneObject"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const trace=(e,t=!0)=>r=>(console.info(`${e}: `,t?(0,_cloneObject.default)(r):r),r);var _default=exports.default=trace;