si-funciona 2.3.3 → 2.3.4
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.
- package/README.md +1337 -1244
- package/browser/siFunciona.js +24205 -24146
- package/dist/helpers/arrays/BasicQueue.d.ts +65 -61
- package/dist/helpers/arrays/BasicQueue.js +62 -59
- package/dist/helpers/arrays.d.ts +21 -20
- package/dist/helpers/arrays.js +33 -32
- package/dist/helpers/descriptors/assignDescriptor.d.ts +14 -11
- package/dist/helpers/descriptors/assignDescriptor.js +58 -55
- package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +14 -11
- package/dist/helpers/descriptors/assignDescriptorDetail.js +37 -34
- package/dist/helpers/descriptors/checkClearValues.d.ts +12 -11
- package/dist/helpers/descriptors/checkClearValues.js +21 -20
- package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +11 -10
- package/dist/helpers/descriptors/checkDescriptorComplete.js +20 -19
- package/dist/helpers/descriptors/cloneDescriptor.d.ts +10 -10
- package/dist/helpers/descriptors/cloneDescriptor.js +36 -36
- package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +10 -10
- package/dist/helpers/descriptors/cloneDescriptorDetail.js +27 -27
- package/dist/helpers/descriptors/compareDescriptor.d.ts +13 -11
- package/dist/helpers/descriptors/compareDescriptor.js +33 -31
- package/dist/helpers/descriptors/describeObject.d.ts +15 -13
- package/dist/helpers/descriptors/describeObject.js +53 -51
- package/dist/helpers/descriptors/describeObjectDetail.d.ts +14 -12
- package/dist/helpers/descriptors/describeObjectDetail.js +38 -36
- package/dist/helpers/descriptors/describeObjectMap.d.ts +36 -20
- package/dist/helpers/descriptors/describeObjectMap.js +108 -92
- package/dist/helpers/descriptors/nextReference.d.ts +13 -11
- package/dist/helpers/descriptors/nextReference.js +31 -29
- package/dist/helpers/descriptors/sameDescriptor.d.ts +13 -11
- package/dist/helpers/descriptors/sameDescriptor.js +22 -20
- package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -27
- package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -34
- package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -12
- package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -7
- package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -284
- package/dist/helpers/descriptors.d.ts +44 -28
- package/dist/helpers/descriptors.js +58 -42
- package/dist/helpers/functions/makeBasicQueue.d.ts +10 -10
- package/dist/helpers/functions/makeBasicQueue.js +19 -19
- package/dist/helpers/functions/queueManager.d.ts +49 -47
- package/dist/helpers/functions/queueManager.js +124 -122
- package/dist/helpers/functions/relevancyFilter.d.ts +35 -35
- package/dist/helpers/functions/relevancyFilter.js +34 -34
- package/dist/helpers/functions/trace.d.ts +14 -12
- package/dist/helpers/functions/trace.js +25 -23
- package/dist/helpers/numbers/lowestCommonDenominator.d.ts +10 -10
- package/dist/helpers/numbers/lowestCommonDenominator.js +20 -20
- package/dist/helpers/strings/camelCase.d.ts +9 -9
- package/dist/helpers/strings/camelCase.js +20 -20
- package/dist/helpers/strings/kabobCase.d.ts +9 -9
- package/dist/helpers/strings/kabobCase.js +19 -19
- package/dist/helpers/strings/makeFilepath.d.ts +9 -9
- package/dist/helpers/strings/makeFilepath.js +49 -49
- package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
- package/dist/helpers/strings/makeRelativePath.js +43 -43
- package/dist/helpers/strings/regexEscape.d.ts +8 -8
- package/dist/helpers/strings/regexEscape.js +15 -15
- package/dist/helpers/strings/snakeCase.d.ts +9 -9
- package/dist/helpers/strings/snakeCase.js +19 -19
- package/dist/helpers/strings/strAfter.d.ts +10 -10
- package/dist/helpers/strings/strAfter.js +19 -19
- package/dist/helpers/strings/strAfterLast.d.ts +10 -10
- package/dist/helpers/strings/strAfterLast.js +19 -19
- package/dist/helpers/strings/strBefore.d.ts +10 -10
- package/dist/helpers/strings/strBefore.js +19 -19
- package/dist/helpers/strings/strBeforeLast.d.ts +10 -10
- package/dist/helpers/strings/strBeforeLast.js +19 -19
- package/dist/helpers/strings/titleCase.d.ts +9 -9
- package/dist/helpers/strings/titleCase.js +20 -20
- package/dist/helpers/strings/ucFirst.d.ts +9 -9
- package/dist/helpers/strings/ucFirst.js +15 -15
- package/dist/helpers/strings/words.d.ts +10 -9
- package/dist/helpers/strings/words.js +16 -15
- package/package.json +1 -1
|
@@ -1,42 +1,58 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.default = void 0
|
|
7
|
-
require('core-js/stable')
|
|
8
|
-
var _assignDescriptor = _interopRequireDefault(require('./descriptors/assignDescriptor'))
|
|
9
|
-
var _assignDescriptorDetail = _interopRequireDefault(require('./descriptors/assignDescriptorDetail'))
|
|
10
|
-
var _checkClearValues = _interopRequireDefault(require('./descriptors/checkClearValues'))
|
|
11
|
-
var _checkDescriptorComplete = _interopRequireDefault(require('./descriptors/checkDescriptorComplete'))
|
|
12
|
-
var _cloneDescriptor = _interopRequireDefault(require('./descriptors/cloneDescriptor'))
|
|
13
|
-
var _cloneDescriptorDetail = _interopRequireDefault(require('./descriptors/cloneDescriptorDetail'))
|
|
14
|
-
var _compareDescriptor = _interopRequireDefault(require('./descriptors/compareDescriptor'))
|
|
15
|
-
var _describeObject = _interopRequireDefault(require('./descriptors/describeObject'))
|
|
16
|
-
var _describeObjectMap = _interopRequireDefault(require('./descriptors/describeObjectMap'))
|
|
17
|
-
var _describeObjectDetail = _interopRequireDefault(require('./descriptors/describeObjectDetail'))
|
|
18
|
-
var _nextReference = _interopRequireDefault(require('./descriptors/nextReference'))
|
|
19
|
-
var _sameDescriptor = _interopRequireDefault(require('./descriptors/sameDescriptor'))
|
|
20
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.default = void 0
|
|
7
|
+
require('core-js/stable')
|
|
8
|
+
var _assignDescriptor = _interopRequireDefault(require('./descriptors/assignDescriptor'))
|
|
9
|
+
var _assignDescriptorDetail = _interopRequireDefault(require('./descriptors/assignDescriptorDetail'))
|
|
10
|
+
var _checkClearValues = _interopRequireDefault(require('./descriptors/checkClearValues'))
|
|
11
|
+
var _checkDescriptorComplete = _interopRequireDefault(require('./descriptors/checkDescriptorComplete'))
|
|
12
|
+
var _cloneDescriptor = _interopRequireDefault(require('./descriptors/cloneDescriptor'))
|
|
13
|
+
var _cloneDescriptorDetail = _interopRequireDefault(require('./descriptors/cloneDescriptorDetail'))
|
|
14
|
+
var _compareDescriptor = _interopRequireDefault(require('./descriptors/compareDescriptor'))
|
|
15
|
+
var _describeObject = _interopRequireDefault(require('./descriptors/describeObject'))
|
|
16
|
+
var _describeObjectMap = _interopRequireDefault(require('./descriptors/describeObjectMap'))
|
|
17
|
+
var _describeObjectDetail = _interopRequireDefault(require('./descriptors/describeObjectDetail'))
|
|
18
|
+
var _nextReference = _interopRequireDefault(require('./descriptors/nextReference'))
|
|
19
|
+
var _sameDescriptor = _interopRequireDefault(require('./descriptors/sameDescriptor'))
|
|
20
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
21
|
+
/**
|
|
22
|
+
* A "descriptor" is a flat, serializable snapshot of an object or array's shape: for each property, its type(s),
|
|
23
|
+
* whether it's nullable, and - if the property's own value is itself an object/array - a reference to that nested
|
|
24
|
+
* value's own descriptor elsewhere in the same list, rather than nesting descriptors inside descriptors. This flat,
|
|
25
|
+
* reference-based structure is what lets these utilities walk deeply nested and even circular object graphs (an
|
|
26
|
+
* object that contains itself, directly or indirectly) without infinite recursion, since a value that's already
|
|
27
|
+
* been described is simply pointed to again instead of re-described.
|
|
28
|
+
*
|
|
29
|
+
* Start with {@link module:objectDescriptors.describeObjectMap}, which takes any real object or array and produces
|
|
30
|
+
* this flat list of descriptors for you - the other functions here (comparing, merging, cloning descriptors) are
|
|
31
|
+
* building blocks used internally, or useful once you already have descriptors to work with directly.
|
|
32
|
+
*
|
|
33
|
+
* The concrete use this module has earned its keep on: describing two objects and comparing the results tells
|
|
34
|
+
* you whether they're the same shape and values even when they're different references entirely (see
|
|
35
|
+
* {@link module:objectDescriptors.sameDescriptor}/{@link module:objectDescriptors.compareDescriptor}) - useful
|
|
36
|
+
* anywhere you need to check that two objects genuinely match without caring whether they're literally the same
|
|
37
|
+
* instance. A descriptor also doubles as a flat, structured summary of an object's shape, which can be handy for
|
|
38
|
+
* discussion or assessment purposes (e.g. describing what an object looks like without dumping the whole thing).
|
|
39
|
+
* @file
|
|
40
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
41
|
+
* @version 1.0.0
|
|
42
|
+
* @module objectDescriptors
|
|
43
|
+
* @memberOf module:siFunciona
|
|
44
|
+
*/
|
|
45
|
+
var _default = exports.default = {
|
|
46
|
+
assignDescriptor: _assignDescriptor.default,
|
|
47
|
+
assignDescriptorDetail: _assignDescriptorDetail.default,
|
|
48
|
+
checkClearValues: _checkClearValues.default,
|
|
49
|
+
checkDescriptorComplete: _checkDescriptorComplete.default,
|
|
50
|
+
cloneDescriptor: _cloneDescriptor.default,
|
|
51
|
+
cloneDescriptorDetail: _cloneDescriptorDetail.default,
|
|
52
|
+
compareDescriptor: _compareDescriptor.default,
|
|
53
|
+
describeObject: _describeObject.default,
|
|
54
|
+
describeObjectMap: _describeObjectMap.default,
|
|
55
|
+
describeObjectDetail: _describeObjectDetail.default,
|
|
56
|
+
nextReference: _nextReference.default,
|
|
57
|
+
sameDescriptor: _sameDescriptor.default
|
|
58
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { IsQueue, queuedItem } from '../arrays/BasicQueue';
|
|
3
|
-
/**
|
|
4
|
-
* Create an instance of a basic queue.
|
|
5
|
-
* @memberOf module:functionHelpers
|
|
6
|
-
* @param {Array} initialQueue
|
|
7
|
-
* @returns {IsQueue}
|
|
8
|
-
*/
|
|
9
|
-
declare const makeBasicQueue: (initialQueue?: queuedItem[] | any) => IsQueue<any>;
|
|
10
|
-
export default makeBasicQueue;
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { IsQueue, queuedItem } from '../arrays/BasicQueue';
|
|
3
|
+
/**
|
|
4
|
+
* Create an instance of a basic queue.
|
|
5
|
+
* @memberOf module:functionHelpers
|
|
6
|
+
* @param {Array} [initialQueue=[]] - Items to pre-populate the queue with, in order.
|
|
7
|
+
* @returns {IsQueue}
|
|
8
|
+
*/
|
|
9
|
+
declare const makeBasicQueue: (initialQueue?: queuedItem[] | any) => IsQueue<any>;
|
|
10
|
+
export default makeBasicQueue;
|
|
11
11
|
//# sourceMappingURL=makeBasicQueue.d.ts.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.default = void 0
|
|
7
|
-
require('core-js/stable')
|
|
8
|
-
var _BasicQueue = _interopRequireDefault(require('../arrays/BasicQueue'))
|
|
9
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
10
|
-
/**
|
|
11
|
-
* Create an instance of a basic queue.
|
|
12
|
-
* @memberOf module:functionHelpers
|
|
13
|
-
* @param {Array} initialQueue
|
|
14
|
-
* @returns {IsQueue}
|
|
15
|
-
*/
|
|
16
|
-
const makeBasicQueue = (initialQueue = []) => {
|
|
17
|
-
return new _BasicQueue.default(initialQueue)
|
|
18
|
-
}
|
|
19
|
-
var _default = exports.default = makeBasicQueue
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.default = void 0
|
|
7
|
+
require('core-js/stable')
|
|
8
|
+
var _BasicQueue = _interopRequireDefault(require('../arrays/BasicQueue'))
|
|
9
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
10
|
+
/**
|
|
11
|
+
* Create an instance of a basic queue.
|
|
12
|
+
* @memberOf module:functionHelpers
|
|
13
|
+
* @param {Array} [initialQueue=[]] - Items to pre-populate the queue with, in order.
|
|
14
|
+
* @returns {IsQueue}
|
|
15
|
+
*/
|
|
16
|
+
const makeBasicQueue = (initialQueue = []) => {
|
|
17
|
+
return new _BasicQueue.default(initialQueue)
|
|
18
|
+
}
|
|
19
|
+
var _default = exports.default = makeBasicQueue
|
|
@@ -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=
|
|
44
|
-
* @
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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=
|
|
17
|
-
* @
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
* @param {
|
|
27
|
-
* @param {
|
|
28
|
-
* @
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
*
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
*
|
|
96
|
-
* @
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
queueArray
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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,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 {
|
|
31
|
-
* @param {
|
|
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
|