si-funciona 2.6.1 → 2.7.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 (171) hide show
  1. package/README.md +48 -19
  2. package/browser/siFunciona.js +80 -77
  3. package/browser/siFunciona.min.js +1 -1
  4. package/dist/helpers/arrays/BasicQueue.d.ts +64 -64
  5. package/dist/helpers/arrays/BasicQueue.js +61 -61
  6. package/dist/helpers/arrays/addUniqueToArray.d.ts +9 -9
  7. package/dist/helpers/arrays/addUniqueToArray.js +16 -16
  8. package/dist/helpers/arrays/buildArray.d.ts +10 -10
  9. package/dist/helpers/arrays/buildArray.js +25 -25
  10. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +10 -10
  11. package/dist/helpers/arrays/buildArrayOfReferences.js +22 -22
  12. package/dist/helpers/arrays/compareArrays.d.ts +96 -96
  13. package/dist/helpers/arrays/compareArrays.js +96 -96
  14. package/dist/helpers/arrays/mergeArrays.d.ts +8 -8
  15. package/dist/helpers/arrays/mergeArrays.js +21 -21
  16. package/dist/helpers/arrays/uniqueArray.d.ts +8 -8
  17. package/dist/helpers/arrays/uniqueArray.js +16 -16
  18. package/dist/helpers/arrays.d.ts +27 -27
  19. package/dist/helpers/arrays.js +74 -74
  20. package/dist/helpers/descriptors/assignDescriptor.d.ts +13 -13
  21. package/dist/helpers/descriptors/assignDescriptor.js +57 -57
  22. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +13 -13
  23. package/dist/helpers/descriptors/assignDescriptorDetail.js +36 -36
  24. package/dist/helpers/descriptors/checkClearValues.d.ts +11 -11
  25. package/dist/helpers/descriptors/checkClearValues.js +20 -20
  26. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +10 -10
  27. package/dist/helpers/descriptors/checkDescriptorComplete.js +19 -19
  28. package/dist/helpers/descriptors/cloneDescriptor.d.ts +9 -9
  29. package/dist/helpers/descriptors/cloneDescriptor.js +35 -35
  30. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +9 -9
  31. package/dist/helpers/descriptors/cloneDescriptorDetail.js +26 -26
  32. package/dist/helpers/descriptors/compareDescriptor.d.ts +12 -12
  33. package/dist/helpers/descriptors/compareDescriptor.js +32 -32
  34. package/dist/helpers/descriptors/describeObject.d.ts +14 -14
  35. package/dist/helpers/descriptors/describeObject.js +52 -52
  36. package/dist/helpers/descriptors/describeObjectDetail.d.ts +13 -13
  37. package/dist/helpers/descriptors/describeObjectDetail.js +37 -37
  38. package/dist/helpers/descriptors/describeObjectMap.d.ts +35 -35
  39. package/dist/helpers/descriptors/describeObjectMap.js +107 -107
  40. package/dist/helpers/descriptors/nextReference.d.ts +12 -12
  41. package/dist/helpers/descriptors/nextReference.js +30 -30
  42. package/dist/helpers/descriptors/sameDescriptor.d.ts +12 -12
  43. package/dist/helpers/descriptors/sameDescriptor.js +21 -21
  44. package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -34
  45. package/dist/helpers/descriptors/samples/descriptor.js +22 -22
  46. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -42
  47. package/dist/helpers/descriptors/samples/descriptorDetail.js +24 -24
  48. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -16
  49. package/dist/helpers/descriptors/samples/descriptorMap.js +14 -14
  50. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -10
  51. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -287
  52. package/dist/helpers/descriptors.d.ts +56 -56
  53. package/dist/helpers/descriptors.js +129 -129
  54. package/dist/helpers/functions/callWithParams.d.ts +10 -10
  55. package/dist/helpers/functions/callWithParams.js +16 -16
  56. package/dist/helpers/functions/curry.d.ts +10 -10
  57. package/dist/helpers/functions/curry.js +16 -16
  58. package/dist/helpers/functions/delay.d.ts +20 -20
  59. package/dist/helpers/functions/delay.js +31 -31
  60. package/dist/helpers/functions/makeBasicQueue.d.ts +9 -9
  61. package/dist/helpers/functions/makeBasicQueue.js +18 -18
  62. package/dist/helpers/functions/onBodyLoad.d.ts +9 -9
  63. package/dist/helpers/functions/onBodyLoad.js +75 -75
  64. package/dist/helpers/functions/pipe.d.ts +9 -9
  65. package/dist/helpers/functions/pipe.js +17 -17
  66. package/dist/helpers/functions/preloadParams.d.ts +19 -19
  67. package/dist/helpers/functions/preloadParams.js +20 -20
  68. package/dist/helpers/functions/queueManager.d.ts +48 -48
  69. package/dist/helpers/functions/queueManager.js +123 -123
  70. package/dist/helpers/functions/queueTimeout.d.ts +20 -20
  71. package/dist/helpers/functions/queueTimeout.js +22 -22
  72. package/dist/helpers/functions/relevancyFilter.d.ts +34 -34
  73. package/dist/helpers/functions/relevancyFilter.js +33 -33
  74. package/dist/helpers/functions/trace.d.ts +13 -13
  75. package/dist/helpers/functions/trace.js +24 -24
  76. package/dist/helpers/functions.d.ts +40 -40
  77. package/dist/helpers/functions.js +105 -105
  78. package/dist/helpers/numbers/absoluteMax.d.ts +9 -9
  79. package/dist/helpers/numbers/absoluteMax.js +15 -15
  80. package/dist/helpers/numbers/absoluteMin.d.ts +9 -9
  81. package/dist/helpers/numbers/absoluteMin.js +15 -15
  82. package/dist/helpers/numbers/compare.d.ts +12 -12
  83. package/dist/helpers/numbers/compare.js +18 -18
  84. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +9 -9
  85. package/dist/helpers/numbers/greatestCommonDivisor.js +15 -15
  86. package/dist/helpers/numbers/leastCommonMultiple.d.ts +9 -9
  87. package/dist/helpers/numbers/leastCommonMultiple.js +17 -17
  88. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +9 -9
  89. package/dist/helpers/numbers/lowestCommonDenominator.js +19 -19
  90. package/dist/helpers/numbers/randomInteger.d.ts +18 -12
  91. package/dist/helpers/numbers/randomInteger.js +24 -18
  92. package/dist/helpers/numbers/randomNumber.d.ts +13 -12
  93. package/dist/helpers/numbers/randomNumber.js +19 -18
  94. package/dist/helpers/numbers/simplestRatio.d.ts +8 -8
  95. package/dist/helpers/numbers/simplestRatio.js +28 -28
  96. package/dist/helpers/numbers.d.ts +30 -30
  97. package/dist/helpers/numbers.js +89 -89
  98. package/dist/helpers/objects/cloneObject.d.ts +2 -4
  99. package/dist/helpers/objects/cloneObject.js +2 -4
  100. package/dist/helpers/objects/dotGet.d.ts +11 -11
  101. package/dist/helpers/objects/dotGet.js +59 -59
  102. package/dist/helpers/objects/dotNotate.d.ts +27 -27
  103. package/dist/helpers/objects/dotNotate.js +79 -79
  104. package/dist/helpers/objects/dotSet.d.ts +11 -11
  105. package/dist/helpers/objects/dotSet.js +53 -53
  106. package/dist/helpers/objects/dotUnset.d.ts +10 -10
  107. package/dist/helpers/objects/dotUnset.js +52 -52
  108. package/dist/helpers/objects/emptyObject.d.ts +8 -8
  109. package/dist/helpers/objects/emptyObject.js +17 -17
  110. package/dist/helpers/objects/filterObject.d.ts +26 -26
  111. package/dist/helpers/objects/filterObject.js +33 -33
  112. package/dist/helpers/objects/isCloneable.d.ts +8 -8
  113. package/dist/helpers/objects/isCloneable.js +16 -16
  114. package/dist/helpers/objects/isEqual.d.ts +16 -16
  115. package/dist/helpers/objects/isEqual.js +100 -100
  116. package/dist/helpers/objects/isInstanceObject.d.ts +8 -8
  117. package/dist/helpers/objects/isInstanceObject.js +26 -26
  118. package/dist/helpers/objects/isObject.d.ts +8 -8
  119. package/dist/helpers/objects/isObject.js +14 -14
  120. package/dist/helpers/objects/mapObject.d.ts +25 -25
  121. package/dist/helpers/objects/mapObject.js +25 -25
  122. package/dist/helpers/objects/mergeObjects.d.ts +12 -12
  123. package/dist/helpers/objects/mergeObjects.js +19 -19
  124. package/dist/helpers/objects/mergeObjectsBase.d.ts +9 -6
  125. package/dist/helpers/objects/mergeObjectsBase.js +59 -61
  126. package/dist/helpers/objects/mergeObjectsBase.min.js +1 -1
  127. package/dist/helpers/objects/mergeObjectsMutable.d.ts +12 -12
  128. package/dist/helpers/objects/mergeObjectsMutable.js +17 -17
  129. package/dist/helpers/objects/objectKeys.d.ts +13 -13
  130. package/dist/helpers/objects/objectKeys.js +39 -39
  131. package/dist/helpers/objects/objectValues.d.ts +13 -13
  132. package/dist/helpers/objects/objectValues.js +20 -20
  133. package/dist/helpers/objects/reduceObject.d.ts +30 -30
  134. package/dist/helpers/objects/reduceObject.js +25 -25
  135. package/dist/helpers/objects/setAndReturnValue.d.ts +13 -13
  136. package/dist/helpers/objects/setAndReturnValue.js +19 -19
  137. package/dist/helpers/objects/setValue.d.ts +14 -14
  138. package/dist/helpers/objects/setValue.js +21 -21
  139. package/dist/helpers/objects.d.ts +1 -1
  140. package/dist/helpers/objects.js +177 -177
  141. package/dist/helpers/strings/camelCase.d.ts +8 -8
  142. package/dist/helpers/strings/camelCase.js +19 -19
  143. package/dist/helpers/strings/kabobCase.d.ts +8 -8
  144. package/dist/helpers/strings/kabobCase.js +18 -18
  145. package/dist/helpers/strings/makeFilepath.d.ts +9 -9
  146. package/dist/helpers/strings/makeFilepath.js +49 -49
  147. package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
  148. package/dist/helpers/strings/makeRelativePath.js +43 -43
  149. package/dist/helpers/strings/regexEscape.d.ts +8 -8
  150. package/dist/helpers/strings/regexEscape.js +15 -15
  151. package/dist/helpers/strings/snakeCase.d.ts +8 -8
  152. package/dist/helpers/strings/snakeCase.js +18 -18
  153. package/dist/helpers/strings/strAfter.d.ts +9 -9
  154. package/dist/helpers/strings/strAfter.js +18 -18
  155. package/dist/helpers/strings/strAfterLast.d.ts +9 -9
  156. package/dist/helpers/strings/strAfterLast.js +18 -18
  157. package/dist/helpers/strings/strBefore.d.ts +9 -9
  158. package/dist/helpers/strings/strBefore.js +18 -18
  159. package/dist/helpers/strings/strBeforeLast.d.ts +9 -9
  160. package/dist/helpers/strings/strBeforeLast.js +18 -18
  161. package/dist/helpers/strings/titleCase.d.ts +8 -8
  162. package/dist/helpers/strings/titleCase.js +19 -19
  163. package/dist/helpers/strings/ucFirst.d.ts +8 -8
  164. package/dist/helpers/strings/ucFirst.js +14 -14
  165. package/dist/helpers/strings/words.d.ts +9 -9
  166. package/dist/helpers/strings/words.js +15 -15
  167. package/dist/helpers/strings.d.ts +38 -38
  168. package/dist/helpers/strings.js +121 -121
  169. package/dist/main.d.ts +15 -15
  170. package/dist/main.js +103 -103
  171. package/package.json +4 -4
@@ -1,57 +1,57 @@
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
- const _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
15
- const _cloneDescriptor = _interopRequireDefault(require('./cloneDescriptor'))
16
- const _compareArrays = _interopRequireDefault(require('../arrays/compareArrays'))
17
- const _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
18
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
19
- /**
20
- * Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
21
- * Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
22
- * different types), rather than replacing it outright.
23
- * @memberOf module:objectDescriptors
24
- * @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
25
- * clone is merged and returned).
26
- * @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
27
- * @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
28
- */
29
- const assignDescriptor = (originalMap, ...descriptors) => descriptors.reduce((assignedDescriptor, descriptor) => {
30
- const detailsDiff = (0, _compareArrays.default)(assignedDescriptor.keys, descriptor.keys)
31
- detailsDiff.forEach(diff => {
32
- const existingDetail = assignedDescriptor.details.find(detail => detail.key === diff.value)
33
- const newDetail = descriptor.details.find(detail => detail.key === diff.value)
34
- if (diff.result.every(result => result === 0)) {
35
- assignedDescriptor.details[existingDetail.index] = (0, _assignDescriptorDetail.default)(existingDetail, newDetail)
36
- return assignedDescriptor
37
- }
38
- const useDetail = diff.result[0] > 0 ? existingDetail : newDetail
39
- if (!useDetail) {
40
- assignedDescriptor.details[existingDetail.index].optional = true
41
- return assignedDescriptor
42
- }
43
- const useIndex = diff.result[0] > 0 ? useDetail.index : assignedDescriptor.length
44
- assignedDescriptor.details[useIndex] = Object.assign({}, useDetail, {
45
- index: useIndex,
46
- optional: true
47
- })
48
- assignedDescriptor.length = assignedDescriptor.length < assignedDescriptor.details.length ? assignedDescriptor.details.length : assignedDescriptor.length
49
- return assignedDescriptor
50
- })
51
- assignedDescriptor.keys = (0, _uniqueArray.default)(assignedDescriptor.details.map(detail => detail.key))
52
- assignedDescriptor.references = (0, _uniqueArray.default)(assignedDescriptor.details.filter(detail => detail.isReference).map(detail => detail.index))
53
- assignedDescriptor.isArray = assignedDescriptor.length ? assignedDescriptor.details.every(detail => typeof detail.key === 'number') : assignedDescriptor.isArray
54
- assignedDescriptor.complete = !assignedDescriptor.references.length || assignedDescriptor.complete || descriptor.complete
55
- return assignedDescriptor
56
- }, (0, _cloneDescriptor.default)(originalMap))
57
- const _default = exports.default = assignDescriptor
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
+ const _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
15
+ const _cloneDescriptor = _interopRequireDefault(require('./cloneDescriptor'))
16
+ const _compareArrays = _interopRequireDefault(require('../arrays/compareArrays'))
17
+ const _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
18
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
19
+ /**
20
+ * Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
21
+ * Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
22
+ * different types), rather than replacing it outright.
23
+ * @memberOf module:objectDescriptors
24
+ * @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
25
+ * clone is merged and returned).
26
+ * @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
27
+ * @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
28
+ */
29
+ const assignDescriptor = (originalMap, ...descriptors) => descriptors.reduce((assignedDescriptor, descriptor) => {
30
+ const detailsDiff = (0, _compareArrays.default)(assignedDescriptor.keys, descriptor.keys)
31
+ detailsDiff.forEach(diff => {
32
+ const existingDetail = assignedDescriptor.details.find(detail => detail.key === diff.value)
33
+ const newDetail = descriptor.details.find(detail => detail.key === diff.value)
34
+ if (diff.result.every(result => result === 0)) {
35
+ assignedDescriptor.details[existingDetail.index] = (0, _assignDescriptorDetail.default)(existingDetail, newDetail)
36
+ return assignedDescriptor
37
+ }
38
+ const useDetail = diff.result[0] > 0 ? existingDetail : newDetail
39
+ if (!useDetail) {
40
+ assignedDescriptor.details[existingDetail.index].optional = true
41
+ return assignedDescriptor
42
+ }
43
+ const useIndex = diff.result[0] > 0 ? useDetail.index : assignedDescriptor.length
44
+ assignedDescriptor.details[useIndex] = Object.assign({}, useDetail, {
45
+ index: useIndex,
46
+ optional: true
47
+ })
48
+ assignedDescriptor.length = assignedDescriptor.length < assignedDescriptor.details.length ? assignedDescriptor.details.length : assignedDescriptor.length
49
+ return assignedDescriptor
50
+ })
51
+ assignedDescriptor.keys = (0, _uniqueArray.default)(assignedDescriptor.details.map(detail => detail.key))
52
+ assignedDescriptor.references = (0, _uniqueArray.default)(assignedDescriptor.details.filter(detail => detail.isReference).map(detail => detail.index))
53
+ assignedDescriptor.isArray = assignedDescriptor.length ? assignedDescriptor.details.every(detail => typeof detail.key === 'number') : assignedDescriptor.isArray
54
+ assignedDescriptor.complete = !assignedDescriptor.references.length || assignedDescriptor.complete || descriptor.complete
55
+ return assignedDescriptor
56
+ }, (0, _cloneDescriptor.default)(originalMap))
57
+ const _default = exports.default = assignDescriptor
@@ -1,14 +1,14 @@
1
- import { descriptorDetail } from './samples/descriptorDetail';
2
- /**
3
- * Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
4
- * OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
5
- * {@link module:objectDescriptors.assignDescriptor}.
6
- * @memberOf module:objectDescriptors
7
- * @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
8
- * a clone is merged and returned).
9
- * @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
10
- * @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
11
- */
12
- declare const assignDescriptorDetail: (originalDetail: descriptorDetail, ...details: Array<descriptorDetail>) => descriptorDetail;
13
- export default assignDescriptorDetail;
1
+ import { descriptorDetail } from './samples/descriptorDetail';
2
+ /**
3
+ * Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
4
+ * OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
5
+ * {@link module:objectDescriptors.assignDescriptor}.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
8
+ * a clone is merged and returned).
9
+ * @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
10
+ * @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
11
+ */
12
+ declare const assignDescriptorDetail: (originalDetail: descriptorDetail, ...details: Array<descriptorDetail>) => descriptorDetail;
13
+ export default assignDescriptorDetail;
14
14
  //# sourceMappingURL=assignDescriptorDetail.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.reduce.js')
9
- const _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
10
- const _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
14
- * OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
15
- * {@link module:objectDescriptors.assignDescriptor}.
16
- * @memberOf module:objectDescriptors
17
- * @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
18
- * a clone is merged and returned).
19
- * @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
20
- * @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
21
- */
22
- const assignDescriptorDetail = (originalDetail, ...details) => details.reduce((existingDetail, newDetail) => {
23
- existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
24
- existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
25
- existingDetail.nullable = existingDetail.nullable || newDetail.nullable
26
- existingDetail.optional = existingDetail.optional || newDetail.optional
27
- existingDetail.circular = existingDetail.circular || newDetail.circular
28
- existingDetail.isReference = existingDetail.isReference || newDetail.isReference
29
- existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
30
- existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
31
- existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
32
- existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
33
- existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
34
- return existingDetail
35
- }, (0, _cloneDescriptorDetail.default)(originalDetail))
36
- const _default = exports.default = assignDescriptorDetail
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
+ const _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
10
+ const _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
14
+ * OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
15
+ * {@link module:objectDescriptors.assignDescriptor}.
16
+ * @memberOf module:objectDescriptors
17
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
18
+ * a clone is merged and returned).
19
+ * @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
20
+ * @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
21
+ */
22
+ const assignDescriptorDetail = (originalDetail, ...details) => details.reduce((existingDetail, newDetail) => {
23
+ existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
24
+ existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
25
+ existingDetail.nullable = existingDetail.nullable || newDetail.nullable
26
+ existingDetail.optional = existingDetail.optional || newDetail.optional
27
+ existingDetail.circular = existingDetail.circular || newDetail.circular
28
+ existingDetail.isReference = existingDetail.isReference || newDetail.isReference
29
+ existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
30
+ existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
31
+ existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
32
+ existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
33
+ existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
34
+ return existingDetail
35
+ }, (0, _cloneDescriptorDetail.default)(originalDetail))
36
+ const _default = exports.default = assignDescriptorDetail
@@ -1,12 +1,12 @@
1
- import { descriptor } from './samples/descriptor';
2
- /**
3
- * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
4
- * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
7
- * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
8
- * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
9
- */
10
- declare const checkClearValues: (descriptor: descriptor, keepValues?: boolean) => descriptor;
11
- export default checkClearValues;
1
+ import { descriptor } from './samples/descriptor';
2
+ /**
3
+ * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
4
+ * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
5
+ * @memberOf module:objectDescriptors
6
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
7
+ * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
8
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
9
+ */
10
+ declare const checkClearValues: (descriptor: descriptor, keepValues?: boolean) => descriptor;
11
+ export default checkClearValues;
12
12
  //# sourceMappingURL=checkClearValues.d.ts.map
@@ -1,20 +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.map.js')
9
- const _setValue = _interopRequireDefault(require('../objects/setValue'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
13
- * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
16
- * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
17
- * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
18
- */
19
- const checkClearValues = (descriptor, keepValues = false) => (0, _setValue.default)('details', descriptor.complete && !keepValues ? descriptor.details.map(detail => (0, _setValue.default)('value', [], detail)) : descriptor.details, descriptor)
20
- const _default = exports.default = checkClearValues
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
+ const _setValue = _interopRequireDefault(require('../objects/setValue'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
13
+ * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
14
+ * @memberOf module:objectDescriptors
15
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
16
+ * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
17
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
18
+ */
19
+ const checkClearValues = (descriptor, keepValues = false) => (0, _setValue.default)('details', descriptor.complete && !keepValues ? descriptor.details.map(detail => (0, _setValue.default)('value', [], detail)) : descriptor.details, descriptor)
20
+ const _default = exports.default = checkClearValues
@@ -1,11 +1,11 @@
1
- import { descriptor } from './samples/descriptor';
2
- /**
3
- * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
4
- * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
7
- * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
8
- */
9
- declare const checkDescriptorComplete: (descriptor: descriptor) => descriptor;
10
- export default checkDescriptorComplete;
1
+ import { descriptor } from './samples/descriptor';
2
+ /**
3
+ * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
4
+ * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
5
+ * @memberOf module:objectDescriptors
6
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
7
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
8
+ */
9
+ declare const checkDescriptorComplete: (descriptor: descriptor) => descriptor;
10
+ export default checkDescriptorComplete;
11
11
  //# sourceMappingURL=checkDescriptorComplete.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/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.every.js')
9
- const _setValue = _interopRequireDefault(require('../objects/setValue'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
13
- * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
16
- * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
17
- */
18
- 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)
19
- const _default = exports.default = checkDescriptorComplete
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
+ const _setValue = _interopRequireDefault(require('../objects/setValue'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
13
+ * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
14
+ * @memberOf module:objectDescriptors
15
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
16
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
17
+ */
18
+ 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)
19
+ const _default = exports.default = checkDescriptorComplete
@@ -1,10 +1,10 @@
1
- import { descriptor } from './samples/descriptor';
2
- /**
3
- * Make a copy of an object descriptor so that the original will not be mutated.
4
- * @memberOf module:objectDescriptors
5
- * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
6
- * @returns {module:objectDescriptors~descriptor} A new, independent copy.
7
- */
8
- declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
9
- export default cloneDescriptor;
1
+ import { descriptor } from './samples/descriptor';
2
+ /**
3
+ * Make a copy of an object descriptor so that the original will not be mutated.
4
+ * @memberOf module:objectDescriptors
5
+ * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
6
+ * @returns {module:objectDescriptors~descriptor} A new, independent copy.
7
+ */
8
+ declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
9
+ export default cloneDescriptor;
10
10
  //# sourceMappingURL=cloneDescriptor.d.ts.map
@@ -1,35 +1,35 @@
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
- const _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Make a copy of an object descriptor so that the original will not be mutated.
13
- * @memberOf module:objectDescriptors
14
- * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
15
- * @returns {module:objectDescriptors~descriptor} A new, independent copy.
16
- */
17
- const cloneDescriptor = originalMap => {
18
- const copyMap = {}
19
- // @ts-ignore
20
- copyMap.index = originalMap.index || 0
21
- // @ts-ignore
22
- copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
23
- // @ts-ignore
24
- copyMap.length = originalMap.length
25
- // @ts-ignore
26
- copyMap.keys = originalMap.keys.map(key => key)
27
- // @ts-ignore
28
- copyMap.references = originalMap.references.map(reference => reference)
29
- // @ts-ignore
30
- copyMap.isArray = originalMap.isArray
31
- // @ts-ignore
32
- copyMap.complete = originalMap.complete
33
- return copyMap
34
- }
35
- const _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
+ const _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Make a copy of an object descriptor so that the original will not be mutated.
13
+ * @memberOf module:objectDescriptors
14
+ * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
15
+ * @returns {module:objectDescriptors~descriptor} A new, independent copy.
16
+ */
17
+ const cloneDescriptor = originalMap => {
18
+ const copyMap = {}
19
+ // @ts-ignore
20
+ copyMap.index = originalMap.index || 0
21
+ // @ts-ignore
22
+ copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
23
+ // @ts-ignore
24
+ copyMap.length = originalMap.length
25
+ // @ts-ignore
26
+ copyMap.keys = originalMap.keys.map(key => key)
27
+ // @ts-ignore
28
+ copyMap.references = originalMap.references.map(reference => reference)
29
+ // @ts-ignore
30
+ copyMap.isArray = originalMap.isArray
31
+ // @ts-ignore
32
+ copyMap.complete = originalMap.complete
33
+ return copyMap
34
+ }
35
+ const _default = exports.default = cloneDescriptor
@@ -1,10 +1,10 @@
1
- import { descriptorDetail } from './samples/descriptorDetail';
2
- /**
3
- * Get a new copy of an existing descriptor detail so that the original will not be mutated.
4
- * @memberOf module:objectDescriptors
5
- * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
6
- * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
7
- */
8
- declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
9
- export default cloneDescriptorDetail;
1
+ import { descriptorDetail } from './samples/descriptorDetail';
2
+ /**
3
+ * Get a new copy of an existing descriptor detail so that the original will not be mutated.
4
+ * @memberOf module:objectDescriptors
5
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
6
+ * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
7
+ */
8
+ declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
9
+ export default cloneDescriptorDetail;
10
10
  //# sourceMappingURL=cloneDescriptorDetail.d.ts.map
@@ -1,26 +1,26 @@
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
- const _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Get a new copy of an existing descriptor detail so that the original will not be mutated.
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
16
- * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
17
- */
18
- const cloneDescriptorDetail = originalDetail => {
19
- const copyDetail = {};
20
- (0, _objectKeys.default)(originalDetail).forEach(key => {
21
- // @ts-ignore
22
- copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
23
- })
24
- return copyDetail
25
- }
26
- const _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
+ const _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Get a new copy of an existing descriptor detail so that the original will not be mutated.
14
+ * @memberOf module:objectDescriptors
15
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
16
+ * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
17
+ */
18
+ const cloneDescriptorDetail = originalDetail => {
19
+ const copyDetail = {};
20
+ (0, _objectKeys.default)(originalDetail).forEach(key => {
21
+ // @ts-ignore
22
+ copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
23
+ })
24
+ return copyDetail
25
+ }
26
+ const _default = exports.default = cloneDescriptorDetail
@@ -1,13 +1,13 @@
1
- import { descriptor } from './samples/descriptor';
2
- /**
3
- * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
4
- * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
5
- * in the map, so it can be pointed at instead of creating a duplicate.
6
- * @memberOf module:objectDescriptors
7
- * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
8
- * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
9
- * @returns {boolean} True if the descriptors describe a compatible shape.
10
- */
11
- declare const compareDescriptor: (descriptor1: descriptor, descriptor2: descriptor) => boolean;
12
- export default compareDescriptor;
1
+ import { descriptor } from './samples/descriptor';
2
+ /**
3
+ * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
4
+ * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
5
+ * in the map, so it can be pointed at instead of creating a duplicate.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
8
+ * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
9
+ * @returns {boolean} True if the descriptors describe a compatible shape.
10
+ */
11
+ declare const compareDescriptor: (descriptor1: descriptor, descriptor2: descriptor) => boolean;
12
+ export default compareDescriptor;
13
13
  //# sourceMappingURL=compareDescriptor.d.ts.map
@@ -1,32 +1,32 @@
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
- /**
13
- * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
14
- * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
15
- * in the map, so it can be pointed at instead of creating a duplicate.
16
- * @memberOf module:objectDescriptors
17
- * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
18
- * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
19
- * @returns {boolean} True if the descriptors describe a compatible shape.
20
- */
21
- const compareDescriptor = (descriptor1, descriptor2) => {
22
- if (descriptor1.isArray !== descriptor2.isArray) {
23
- return false
24
- }
25
- if (descriptor1.length === 0 || descriptor2.length === 0) {
26
- return descriptor1.length === descriptor2.length
27
- }
28
- const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
29
- const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
30
- 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
31
- }
32
- const _default = exports.default = compareDescriptor
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
+ /**
13
+ * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
14
+ * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
15
+ * in the map, so it can be pointed at instead of creating a duplicate.
16
+ * @memberOf module:objectDescriptors
17
+ * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
18
+ * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
19
+ * @returns {boolean} True if the descriptors describe a compatible shape.
20
+ */
21
+ const compareDescriptor = (descriptor1, descriptor2) => {
22
+ if (descriptor1.isArray !== descriptor2.isArray) {
23
+ return false
24
+ }
25
+ if (descriptor1.length === 0 || descriptor2.length === 0) {
26
+ return descriptor1.length === descriptor2.length
27
+ }
28
+ const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
29
+ const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
30
+ 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
31
+ }
32
+ const _default = exports.default = compareDescriptor