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,12 +1,13 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
* @param {
|
|
8
|
-
* @
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
/**
|
|
4
|
+
* Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
|
|
5
|
+
* longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
|
|
6
|
+
* @memberOf module:objectDescriptors
|
|
7
|
+
* @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
|
|
8
|
+
* @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
|
|
9
|
+
* @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
|
|
10
|
+
*/
|
|
11
|
+
declare const checkClearValues: (descriptor: descriptor, keepValues?: boolean) => descriptor;
|
|
12
|
+
export default checkClearValues;
|
|
12
13
|
//# sourceMappingURL=checkClearValues.d.ts.map
|
|
@@ -1,20 +1,21 @@
|
|
|
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.map.js')
|
|
9
|
-
require('core-js/stable')
|
|
10
|
-
var _setValue = _interopRequireDefault(require('../objects/setValue'))
|
|
11
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
16
|
-
* @param {
|
|
17
|
-
* @
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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.map.js')
|
|
9
|
+
require('core-js/stable')
|
|
10
|
+
var _setValue = _interopRequireDefault(require('../objects/setValue'))
|
|
11
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
+
/**
|
|
13
|
+
* Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
|
|
14
|
+
* longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
|
|
15
|
+
* @memberOf module:objectDescriptors
|
|
16
|
+
* @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
|
|
17
|
+
* @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
|
|
18
|
+
* @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
|
|
19
|
+
*/
|
|
20
|
+
const checkClearValues = (descriptor, keepValues = false) => (0, _setValue.default)('details', descriptor.complete && !keepValues ? descriptor.details.map(detail => (0, _setValue.default)('value', [], detail)) : descriptor.details, descriptor)
|
|
21
|
+
var _default = exports.default = checkClearValues
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
/**
|
|
4
|
-
* Check if
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
/**
|
|
4
|
+
* Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
|
|
5
|
+
* had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
|
|
6
|
+
* @memberOf module:objectDescriptors
|
|
7
|
+
* @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
|
|
8
|
+
* @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
|
|
9
|
+
*/
|
|
10
|
+
declare const checkDescriptorComplete: (descriptor: descriptor) => descriptor;
|
|
11
|
+
export default checkDescriptorComplete;
|
|
11
12
|
//# sourceMappingURL=checkDescriptorComplete.d.ts.map
|
|
@@ -1,19 +1,20 @@
|
|
|
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/stable')
|
|
10
|
-
var _setValue = _interopRequireDefault(require('../objects/setValue'))
|
|
11
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
-
/**
|
|
13
|
-
* Check if
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
16
|
-
* @
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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/stable')
|
|
10
|
+
var _setValue = _interopRequireDefault(require('../objects/setValue'))
|
|
11
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
+
/**
|
|
13
|
+
* Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
|
|
14
|
+
* had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
|
|
15
|
+
* @memberOf module:objectDescriptors
|
|
16
|
+
* @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
|
|
17
|
+
* @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
|
|
18
|
+
*/
|
|
19
|
+
const checkDescriptorComplete = descriptor => (0, _setValue.default)('complete', descriptor.references.every(refId => [descriptor.details[refId].arrayReference, descriptor.details[refId].objectReference].some(ref => typeof ref === 'number')), descriptor)
|
|
20
|
+
var _default = exports.default = checkDescriptorComplete
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
/**
|
|
4
|
-
* Make a copy of an object descriptor so that the original will not be mutated.
|
|
5
|
-
* @memberOf module:objectDescriptors
|
|
6
|
-
* @param {module:objectDescriptors~descriptor} originalMap
|
|
7
|
-
* @returns {module:objectDescriptors~descriptor}
|
|
8
|
-
*/
|
|
9
|
-
declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
|
|
10
|
-
export default cloneDescriptor;
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
/**
|
|
4
|
+
* Make a copy of an object descriptor so that the original will not be mutated.
|
|
5
|
+
* @memberOf module:objectDescriptors
|
|
6
|
+
* @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
|
|
7
|
+
* @returns {module:objectDescriptors~descriptor} A new, independent copy.
|
|
8
|
+
*/
|
|
9
|
+
declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
|
|
10
|
+
export default cloneDescriptor;
|
|
11
11
|
//# sourceMappingURL=cloneDescriptor.d.ts.map
|
|
@@ -1,36 +1,36 @@
|
|
|
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.map.js')
|
|
9
|
-
require('core-js/stable')
|
|
10
|
-
var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
|
|
11
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
-
/**
|
|
13
|
-
* Make a copy of an object descriptor so that the original will not be mutated.
|
|
14
|
-
* @memberOf module:objectDescriptors
|
|
15
|
-
* @param {module:objectDescriptors~descriptor} originalMap
|
|
16
|
-
* @returns {module:objectDescriptors~descriptor}
|
|
17
|
-
*/
|
|
18
|
-
const cloneDescriptor = originalMap => {
|
|
19
|
-
const copyMap = {}
|
|
20
|
-
// @ts-ignore
|
|
21
|
-
copyMap.index = originalMap.index || 0
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
|
|
24
|
-
// @ts-ignore
|
|
25
|
-
copyMap.length = originalMap.length
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
copyMap.keys = originalMap.keys.map(key => key)
|
|
28
|
-
// @ts-ignore
|
|
29
|
-
copyMap.references = originalMap.references.map(reference => reference)
|
|
30
|
-
// @ts-ignore
|
|
31
|
-
copyMap.isArray = originalMap.isArray
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
copyMap.complete = originalMap.complete
|
|
34
|
-
return copyMap
|
|
35
|
-
}
|
|
36
|
-
var _default = exports.default = cloneDescriptor
|
|
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.map.js')
|
|
9
|
+
require('core-js/stable')
|
|
10
|
+
var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
|
|
11
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
+
/**
|
|
13
|
+
* Make a copy of an object descriptor so that the original will not be mutated.
|
|
14
|
+
* @memberOf module:objectDescriptors
|
|
15
|
+
* @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
|
|
16
|
+
* @returns {module:objectDescriptors~descriptor} A new, independent copy.
|
|
17
|
+
*/
|
|
18
|
+
const cloneDescriptor = originalMap => {
|
|
19
|
+
const copyMap = {}
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
copyMap.index = originalMap.index || 0
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
copyMap.length = originalMap.length
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
copyMap.keys = originalMap.keys.map(key => key)
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
copyMap.references = originalMap.references.map(reference => reference)
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
copyMap.isArray = originalMap.isArray
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
copyMap.complete = originalMap.complete
|
|
34
|
+
return copyMap
|
|
35
|
+
}
|
|
36
|
+
var _default = exports.default = cloneDescriptor
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
-
/**
|
|
4
|
-
* Get a new copy of an existing
|
|
5
|
-
* @memberOf module:objectDescriptors
|
|
6
|
-
* @param {module:objectDescriptors~descriptorDetail} originalDetail
|
|
7
|
-
* @returns {module:objectDescriptors~descriptorDetail}
|
|
8
|
-
*/
|
|
9
|
-
declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
|
|
10
|
-
export default cloneDescriptorDetail;
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
+
/**
|
|
4
|
+
* Get a new copy of an existing descriptor detail so that the original will not be mutated.
|
|
5
|
+
* @memberOf module:objectDescriptors
|
|
6
|
+
* @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
|
|
7
|
+
* @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
|
|
8
|
+
*/
|
|
9
|
+
declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
|
|
10
|
+
export default cloneDescriptorDetail;
|
|
11
11
|
//# sourceMappingURL=cloneDescriptorDetail.d.ts.map
|
|
@@ -1,27 +1,27 @@
|
|
|
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/modules/esnext.iterator.map.js')
|
|
10
|
-
require('core-js/stable')
|
|
11
|
-
var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
|
|
12
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
13
|
-
/**
|
|
14
|
-
* Get a new copy of an existing
|
|
15
|
-
* @memberOf module:objectDescriptors
|
|
16
|
-
* @param {module:objectDescriptors~descriptorDetail} originalDetail
|
|
17
|
-
* @returns {module:objectDescriptors~descriptorDetail}
|
|
18
|
-
*/
|
|
19
|
-
const cloneDescriptorDetail = originalDetail => {
|
|
20
|
-
const copyDetail = {};
|
|
21
|
-
(0, _objectKeys.default)(originalDetail).forEach(key => {
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
|
|
24
|
-
})
|
|
25
|
-
return copyDetail
|
|
26
|
-
}
|
|
27
|
-
var _default = exports.default = cloneDescriptorDetail
|
|
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/modules/esnext.iterator.map.js')
|
|
10
|
+
require('core-js/stable')
|
|
11
|
+
var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
|
|
12
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
13
|
+
/**
|
|
14
|
+
* Get a new copy of an existing descriptor detail so that the original will not be mutated.
|
|
15
|
+
* @memberOf module:objectDescriptors
|
|
16
|
+
* @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
|
|
17
|
+
* @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
|
|
18
|
+
*/
|
|
19
|
+
const cloneDescriptorDetail = originalDetail => {
|
|
20
|
+
const copyDetail = {};
|
|
21
|
+
(0, _objectKeys.default)(originalDetail).forEach(key => {
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
|
|
24
|
+
})
|
|
25
|
+
return copyDetail
|
|
26
|
+
}
|
|
27
|
+
var _default = exports.default = cloneDescriptorDetail
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
/**
|
|
4
|
-
* Check if two descriptors are the same or similar in that
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
/**
|
|
4
|
+
* Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
|
|
5
|
+
* one and their types line up - used to detect when a newly-described value actually matches a descriptor already
|
|
6
|
+
* in the map, so it can be pointed at instead of creating a duplicate.
|
|
7
|
+
* @memberOf module:objectDescriptors
|
|
8
|
+
* @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
|
|
9
|
+
* @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
|
|
10
|
+
* @returns {boolean} True if the descriptors describe a compatible shape.
|
|
11
|
+
*/
|
|
12
|
+
declare const compareDescriptor: (descriptor1: descriptor, descriptor2: descriptor) => boolean;
|
|
13
|
+
export default compareDescriptor;
|
|
12
14
|
//# sourceMappingURL=compareDescriptor.d.ts.map
|
|
@@ -1,31 +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/es.array.includes.js')
|
|
8
|
-
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
|
-
require('core-js/modules/esnext.iterator.every.js')
|
|
10
|
-
require('core-js/modules/esnext.iterator.find.js')
|
|
11
|
-
require('core-js/modules/esnext.iterator.some.js')
|
|
12
|
-
require('core-js/stable')
|
|
13
|
-
/**
|
|
14
|
-
* Check if two descriptors are the same or similar in that
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.default = void 0
|
|
7
|
+
require('core-js/modules/es.array.includes.js')
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
|
+
require('core-js/modules/esnext.iterator.every.js')
|
|
10
|
+
require('core-js/modules/esnext.iterator.find.js')
|
|
11
|
+
require('core-js/modules/esnext.iterator.some.js')
|
|
12
|
+
require('core-js/stable')
|
|
13
|
+
/**
|
|
14
|
+
* Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
|
|
15
|
+
* one and their types line up - used to detect when a newly-described value actually matches a descriptor already
|
|
16
|
+
* in the map, so it can be pointed at instead of creating a duplicate.
|
|
17
|
+
* @memberOf module:objectDescriptors
|
|
18
|
+
* @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
|
|
19
|
+
* @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
|
|
20
|
+
* @returns {boolean} True if the descriptors describe a compatible shape.
|
|
21
|
+
*/
|
|
22
|
+
const compareDescriptor = (descriptor1, descriptor2) => {
|
|
23
|
+
if (descriptor1.isArray !== descriptor2.isArray) {
|
|
24
|
+
return false
|
|
25
|
+
}
|
|
26
|
+
if (descriptor1.length === 0 || descriptor2.length === 0) {
|
|
27
|
+
return descriptor1.length === descriptor2.length
|
|
28
|
+
}
|
|
29
|
+
const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
|
|
30
|
+
const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
|
|
31
|
+
return smallerDescriptor.keys.every(key => largerDescriptor.keys.includes(key)) ? smallerDescriptor.details.every(detail => detail.type.some(type => largerDescriptor.details.find(foundDetail => foundDetail.key === detail.key).type.includes(type))) : false
|
|
32
|
+
}
|
|
33
|
+
var _default = exports.default = compareDescriptor
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptor } from './samples/descriptor';
|
|
3
|
-
export type describeableObject = Array<any> | {
|
|
4
|
-
[k: number | string]: any;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Trace
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptor } from './samples/descriptor';
|
|
3
|
+
export type describeableObject = Array<any> | {
|
|
4
|
+
[k: number | string]: any;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Trace a single object or array (not its nested objects/arrays - see
|
|
8
|
+
* {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
|
|
9
|
+
* structure and attributes.
|
|
10
|
+
* @memberOf module:objectDescriptors
|
|
11
|
+
* @param {Object|Array} object - The object or array to describe.
|
|
12
|
+
* @returns {module:objectDescriptors~descriptor}
|
|
13
|
+
*/
|
|
14
|
+
declare const describeObject: (object: describeableObject) => descriptor;
|
|
15
|
+
export default describeObject;
|
|
14
16
|
//# sourceMappingURL=describeObject.d.ts.map
|
|
@@ -1,51 +1,53 @@
|
|
|
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 _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
|
|
9
|
-
var _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
|
|
10
|
-
var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
|
|
11
|
-
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
-
/**
|
|
13
|
-
* Trace
|
|
14
|
-
* @
|
|
15
|
-
*
|
|
16
|
-
* @
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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 _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
|
|
9
|
+
var _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
|
|
10
|
+
var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
|
|
11
|
+
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
|
|
12
|
+
/**
|
|
13
|
+
* Trace a single object or array (not its nested objects/arrays - see
|
|
14
|
+
* {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
|
|
15
|
+
* structure and attributes.
|
|
16
|
+
* @memberOf module:objectDescriptors
|
|
17
|
+
* @param {Object|Array} object - The object or array to describe.
|
|
18
|
+
* @returns {module:objectDescriptors~descriptor}
|
|
19
|
+
*/
|
|
20
|
+
const describeObject = object => {
|
|
21
|
+
const descriptor = {
|
|
22
|
+
index: 0,
|
|
23
|
+
details: [],
|
|
24
|
+
length: 0,
|
|
25
|
+
keys: [],
|
|
26
|
+
references: [],
|
|
27
|
+
isArray: false,
|
|
28
|
+
complete: false
|
|
29
|
+
}
|
|
30
|
+
const keys = (0, _objectKeys.default)(object)
|
|
31
|
+
for (let i = 0; i < keys.length; ++i) {
|
|
32
|
+
const key = keys[i]
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
const newDetail = (0, _describeObjectDetail.default)(object[key], key, descriptor.length++)
|
|
35
|
+
if (typeof key === 'number' && descriptor.details.length) {
|
|
36
|
+
descriptor.details[0] = (0, _assignDescriptorDetail.default)(descriptor.details[0], newDetail)
|
|
37
|
+
descriptor.keys = [0]
|
|
38
|
+
if (newDetail.isReference) {
|
|
39
|
+
descriptor.references = [0]
|
|
40
|
+
}
|
|
41
|
+
continue
|
|
42
|
+
}
|
|
43
|
+
descriptor.details.push(newDetail)
|
|
44
|
+
descriptor.keys.push(newDetail.key)
|
|
45
|
+
if (newDetail.isReference) {
|
|
46
|
+
descriptor.references.push(newDetail.index)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
descriptor.isArray = Array.isArray(object)
|
|
50
|
+
descriptor.complete = !descriptor.references.length
|
|
51
|
+
return descriptor
|
|
52
|
+
}
|
|
53
|
+
var _default = exports.default = describeObject
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import 'core-js/stable';
|
|
2
|
-
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
-
/**
|
|
4
|
-
* Trace
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
* @param {
|
|
9
|
-
* @
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import 'core-js/stable';
|
|
2
|
+
import { descriptorDetail } from './samples/descriptorDetail';
|
|
3
|
+
/**
|
|
4
|
+
* Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
|
|
5
|
+
* references a nested object/array, etc.) - the per-property building block used by
|
|
6
|
+
* {@link module:objectDescriptors.describeObject}.
|
|
7
|
+
* @memberOf module:objectDescriptors
|
|
8
|
+
* @param {*} value - The property's value to describe.
|
|
9
|
+
* @param {string|number} [key=0] - The property name (or array index) this value belongs to.
|
|
10
|
+
* @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
|
|
11
|
+
* @returns {module:objectDescriptors~descriptorDetail}
|
|
12
|
+
*/
|
|
13
|
+
declare const describeObjectDetail: (value: any, key?: number | string, index?: number) => descriptorDetail;
|
|
14
|
+
export default describeObjectDetail;
|
|
13
15
|
//# sourceMappingURL=describeObjectDetail.d.ts.map
|