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,62 +1,66 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
export type callableLater = {
|
|
3
|
-
fn?: Function;
|
|
4
|
-
args?: Array<any>;
|
|
5
|
-
};
|
|
6
|
-
export type queuedItem = {
|
|
7
|
-
item: callableLater | any;
|
|
8
|
-
generator: Generator;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Define the format of a queue
|
|
12
|
-
* @
|
|
13
|
-
* @
|
|
14
|
-
* @
|
|
15
|
-
* @method
|
|
16
|
-
* @method
|
|
17
|
-
* @method
|
|
18
|
-
* @method
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
export type callableLater = {
|
|
3
|
+
fn?: Function;
|
|
4
|
+
args?: Array<any>;
|
|
5
|
+
};
|
|
6
|
+
export type queuedItem = {
|
|
7
|
+
item: callableLater | any;
|
|
8
|
+
generator: Generator;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Define the format of a queue.
|
|
12
|
+
* @typedef {Object} IsQueue
|
|
13
|
+
* @memberOf module:arrayHelpers
|
|
14
|
+
* @property {Array|*} innerList - Stores the data for the queue
|
|
15
|
+
* @method dequeue - Pulls the first item from the queue
|
|
16
|
+
* @method empty - Check if the queue is empty
|
|
17
|
+
* @method enqueue - Adds and item to the end of the queue
|
|
18
|
+
* @method peek - Get the next queue item but does not remove it
|
|
19
|
+
* @method size - Get the size of the queue
|
|
20
|
+
*/
|
|
21
|
+
export interface IsQueue<queuedItem> {
|
|
22
|
+
dequeue: () => queuedItem | null;
|
|
23
|
+
empty: () => boolean;
|
|
24
|
+
enqueue: (data: queuedItem) => void;
|
|
25
|
+
peek: () => queuedItem | null;
|
|
26
|
+
size: () => number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Class BasicQueue is a functional example of a queue to be used with queueManager.
|
|
30
|
+
* @memberOf module:arrayHelpers
|
|
31
|
+
*/
|
|
32
|
+
declare class BasicQueue implements IsQueue<queuedItem> {
|
|
33
|
+
private readonly innerList;
|
|
34
|
+
/**
|
|
35
|
+
* @param {Array} [innerList=[]] - Items to pre-populate the queue with, in order.
|
|
36
|
+
*/
|
|
37
|
+
constructor(innerList?: queuedItem[] | any);
|
|
38
|
+
/**
|
|
39
|
+
* Remove and return the next item in the queue
|
|
40
|
+
* @returns {queuedItem|*}
|
|
41
|
+
*/
|
|
42
|
+
dequeue(): queuedItem | any;
|
|
43
|
+
/**
|
|
44
|
+
* Check if the queue is empty
|
|
45
|
+
* @returns {boolean}
|
|
46
|
+
*/
|
|
47
|
+
empty(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Add an item to the end of the queue
|
|
50
|
+
* @param {queuedItem|*} data
|
|
51
|
+
* @returns {BasicQueue}
|
|
52
|
+
*/
|
|
53
|
+
enqueue(data: queuedItem | any): IsQueue<queuedItem>;
|
|
54
|
+
/**
|
|
55
|
+
* Retrieve the next item from the queue
|
|
56
|
+
* @returns {queuedItem|*}
|
|
57
|
+
*/
|
|
58
|
+
peek(): queuedItem | any;
|
|
59
|
+
/**
|
|
60
|
+
* Get the quantity of items in the queue
|
|
61
|
+
* @returns {number}
|
|
62
|
+
*/
|
|
63
|
+
size(): number;
|
|
64
|
+
}
|
|
65
|
+
export default BasicQueue;
|
|
62
66
|
//# sourceMappingURL=BasicQueue.d.ts.map
|
|
@@ -1,59 +1,62 @@
|
|
|
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
|
-
* Class BasicQueue is a functional example of a queue to be used with queueManager.
|
|
10
|
-
* @memberOf module:arrayHelpers
|
|
11
|
-
*/
|
|
12
|
-
class BasicQueue {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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
|
+
* Class BasicQueue is a functional example of a queue to be used with queueManager.
|
|
10
|
+
* @memberOf module:arrayHelpers
|
|
11
|
+
*/
|
|
12
|
+
class BasicQueue {
|
|
13
|
+
/**
|
|
14
|
+
* @param {Array} [innerList=[]] - Items to pre-populate the queue with, in order.
|
|
15
|
+
*/
|
|
16
|
+
constructor (innerList = []) {
|
|
17
|
+
this.innerList = innerList
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Remove and return the next item in the queue
|
|
22
|
+
* @returns {queuedItem|*}
|
|
23
|
+
*/
|
|
24
|
+
dequeue () {
|
|
25
|
+
return this.innerList.shift()
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Check if the queue is empty
|
|
30
|
+
* @returns {boolean}
|
|
31
|
+
*/
|
|
32
|
+
empty () {
|
|
33
|
+
return !this.size()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Add an item to the end of the queue
|
|
38
|
+
* @param {queuedItem|*} data
|
|
39
|
+
* @returns {BasicQueue}
|
|
40
|
+
*/
|
|
41
|
+
enqueue (data) {
|
|
42
|
+
this.innerList.push(data)
|
|
43
|
+
return this
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Retrieve the next item from the queue
|
|
48
|
+
* @returns {queuedItem|*}
|
|
49
|
+
*/
|
|
50
|
+
peek () {
|
|
51
|
+
return this.empty() ? null : this.innerList[0]
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Get the quantity of items in the queue
|
|
56
|
+
* @returns {number}
|
|
57
|
+
*/
|
|
58
|
+
size () {
|
|
59
|
+
return this.innerList.length
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
var _default = exports.default = BasicQueue
|
package/dist/helpers/arrays.d.ts
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for building, merging, deduplicating and comparing arrays, plus a basic FIFO queue (BasicQueue) for
|
|
3
|
+
* use with functionHelpers' queueManager/queueTimeout.
|
|
4
|
+
* @file
|
|
5
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
6
|
+
* @version 1.0.0
|
|
7
|
+
* @module arrayHelpers
|
|
8
|
+
* @memberOf module:siFunciona
|
|
9
|
+
*/
|
|
10
|
+
import 'core-js/stable';
|
|
11
|
+
import BasicQueue from './arrays/BasicQueue';
|
|
12
|
+
declare const _default: {
|
|
13
|
+
addUniqueToArray: (item: any, array: Array<any>) => Array<any>;
|
|
14
|
+
BasicQueue: typeof BasicQueue;
|
|
15
|
+
buildArray: (item: any, length: number) => Array<any>;
|
|
16
|
+
buildArrayOfReferences: (item: any, length: number) => Array<any>;
|
|
17
|
+
compareArrays: (...arrays: Array<Array<any>>) => import("./arrays/compareArrays").compareArrayResultMap;
|
|
18
|
+
mergeArrays: (...arrays: Array<Array<any>>) => Array<any>;
|
|
19
|
+
uniqueArray: (array: Array<any>) => Array<any>;
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
21
22
|
//# sourceMappingURL=arrays.d.ts.map
|
package/dist/helpers/arrays.js
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
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 _addUniqueToArray = _interopRequireDefault(require('./arrays/addUniqueToArray'))
|
|
9
|
-
var _BasicQueue = _interopRequireDefault(require('./arrays/BasicQueue'))
|
|
10
|
-
var _buildArray = _interopRequireDefault(require('./arrays/buildArray'))
|
|
11
|
-
var _buildArrayOfReferences = _interopRequireDefault(require('./arrays/buildArrayOfReferences'))
|
|
12
|
-
var _compareArrays = _interopRequireDefault(require('./arrays/compareArrays'))
|
|
13
|
-
var _mergeArrays = _interopRequireDefault(require('./arrays/mergeArrays'))
|
|
14
|
-
var _uniqueArray = _interopRequireDefault(require('./arrays/uniqueArray'))
|
|
15
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
20
|
-
* @
|
|
21
|
-
* @
|
|
22
|
-
* @
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 _addUniqueToArray = _interopRequireDefault(require('./arrays/addUniqueToArray'))
|
|
9
|
+
var _BasicQueue = _interopRequireDefault(require('./arrays/BasicQueue'))
|
|
10
|
+
var _buildArray = _interopRequireDefault(require('./arrays/buildArray'))
|
|
11
|
+
var _buildArrayOfReferences = _interopRequireDefault(require('./arrays/buildArrayOfReferences'))
|
|
12
|
+
var _compareArrays = _interopRequireDefault(require('./arrays/compareArrays'))
|
|
13
|
+
var _mergeArrays = _interopRequireDefault(require('./arrays/mergeArrays'))
|
|
14
|
+
var _uniqueArray = _interopRequireDefault(require('./arrays/uniqueArray'))
|
|
15
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
16
|
+
/**
|
|
17
|
+
* Utilities for building, merging, deduplicating and comparing arrays, plus a basic FIFO queue (BasicQueue) for
|
|
18
|
+
* use with functionHelpers' queueManager/queueTimeout.
|
|
19
|
+
* @file
|
|
20
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
21
|
+
* @version 1.0.0
|
|
22
|
+
* @module arrayHelpers
|
|
23
|
+
* @memberOf module:siFunciona
|
|
24
|
+
*/
|
|
25
|
+
var _default = exports.default = {
|
|
26
|
+
addUniqueToArray: _addUniqueToArray.default,
|
|
27
|
+
BasicQueue: _BasicQueue.default,
|
|
28
|
+
buildArray: _buildArray.default,
|
|
29
|
+
buildArrayOfReferences: _buildArrayOfReferences.default,
|
|
30
|
+
compareArrays: _compareArrays.default,
|
|
31
|
+
mergeArrays: _mergeArrays.default,
|
|
32
|
+
uniqueArray: _uniqueArray.default
|
|
33
|
+
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
/**
|
|
4
|
-
* Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
/**
|
|
4
|
+
* Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
|
|
5
|
+
* Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
|
|
6
|
+
* different types), rather than replacing it outright.
|
|
7
|
+
* @memberOf module:objectDescriptors
|
|
8
|
+
* @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
|
|
9
|
+
* clone is merged and returned).
|
|
10
|
+
* @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
|
|
11
|
+
* @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
|
|
12
|
+
*/
|
|
13
|
+
declare const assignDescriptor: (originalMap: descriptor, ...descriptors: Array<descriptor>) => descriptor;
|
|
14
|
+
export default assignDescriptor;
|
|
12
15
|
//# sourceMappingURL=assignDescriptor.d.ts.map
|
|
@@ -1,55 +1,58 @@
|
|
|
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.every.js')
|
|
9
|
-
require('core-js/modules/esnext.iterator.filter.js')
|
|
10
|
-
require('core-js/modules/esnext.iterator.find.js')
|
|
11
|
-
require('core-js/modules/esnext.iterator.for-each.js')
|
|
12
|
-
require('core-js/modules/esnext.iterator.map.js')
|
|
13
|
-
require('core-js/modules/esnext.iterator.reduce.js')
|
|
14
|
-
require('core-js/stable')
|
|
15
|
-
var _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
|
|
16
|
-
var _cloneDescriptor = _interopRequireDefault(require('./cloneDescriptor'))
|
|
17
|
-
var _compareArrays = _interopRequireDefault(require('../arrays/compareArrays'))
|
|
18
|
-
var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
|
|
19
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
20
|
-
/**
|
|
21
|
-
* Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
assignedDescriptor.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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.every.js')
|
|
9
|
+
require('core-js/modules/esnext.iterator.filter.js')
|
|
10
|
+
require('core-js/modules/esnext.iterator.find.js')
|
|
11
|
+
require('core-js/modules/esnext.iterator.for-each.js')
|
|
12
|
+
require('core-js/modules/esnext.iterator.map.js')
|
|
13
|
+
require('core-js/modules/esnext.iterator.reduce.js')
|
|
14
|
+
require('core-js/stable')
|
|
15
|
+
var _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
|
|
16
|
+
var _cloneDescriptor = _interopRequireDefault(require('./cloneDescriptor'))
|
|
17
|
+
var _compareArrays = _interopRequireDefault(require('../arrays/compareArrays'))
|
|
18
|
+
var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
|
|
19
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
20
|
+
/**
|
|
21
|
+
* Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
|
|
22
|
+
* Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
|
|
23
|
+
* different types), rather than replacing it outright.
|
|
24
|
+
* @memberOf module:objectDescriptors
|
|
25
|
+
* @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
|
|
26
|
+
* clone is merged and returned).
|
|
27
|
+
* @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
|
|
28
|
+
* @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
|
|
29
|
+
*/
|
|
30
|
+
const assignDescriptor = (originalMap, ...descriptors) => descriptors.reduce((assignedDescriptor, descriptor) => {
|
|
31
|
+
const detailsDiff = (0, _compareArrays.default)(assignedDescriptor.keys, descriptor.keys)
|
|
32
|
+
detailsDiff.forEach(diff => {
|
|
33
|
+
const existingDetail = assignedDescriptor.details.find(detail => detail.key === diff.value)
|
|
34
|
+
const newDetail = descriptor.details.find(detail => detail.key === diff.value)
|
|
35
|
+
if (diff.result.every(result => result === 0)) {
|
|
36
|
+
assignedDescriptor.details[existingDetail.index] = (0, _assignDescriptorDetail.default)(existingDetail, newDetail)
|
|
37
|
+
return assignedDescriptor
|
|
38
|
+
}
|
|
39
|
+
const useDetail = diff.result[0] > 0 ? existingDetail : newDetail
|
|
40
|
+
if (!useDetail) {
|
|
41
|
+
assignedDescriptor.details[existingDetail.index].optional = true
|
|
42
|
+
return assignedDescriptor
|
|
43
|
+
}
|
|
44
|
+
const useIndex = diff.result[0] > 0 ? useDetail.index : assignedDescriptor.length
|
|
45
|
+
assignedDescriptor.details[useIndex] = Object.assign({}, useDetail, {
|
|
46
|
+
index: useIndex,
|
|
47
|
+
optional: true
|
|
48
|
+
})
|
|
49
|
+
assignedDescriptor.length = assignedDescriptor.length < assignedDescriptor.details.length ? assignedDescriptor.details.length : assignedDescriptor.length
|
|
50
|
+
return assignedDescriptor
|
|
51
|
+
})
|
|
52
|
+
assignedDescriptor.keys = (0, _uniqueArray.default)(assignedDescriptor.details.map(detail => detail.key))
|
|
53
|
+
assignedDescriptor.references = (0, _uniqueArray.default)(assignedDescriptor.details.filter(detail => detail.isReference).map(detail => detail.index))
|
|
54
|
+
assignedDescriptor.isArray = assignedDescriptor.length ? assignedDescriptor.details.every(detail => typeof detail.key === 'number') : assignedDescriptor.isArray
|
|
55
|
+
assignedDescriptor.complete = !assignedDescriptor.references.length || assignedDescriptor.complete || descriptor.complete
|
|
56
|
+
return assignedDescriptor
|
|
57
|
+
}, (0, _cloneDescriptor.default)(originalMap))
|
|
58
|
+
var _default = exports.default = assignDescriptor
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
-
/**
|
|
4
|
-
* Assign properties from other details onto an existing detail.
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
+
/**
|
|
4
|
+
* Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
|
|
5
|
+
* OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
|
|
6
|
+
* {@link module:objectDescriptors.assignDescriptor}.
|
|
7
|
+
* @memberOf module:objectDescriptors
|
|
8
|
+
* @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
|
|
9
|
+
* a clone is merged and returned).
|
|
10
|
+
* @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
|
|
11
|
+
* @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
|
|
12
|
+
*/
|
|
13
|
+
declare const assignDescriptorDetail: (originalDetail: descriptorDetail, ...details: Array<descriptorDetail>) => descriptorDetail;
|
|
14
|
+
export default assignDescriptorDetail;
|
|
12
15
|
//# sourceMappingURL=assignDescriptorDetail.d.ts.map
|
|
@@ -1,34 +1,37 @@
|
|
|
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.reduce.js')
|
|
9
|
-
require('core-js/stable')
|
|
10
|
-
var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
|
|
11
|
-
var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
|
|
12
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
13
|
-
/**
|
|
14
|
-
* Assign properties from other details onto an existing detail.
|
|
15
|
-
*
|
|
16
|
-
* @
|
|
17
|
-
* @
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
existingDetail.
|
|
25
|
-
existingDetail.
|
|
26
|
-
existingDetail.
|
|
27
|
-
existingDetail.
|
|
28
|
-
existingDetail.
|
|
29
|
-
existingDetail.
|
|
30
|
-
existingDetail.
|
|
31
|
-
existingDetail.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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.reduce.js')
|
|
9
|
+
require('core-js/stable')
|
|
10
|
+
var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
|
|
11
|
+
var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
|
|
12
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
13
|
+
/**
|
|
14
|
+
* Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
|
|
15
|
+
* OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
|
|
16
|
+
* {@link module:objectDescriptors.assignDescriptor}.
|
|
17
|
+
* @memberOf module:objectDescriptors
|
|
18
|
+
* @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
|
|
19
|
+
* a clone is merged and returned).
|
|
20
|
+
* @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
|
|
21
|
+
* @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
|
|
22
|
+
*/
|
|
23
|
+
const assignDescriptorDetail = (originalDetail, ...details) => details.reduce((existingDetail, newDetail) => {
|
|
24
|
+
existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
|
|
25
|
+
existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
|
|
26
|
+
existingDetail.nullable = existingDetail.nullable || newDetail.nullable
|
|
27
|
+
existingDetail.optional = existingDetail.optional || newDetail.optional
|
|
28
|
+
existingDetail.circular = existingDetail.circular || newDetail.circular
|
|
29
|
+
existingDetail.isReference = existingDetail.isReference || newDetail.isReference
|
|
30
|
+
existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
|
|
31
|
+
existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
|
|
32
|
+
existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
|
|
33
|
+
existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
|
|
34
|
+
existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
|
|
35
|
+
return existingDetail
|
|
36
|
+
}, (0, _cloneDescriptorDetail.default)(originalDetail))
|
|
37
|
+
var _default = exports.default = assignDescriptorDetail
|