si-funciona 2.3.3 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/README.md +1337 -1244
  2. package/browser/siFunciona.js +24205 -24146
  3. package/dist/helpers/arrays/BasicQueue.d.ts +65 -61
  4. package/dist/helpers/arrays/BasicQueue.js +62 -59
  5. package/dist/helpers/arrays/addUniqueToArray.d.ts +10 -10
  6. package/dist/helpers/arrays/addUniqueToArray.js +17 -17
  7. package/dist/helpers/arrays/buildArray.d.ts +11 -11
  8. package/dist/helpers/arrays/buildArray.js +26 -26
  9. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +11 -11
  10. package/dist/helpers/arrays/buildArrayOfReferences.js +23 -23
  11. package/dist/helpers/arrays/compareArrays.d.ts +97 -97
  12. package/dist/helpers/arrays/compareArrays.js +97 -97
  13. package/dist/helpers/arrays/mergeArrays.d.ts +9 -9
  14. package/dist/helpers/arrays/mergeArrays.js +22 -22
  15. package/dist/helpers/arrays/uniqueArray.d.ts +9 -9
  16. package/dist/helpers/arrays/uniqueArray.js +17 -17
  17. package/dist/helpers/arrays.d.ts +21 -20
  18. package/dist/helpers/arrays.js +33 -32
  19. package/dist/helpers/descriptors/assignDescriptor.d.ts +14 -11
  20. package/dist/helpers/descriptors/assignDescriptor.js +58 -55
  21. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +14 -11
  22. package/dist/helpers/descriptors/assignDescriptorDetail.js +37 -34
  23. package/dist/helpers/descriptors/checkClearValues.d.ts +12 -11
  24. package/dist/helpers/descriptors/checkClearValues.js +21 -20
  25. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +11 -10
  26. package/dist/helpers/descriptors/checkDescriptorComplete.js +20 -19
  27. package/dist/helpers/descriptors/cloneDescriptor.d.ts +10 -10
  28. package/dist/helpers/descriptors/cloneDescriptor.js +36 -36
  29. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +10 -10
  30. package/dist/helpers/descriptors/cloneDescriptorDetail.js +27 -27
  31. package/dist/helpers/descriptors/compareDescriptor.d.ts +13 -11
  32. package/dist/helpers/descriptors/compareDescriptor.js +33 -31
  33. package/dist/helpers/descriptors/describeObject.d.ts +15 -13
  34. package/dist/helpers/descriptors/describeObject.js +53 -51
  35. package/dist/helpers/descriptors/describeObjectDetail.d.ts +14 -12
  36. package/dist/helpers/descriptors/describeObjectDetail.js +38 -36
  37. package/dist/helpers/descriptors/describeObjectMap.d.ts +36 -20
  38. package/dist/helpers/descriptors/describeObjectMap.js +108 -92
  39. package/dist/helpers/descriptors/nextReference.d.ts +13 -11
  40. package/dist/helpers/descriptors/nextReference.js +31 -29
  41. package/dist/helpers/descriptors/sameDescriptor.d.ts +13 -11
  42. package/dist/helpers/descriptors/sameDescriptor.js +22 -20
  43. package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -27
  44. package/dist/helpers/descriptors/samples/descriptor.js +22 -22
  45. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -34
  46. package/dist/helpers/descriptors/samples/descriptorDetail.js +24 -24
  47. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -12
  48. package/dist/helpers/descriptors/samples/descriptorMap.js +14 -14
  49. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -7
  50. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -284
  51. package/dist/helpers/descriptors.d.ts +44 -28
  52. package/dist/helpers/descriptors.js +58 -42
  53. package/dist/helpers/functions/callWithParams.d.ts +11 -11
  54. package/dist/helpers/functions/callWithParams.js +17 -17
  55. package/dist/helpers/functions/curry.d.ts +11 -11
  56. package/dist/helpers/functions/curry.js +17 -17
  57. package/dist/helpers/functions/delay.d.ts +21 -21
  58. package/dist/helpers/functions/delay.js +32 -32
  59. package/dist/helpers/functions/makeBasicQueue.d.ts +10 -10
  60. package/dist/helpers/functions/makeBasicQueue.js +19 -19
  61. package/dist/helpers/functions/onBodyLoad.d.ts +10 -10
  62. package/dist/helpers/functions/onBodyLoad.js +74 -74
  63. package/dist/helpers/functions/pipe.d.ts +10 -10
  64. package/dist/helpers/functions/pipe.js +18 -18
  65. package/dist/helpers/functions/preloadParams.d.ts +20 -20
  66. package/dist/helpers/functions/preloadParams.js +21 -21
  67. package/dist/helpers/functions/queueManager.d.ts +49 -47
  68. package/dist/helpers/functions/queueManager.js +124 -122
  69. package/dist/helpers/functions/queueTimeout.d.ts +21 -21
  70. package/dist/helpers/functions/queueTimeout.js +23 -23
  71. package/dist/helpers/functions/relevancyFilter.d.ts +35 -35
  72. package/dist/helpers/functions/relevancyFilter.js +34 -34
  73. package/dist/helpers/functions/trace.d.ts +14 -12
  74. package/dist/helpers/functions/trace.js +25 -23
  75. package/dist/helpers/functions.d.ts +29 -29
  76. package/dist/helpers/functions.js +40 -40
  77. package/dist/helpers/numbers/absoluteMax.d.ts +10 -10
  78. package/dist/helpers/numbers/absoluteMax.js +16 -16
  79. package/dist/helpers/numbers/absoluteMin.d.ts +10 -10
  80. package/dist/helpers/numbers/absoluteMin.js +16 -16
  81. package/dist/helpers/numbers/compare.d.ts +13 -13
  82. package/dist/helpers/numbers/compare.js +19 -19
  83. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +10 -10
  84. package/dist/helpers/numbers/greatestCommonDivisor.js +16 -16
  85. package/dist/helpers/numbers/leastCommonMultiple.d.ts +10 -10
  86. package/dist/helpers/numbers/leastCommonMultiple.js +18 -18
  87. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +10 -10
  88. package/dist/helpers/numbers/lowestCommonDenominator.js +20 -20
  89. package/dist/helpers/numbers/randomInteger.d.ts +13 -13
  90. package/dist/helpers/numbers/randomInteger.js +19 -19
  91. package/dist/helpers/numbers/randomNumber.d.ts +13 -13
  92. package/dist/helpers/numbers/randomNumber.js +19 -19
  93. package/dist/helpers/numbers/simplestRatio.d.ts +9 -9
  94. package/dist/helpers/numbers/simplestRatio.js +29 -29
  95. package/dist/helpers/numbers.d.ts +21 -21
  96. package/dist/helpers/numbers.js +36 -36
  97. package/dist/helpers/objects/cloneObject.d.ts +20 -20
  98. package/dist/helpers/objects/cloneObject.js +32 -32
  99. package/dist/helpers/objects/dotGet.d.ts +12 -12
  100. package/dist/helpers/objects/dotGet.js +60 -60
  101. package/dist/helpers/objects/dotNotate.d.ts +28 -28
  102. package/dist/helpers/objects/dotNotate.js +80 -80
  103. package/dist/helpers/objects/dotSet.d.ts +12 -12
  104. package/dist/helpers/objects/dotSet.js +54 -54
  105. package/dist/helpers/objects/dotUnset.d.ts +11 -11
  106. package/dist/helpers/objects/dotUnset.js +53 -53
  107. package/dist/helpers/objects/emptyObject.d.ts +9 -9
  108. package/dist/helpers/objects/emptyObject.js +18 -18
  109. package/dist/helpers/objects/filterObject.d.ts +27 -27
  110. package/dist/helpers/objects/filterObject.js +32 -32
  111. package/dist/helpers/objects/isCloneable.d.ts +9 -9
  112. package/dist/helpers/objects/isCloneable.js +17 -17
  113. package/dist/helpers/objects/isInstanceObject.d.ts +9 -9
  114. package/dist/helpers/objects/isInstanceObject.js +27 -27
  115. package/dist/helpers/objects/isObject.d.ts +9 -9
  116. package/dist/helpers/objects/isObject.js +15 -15
  117. package/dist/helpers/objects/mapObject.d.ts +26 -26
  118. package/dist/helpers/objects/mapObject.js +26 -26
  119. package/dist/helpers/objects/mergeObjects.d.ts +13 -13
  120. package/dist/helpers/objects/mergeObjects.js +20 -20
  121. package/dist/helpers/objects/mergeObjectsBase.d.ts +36 -36
  122. package/dist/helpers/objects/mergeObjectsBase.js +92 -92
  123. package/dist/helpers/objects/mergeObjectsMutable.d.ts +13 -13
  124. package/dist/helpers/objects/mergeObjectsMutable.js +18 -18
  125. package/dist/helpers/objects/objectKeys.d.ts +14 -14
  126. package/dist/helpers/objects/objectKeys.js +40 -40
  127. package/dist/helpers/objects/objectValues.d.ts +14 -14
  128. package/dist/helpers/objects/objectValues.js +21 -21
  129. package/dist/helpers/objects/reduceObject.d.ts +31 -31
  130. package/dist/helpers/objects/reduceObject.js +26 -26
  131. package/dist/helpers/objects/setAndReturnValue.d.ts +14 -14
  132. package/dist/helpers/objects/setAndReturnValue.js +20 -20
  133. package/dist/helpers/objects/setValue.d.ts +15 -15
  134. package/dist/helpers/objects/setValue.js +22 -22
  135. package/dist/helpers/objects.d.ts +100 -100
  136. package/dist/helpers/objects.js +56 -56
  137. package/dist/helpers/strings/camelCase.d.ts +9 -9
  138. package/dist/helpers/strings/camelCase.js +20 -20
  139. package/dist/helpers/strings/kabobCase.d.ts +9 -9
  140. package/dist/helpers/strings/kabobCase.js +19 -19
  141. package/dist/helpers/strings/makeFilepath.d.ts +9 -9
  142. package/dist/helpers/strings/makeFilepath.js +49 -49
  143. package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
  144. package/dist/helpers/strings/makeRelativePath.js +43 -43
  145. package/dist/helpers/strings/regexEscape.d.ts +8 -8
  146. package/dist/helpers/strings/regexEscape.js +15 -15
  147. package/dist/helpers/strings/snakeCase.d.ts +9 -9
  148. package/dist/helpers/strings/snakeCase.js +19 -19
  149. package/dist/helpers/strings/strAfter.d.ts +10 -10
  150. package/dist/helpers/strings/strAfter.js +19 -19
  151. package/dist/helpers/strings/strAfterLast.d.ts +10 -10
  152. package/dist/helpers/strings/strAfterLast.js +19 -19
  153. package/dist/helpers/strings/strBefore.d.ts +10 -10
  154. package/dist/helpers/strings/strBefore.js +19 -19
  155. package/dist/helpers/strings/strBeforeLast.d.ts +10 -10
  156. package/dist/helpers/strings/strBeforeLast.js +19 -19
  157. package/dist/helpers/strings/titleCase.d.ts +9 -9
  158. package/dist/helpers/strings/titleCase.js +20 -20
  159. package/dist/helpers/strings/ucFirst.d.ts +9 -9
  160. package/dist/helpers/strings/ucFirst.js +15 -15
  161. package/dist/helpers/strings/words.d.ts +10 -9
  162. package/dist/helpers/strings/words.js +16 -15
  163. package/dist/helpers/strings.d.ts +25 -25
  164. package/dist/helpers/strings.js +44 -44
  165. package/dist/main.d.ts +9 -9
  166. package/dist/main.js +30 -30
  167. package/package.json +2 -5
@@ -1,21 +1,21 @@
1
- import 'core-js/stable';
2
- /**
3
- * The return function which takes the missing parameter in order to call the preloaded function.
4
- * @typedef {Function} module:functionHelpers~callWithMissing
5
- * @memberOf module:functionHelpers
6
- * @param {*} missing - The missing parameter to be applied
7
- * @returns {*}
8
- */
9
- type callWithMissing = (missing: any) => any;
10
- /**
11
- * Provide an array of parameters to be used with a function, allow the function to be called later
12
- * with the missing parameter.
13
- * @memberOf module:functionHelpers
14
- * @param {Function} fn - The function to be called
15
- * @param {Array} params - The parameters to preload
16
- * @param {number} [unassignedParam=0] - Position of missing parameter (zero indexed)
17
- * @returns {module:functionHelpers~callWithMissing}
18
- */
19
- declare const preloadParams: (fn: Function, params?: Array<any>, unassignedParam?: number) => callWithMissing;
20
- export default preloadParams;
1
+ import 'core-js/stable';
2
+ /**
3
+ * The return function which takes the missing parameter in order to call the preloaded function.
4
+ * @typedef {Function} module:functionHelpers~callWithMissing
5
+ * @memberOf module:functionHelpers
6
+ * @param {*} missing - The missing parameter to be applied
7
+ * @returns {*}
8
+ */
9
+ type callWithMissing = (missing: any) => any;
10
+ /**
11
+ * Provide an array of parameters to be used with a function, allow the function to be called later
12
+ * with the missing parameter.
13
+ * @memberOf module:functionHelpers
14
+ * @param {Function} fn - The function to be called
15
+ * @param {Array} params - The parameters to preload
16
+ * @param {number} [unassignedParam=0] - Position of missing parameter (zero indexed)
17
+ * @returns {module:functionHelpers~callWithMissing}
18
+ */
19
+ declare const preloadParams: (fn: Function, params?: Array<any>, unassignedParam?: number) => callWithMissing;
20
+ export default preloadParams;
21
21
  //# sourceMappingURL=preloadParams.d.ts.map
@@ -1,21 +1,21 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/stable')
8
- /**
9
- * Provide an array of parameters to be used with a function, allow the function to be called later
10
- * with the missing parameter.
11
- * @memberOf module:functionHelpers
12
- * @param {Function} fn - The function to be called
13
- * @param {Array} params - The parameters to preload
14
- * @param {number} [unassignedParam=0] - Position of missing parameter (zero indexed)
15
- * @returns {module:functionHelpers~callWithMissing}
16
- */
17
- const preloadParams = (fn, params = [], unassignedParam = 0) => missing => {
18
- params.splice(unassignedParam, 0, missing)
19
- return fn(...params)
20
- }
21
- var _default = exports.default = preloadParams
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/stable')
8
+ /**
9
+ * Provide an array of parameters to be used with a function, allow the function to be called later
10
+ * with the missing parameter.
11
+ * @memberOf module:functionHelpers
12
+ * @param {Function} fn - The function to be called
13
+ * @param {Array} params - The parameters to preload
14
+ * @param {number} [unassignedParam=0] - Position of missing parameter (zero indexed)
15
+ * @returns {module:functionHelpers~callWithMissing}
16
+ */
17
+ const preloadParams = (fn, params = [], unassignedParam = 0) => missing => {
18
+ params.splice(unassignedParam, 0, missing)
19
+ return fn(...params)
20
+ }
21
+ var _default = exports.default = preloadParams
@@ -1,48 +1,50 @@
1
- import 'core-js/stable';
2
- import 'regenerator-runtime/runtime';
3
- import { IsQueue, queuedItem } from '../arrays/BasicQueue';
4
- /**
5
- * Each time queue handle is called the passed function is added to the queue to be called when ready.
6
- * @typedef {Object} module:functionHelpers~queueedRunnable
7
- * @memberOf module:functionHelpers
8
- * @property {Object.<fn|args, Function|Array.<*>>} item - Stores the function and the arguments to apply to it when called
9
- * @property {Generator} generator - The generator instance which can be used to yield function results
10
- */
11
- export type queuedRunnable = {
12
- item: {
13
- fn: Function | queuedItem;
14
- args: any[];
15
- };
16
- generator: Generator;
17
- };
18
- /**
19
- * The pushed function is added to the queue to be called when ready.
20
- * @typedef {Function} module:functionHelpers~queueManagerPush
21
- * @memberOf module:functionHelpers
22
- * @param {Function} fn - A function to enqueue
23
- * @param {...*} args - Arguments to be passed to the function once it is ready
24
- * @returns {Promise}
25
- */
26
- export type queuePush = (fn: Function, ...args: any) => Promise<any>;
27
- /**
28
- * Each time queue handle is called the passed function is added to the queue to be called when ready.
29
- * @typedef {Object} module:functionHelpers~queueManagerHandle
30
- * @memberOf module:functionHelpers
31
- * @property {Function} start - Callable property that will disable paused state and run the next queue
32
- * @property {Function} pause - Callable property that will switch state to paused
33
- * @property {module:functionHelpers~queueManagerPush} push - Callable property that takes a function to add to the queue
34
- */
35
- export type queueManagerHandle = {
36
- start: () => void;
37
- pause: () => void;
38
- push: queuePush;
39
- };
40
- /**
41
- * Manage functions to run sequentially.
42
- * @memberOf module:functionHelpers
43
- * @param {IsQueue} [queue=[]] - The iterable that can be used to store queued functions
44
- * @returns {module:functionHelpers~queueManagerHandle}
45
- */
46
- declare const queueManager: (queue?: IsQueue<queuedItem>) => queueManagerHandle;
47
- export default queueManager;
1
+ import 'core-js/stable';
2
+ import 'regenerator-runtime/runtime';
3
+ import { IsQueue, queuedItem } from '../arrays/BasicQueue';
4
+ /**
5
+ * Each time queue handle is called the passed function is added to the queue to be called when ready.
6
+ * @typedef {Object} module:functionHelpers~queueedRunnable
7
+ * @memberOf module:functionHelpers
8
+ * @property {Object.<fn|args, Function|Array.<*>>} item - Stores the function and the arguments to apply to it when called
9
+ * @property {Generator} generator - The generator instance which can be used to yield function results
10
+ */
11
+ export type queuedRunnable = {
12
+ item: {
13
+ fn: Function | queuedItem;
14
+ args: any[];
15
+ };
16
+ generator: Generator;
17
+ };
18
+ /**
19
+ * The pushed function is added to the queue to be called when ready.
20
+ * @typedef {Function} module:functionHelpers~queueManagerPush
21
+ * @memberOf module:functionHelpers
22
+ * @param {Function} fn - A function to enqueue
23
+ * @param {...*} args - Arguments to be passed to the function once it is ready
24
+ * @returns {Promise}
25
+ */
26
+ export type queuePush = (fn: Function, ...args: any) => Promise<any>;
27
+ /**
28
+ * Each time queue handle is called the passed function is added to the queue to be called when ready.
29
+ * @typedef {Object} module:functionHelpers~queueManagerHandle
30
+ * @memberOf module:functionHelpers
31
+ * @property {Function} start - Callable property that will disable paused state and run the next queue
32
+ * @property {Function} pause - Callable property that will switch state to paused
33
+ * @property {module:functionHelpers~queueManagerPush} push - Callable property that takes a function to add to the queue
34
+ */
35
+ export type queueManagerHandle = {
36
+ start: () => void;
37
+ pause: () => void;
38
+ push: queuePush;
39
+ };
40
+ /**
41
+ * Manage functions to run sequentially.
42
+ * @memberOf module:functionHelpers
43
+ * @param {IsQueue|Array} [queue=null] - The queue to manage. Pass a plain array to have it converted into a
44
+ * {@link module:arrayHelpers.BasicQueue} automatically, or a custom queue implementing `IsQueue`; omit it (or pass
45
+ * `null`) to have one created for you.
46
+ * @returns {module:functionHelpers~queueManagerHandle}
47
+ */
48
+ declare const queueManager: (queue?: IsQueue<queuedItem>) => queueManagerHandle;
49
+ export default queueManager;
48
50
  //# sourceMappingURL=queueManager.d.ts.map
@@ -1,122 +1,124 @@
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} [queue=[]] - The iterable that can be used to store queued functions
17
- * @returns {module:functionHelpers~queueManagerHandle}
18
- */
19
- const queueManager = (queue = null) => {
20
- let isRunning = false
21
- let isPaused = true
22
- /**
23
- * Convert a function to a queueable object.
24
- * @param {Promise.resolve} resolve
25
- * @param {Promise.reject} reject
26
- * @param {Function} fn
27
- * @param {...*} args
28
- * @returns {queuedRunnable}
29
- */
30
- const makeQueuedRunnable = (resolve, reject, fn, ...args) => {
31
- const generator = (function * () {
32
- const item = yield
33
- return typeof item.fn === 'function' ? resolve(item.fn(...item.args)) : reject(item)
34
- }())
35
- // Prepare the generator to be used on the subsequent call
36
- generator.next()
37
- return {
38
- item: {
39
- fn: fn,
40
- args: args
41
- },
42
- generator: generator
43
- }
44
- }
45
- /**
46
- * After an item is run, THEN run this function to reset isRunning
47
- * @param {*} result
48
- * @returns {*}
49
- */
50
- const postRun = result => {
51
- isRunning = false
52
- runNextItem()
53
- return result
54
- }
55
- /**
56
- * When ready, runs the next queued runnable generator.
57
- * @returns {IteratorYieldResult|null}
58
- */
59
- const runNextItem = () => {
60
- if (!isPaused && !queue.empty() && !isRunning) {
61
- isRunning = true
62
- let toRun = queue.dequeue()
63
- if (typeof toRun === 'undefined' || toRun === null) {
64
- return null
65
- }
66
- if (typeof toRun === 'function') {
67
- new Promise((resolve, reject) => {
68
- toRun = makeQueuedRunnable(resolve, reject, toRun)
69
- runNextItem()
70
- }).then(postRun)
71
- }
72
- if ('success' in toRun) {
73
- // Some run responses return an object with 'success' property.
74
- console.info(toRun.success)
75
- return null
76
- }
77
- if (!toRun.generator || 'error' in toRun) {
78
- // Some run responses return an object with an 'error' property
79
- let errorMessage = 'Verify queued function implements "done()" state.'
80
- if ('error' in toRun && toRun.error) {
81
- errorMessage = `[${toRun.error}]: ${errorMessage}`
82
- }
83
- throw new Error(errorMessage)
84
- }
85
- if (toRun.generator && toRun.item) {
86
- // Ensure the returned result has both the generator and the item to be valid
87
- return toRun.generator.next(toRun.item)
88
- }
89
- }
90
- return null
91
- }
92
- /**
93
- * Add a function into the queue to be run when ready.
94
- * @param {Function} fn - The function to run when ready
95
- * @param {...*} args - Optional arguments to apply when the function is ready to be run
96
- * @returns Promise
97
- */
98
- const pushAnother = (fn, ...args) => new Promise((resolve, reject) => {
99
- queue.enqueue(makeQueuedRunnable(resolve, reject, fn, ...args))
100
- runNextItem()
101
- }).then(postRun)
102
- if (Array.isArray(queue)) {
103
- const queueArray = queue
104
- queue = (0, _makeBasicQueue.default)()
105
- queueArray.forEach(queued => pushAnother(queued))
106
- }
107
- if (queue === null) {
108
- queue = (0, _makeBasicQueue.default)()
109
- }
110
- runNextItem()
111
- return {
112
- start: () => {
113
- isPaused = false
114
- runNextItem()
115
- },
116
- pause: () => {
117
- isPaused = true
118
- },
119
- push: pushAnother
120
- }
121
- }
122
- 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('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,22 +1,22 @@
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 '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;
22
22
  //# sourceMappingURL=queueTimeout.d.ts.map
@@ -1,23 +1,23 @@
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('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,36 +1,36 @@
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 {int} [options.mapLimit=1000]
31
- * @param {int} [options.relevancyRange=100]
32
- * @returns {relevanceMap}
33
- */
34
- declare const relevancyFilter: (map: relevanceMap, { mapLimit, relevancyRange }?: relevancyFilterOptions) => relevanceMap;
35
- export default relevancyFilter;
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;
36
36
  //# sourceMappingURL=relevancyFilter.d.ts.map