si-funciona 2.6.1 → 2.6.2

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 (169) hide show
  1. package/README.md +40 -10
  2. package/browser/siFunciona.js +18 -11
  3. package/dist/helpers/arrays/BasicQueue.d.ts +64 -64
  4. package/dist/helpers/arrays/BasicQueue.js +61 -61
  5. package/dist/helpers/arrays/addUniqueToArray.d.ts +9 -9
  6. package/dist/helpers/arrays/addUniqueToArray.js +16 -16
  7. package/dist/helpers/arrays/buildArray.d.ts +10 -10
  8. package/dist/helpers/arrays/buildArray.js +25 -25
  9. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +10 -10
  10. package/dist/helpers/arrays/buildArrayOfReferences.js +22 -22
  11. package/dist/helpers/arrays/compareArrays.d.ts +96 -96
  12. package/dist/helpers/arrays/compareArrays.js +96 -96
  13. package/dist/helpers/arrays/mergeArrays.d.ts +8 -8
  14. package/dist/helpers/arrays/mergeArrays.js +21 -21
  15. package/dist/helpers/arrays/uniqueArray.d.ts +8 -8
  16. package/dist/helpers/arrays/uniqueArray.js +16 -16
  17. package/dist/helpers/arrays.d.ts +27 -27
  18. package/dist/helpers/arrays.js +74 -74
  19. package/dist/helpers/descriptors/assignDescriptor.d.ts +13 -13
  20. package/dist/helpers/descriptors/assignDescriptor.js +57 -57
  21. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +13 -13
  22. package/dist/helpers/descriptors/assignDescriptorDetail.js +36 -36
  23. package/dist/helpers/descriptors/checkClearValues.d.ts +11 -11
  24. package/dist/helpers/descriptors/checkClearValues.js +20 -20
  25. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +10 -10
  26. package/dist/helpers/descriptors/checkDescriptorComplete.js +19 -19
  27. package/dist/helpers/descriptors/cloneDescriptor.d.ts +9 -9
  28. package/dist/helpers/descriptors/cloneDescriptor.js +35 -35
  29. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +9 -9
  30. package/dist/helpers/descriptors/cloneDescriptorDetail.js +26 -26
  31. package/dist/helpers/descriptors/compareDescriptor.d.ts +12 -12
  32. package/dist/helpers/descriptors/compareDescriptor.js +32 -32
  33. package/dist/helpers/descriptors/describeObject.d.ts +14 -14
  34. package/dist/helpers/descriptors/describeObject.js +52 -52
  35. package/dist/helpers/descriptors/describeObjectDetail.d.ts +13 -13
  36. package/dist/helpers/descriptors/describeObjectDetail.js +37 -37
  37. package/dist/helpers/descriptors/describeObjectMap.d.ts +35 -35
  38. package/dist/helpers/descriptors/describeObjectMap.js +107 -107
  39. package/dist/helpers/descriptors/nextReference.d.ts +12 -12
  40. package/dist/helpers/descriptors/nextReference.js +30 -30
  41. package/dist/helpers/descriptors/sameDescriptor.d.ts +12 -12
  42. package/dist/helpers/descriptors/sameDescriptor.js +21 -21
  43. package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -34
  44. package/dist/helpers/descriptors/samples/descriptor.js +22 -22
  45. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -42
  46. package/dist/helpers/descriptors/samples/descriptorDetail.js +24 -24
  47. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -16
  48. package/dist/helpers/descriptors/samples/descriptorMap.js +14 -14
  49. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -10
  50. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -287
  51. package/dist/helpers/descriptors.d.ts +56 -56
  52. package/dist/helpers/descriptors.js +129 -129
  53. package/dist/helpers/functions/callWithParams.d.ts +10 -10
  54. package/dist/helpers/functions/callWithParams.js +16 -16
  55. package/dist/helpers/functions/curry.d.ts +10 -10
  56. package/dist/helpers/functions/curry.js +16 -16
  57. package/dist/helpers/functions/delay.d.ts +20 -20
  58. package/dist/helpers/functions/delay.js +31 -31
  59. package/dist/helpers/functions/makeBasicQueue.d.ts +9 -9
  60. package/dist/helpers/functions/makeBasicQueue.js +18 -18
  61. package/dist/helpers/functions/onBodyLoad.d.ts +9 -9
  62. package/dist/helpers/functions/onBodyLoad.js +75 -75
  63. package/dist/helpers/functions/pipe.d.ts +9 -9
  64. package/dist/helpers/functions/pipe.js +17 -17
  65. package/dist/helpers/functions/preloadParams.d.ts +19 -19
  66. package/dist/helpers/functions/preloadParams.js +20 -20
  67. package/dist/helpers/functions/queueManager.d.ts +48 -48
  68. package/dist/helpers/functions/queueManager.js +123 -123
  69. package/dist/helpers/functions/queueTimeout.d.ts +20 -20
  70. package/dist/helpers/functions/queueTimeout.js +22 -22
  71. package/dist/helpers/functions/relevancyFilter.d.ts +34 -34
  72. package/dist/helpers/functions/relevancyFilter.js +33 -33
  73. package/dist/helpers/functions/trace.d.ts +13 -13
  74. package/dist/helpers/functions/trace.js +24 -24
  75. package/dist/helpers/functions.d.ts +40 -40
  76. package/dist/helpers/functions.js +105 -105
  77. package/dist/helpers/numbers/absoluteMax.d.ts +9 -9
  78. package/dist/helpers/numbers/absoluteMax.js +15 -15
  79. package/dist/helpers/numbers/absoluteMin.d.ts +9 -9
  80. package/dist/helpers/numbers/absoluteMin.js +15 -15
  81. package/dist/helpers/numbers/compare.d.ts +12 -12
  82. package/dist/helpers/numbers/compare.js +18 -18
  83. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +9 -9
  84. package/dist/helpers/numbers/greatestCommonDivisor.js +15 -15
  85. package/dist/helpers/numbers/leastCommonMultiple.d.ts +9 -9
  86. package/dist/helpers/numbers/leastCommonMultiple.js +17 -17
  87. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +9 -9
  88. package/dist/helpers/numbers/lowestCommonDenominator.js +19 -19
  89. package/dist/helpers/numbers/randomInteger.d.ts +11 -5
  90. package/dist/helpers/numbers/randomInteger.js +11 -5
  91. package/dist/helpers/numbers/randomNumber.d.ts +7 -6
  92. package/dist/helpers/numbers/randomNumber.js +7 -6
  93. package/dist/helpers/numbers/simplestRatio.d.ts +8 -8
  94. package/dist/helpers/numbers/simplestRatio.js +28 -28
  95. package/dist/helpers/numbers.d.ts +30 -30
  96. package/dist/helpers/numbers.js +89 -89
  97. package/dist/helpers/objects/cloneObject.d.ts +19 -19
  98. package/dist/helpers/objects/cloneObject.js +31 -31
  99. package/dist/helpers/objects/dotGet.d.ts +11 -11
  100. package/dist/helpers/objects/dotGet.js +59 -59
  101. package/dist/helpers/objects/dotNotate.d.ts +27 -27
  102. package/dist/helpers/objects/dotNotate.js +79 -79
  103. package/dist/helpers/objects/dotSet.d.ts +11 -11
  104. package/dist/helpers/objects/dotSet.js +53 -53
  105. package/dist/helpers/objects/dotUnset.d.ts +10 -10
  106. package/dist/helpers/objects/dotUnset.js +52 -52
  107. package/dist/helpers/objects/emptyObject.d.ts +8 -8
  108. package/dist/helpers/objects/emptyObject.js +17 -17
  109. package/dist/helpers/objects/filterObject.d.ts +26 -26
  110. package/dist/helpers/objects/filterObject.js +33 -33
  111. package/dist/helpers/objects/isCloneable.d.ts +8 -8
  112. package/dist/helpers/objects/isCloneable.js +16 -16
  113. package/dist/helpers/objects/isEqual.d.ts +16 -16
  114. package/dist/helpers/objects/isEqual.js +100 -100
  115. package/dist/helpers/objects/isInstanceObject.d.ts +8 -8
  116. package/dist/helpers/objects/isInstanceObject.js +26 -26
  117. package/dist/helpers/objects/isObject.d.ts +8 -8
  118. package/dist/helpers/objects/isObject.js +14 -14
  119. package/dist/helpers/objects/mapObject.d.ts +25 -25
  120. package/dist/helpers/objects/mapObject.js +25 -25
  121. package/dist/helpers/objects/mergeObjects.d.ts +12 -12
  122. package/dist/helpers/objects/mergeObjects.js +19 -19
  123. package/dist/helpers/objects/mergeObjectsBase.d.ts +35 -35
  124. package/dist/helpers/objects/mergeObjectsBase.js +91 -91
  125. package/dist/helpers/objects/mergeObjectsMutable.d.ts +12 -12
  126. package/dist/helpers/objects/mergeObjectsMutable.js +17 -17
  127. package/dist/helpers/objects/objectKeys.d.ts +13 -13
  128. package/dist/helpers/objects/objectKeys.js +39 -39
  129. package/dist/helpers/objects/objectValues.d.ts +13 -13
  130. package/dist/helpers/objects/objectValues.js +20 -20
  131. package/dist/helpers/objects/reduceObject.d.ts +30 -30
  132. package/dist/helpers/objects/reduceObject.js +25 -25
  133. package/dist/helpers/objects/setAndReturnValue.d.ts +13 -13
  134. package/dist/helpers/objects/setAndReturnValue.js +19 -19
  135. package/dist/helpers/objects/setValue.d.ts +14 -14
  136. package/dist/helpers/objects/setValue.js +21 -21
  137. package/dist/helpers/objects.d.ts +121 -121
  138. package/dist/helpers/objects.js +177 -177
  139. package/dist/helpers/strings/camelCase.d.ts +8 -8
  140. package/dist/helpers/strings/camelCase.js +19 -19
  141. package/dist/helpers/strings/kabobCase.d.ts +8 -8
  142. package/dist/helpers/strings/kabobCase.js +18 -18
  143. package/dist/helpers/strings/makeFilepath.d.ts +9 -9
  144. package/dist/helpers/strings/makeFilepath.js +49 -49
  145. package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
  146. package/dist/helpers/strings/makeRelativePath.js +43 -43
  147. package/dist/helpers/strings/regexEscape.d.ts +8 -8
  148. package/dist/helpers/strings/regexEscape.js +15 -15
  149. package/dist/helpers/strings/snakeCase.d.ts +8 -8
  150. package/dist/helpers/strings/snakeCase.js +18 -18
  151. package/dist/helpers/strings/strAfter.d.ts +9 -9
  152. package/dist/helpers/strings/strAfter.js +18 -18
  153. package/dist/helpers/strings/strAfterLast.d.ts +9 -9
  154. package/dist/helpers/strings/strAfterLast.js +18 -18
  155. package/dist/helpers/strings/strBefore.d.ts +9 -9
  156. package/dist/helpers/strings/strBefore.js +18 -18
  157. package/dist/helpers/strings/strBeforeLast.d.ts +9 -9
  158. package/dist/helpers/strings/strBeforeLast.js +18 -18
  159. package/dist/helpers/strings/titleCase.d.ts +8 -8
  160. package/dist/helpers/strings/titleCase.js +19 -19
  161. package/dist/helpers/strings/ucFirst.d.ts +8 -8
  162. package/dist/helpers/strings/ucFirst.js +14 -14
  163. package/dist/helpers/strings/words.d.ts +9 -9
  164. package/dist/helpers/strings/words.js +15 -15
  165. package/dist/helpers/strings.d.ts +38 -38
  166. package/dist/helpers/strings.js +121 -121
  167. package/dist/main.d.ts +15 -15
  168. package/dist/main.js +103 -103
  169. package/package.json +4 -4
@@ -1,74 +1,74 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- Object.defineProperty(exports, 'BasicQueue', {
7
- enumerable: true,
8
- get: function () {
9
- return _BasicQueue.default
10
- }
11
- })
12
- Object.defineProperty(exports, 'addUniqueToArray', {
13
- enumerable: true,
14
- get: function () {
15
- return _addUniqueToArray.default
16
- }
17
- })
18
- Object.defineProperty(exports, 'buildArray', {
19
- enumerable: true,
20
- get: function () {
21
- return _buildArray.default
22
- }
23
- })
24
- Object.defineProperty(exports, 'buildArrayOfReferences', {
25
- enumerable: true,
26
- get: function () {
27
- return _buildArrayOfReferences.default
28
- }
29
- })
30
- Object.defineProperty(exports, 'compareArrays', {
31
- enumerable: true,
32
- get: function () {
33
- return _compareArrays.default
34
- }
35
- })
36
- exports.default = void 0
37
- Object.defineProperty(exports, 'mergeArrays', {
38
- enumerable: true,
39
- get: function () {
40
- return _mergeArrays.default
41
- }
42
- })
43
- Object.defineProperty(exports, 'uniqueArray', {
44
- enumerable: true,
45
- get: function () {
46
- return _uniqueArray.default
47
- }
48
- })
49
- var _addUniqueToArray = _interopRequireDefault(require('./arrays/addUniqueToArray'))
50
- var _BasicQueue = _interopRequireDefault(require('./arrays/BasicQueue'))
51
- var _buildArray = _interopRequireDefault(require('./arrays/buildArray'))
52
- var _buildArrayOfReferences = _interopRequireDefault(require('./arrays/buildArrayOfReferences'))
53
- var _compareArrays = _interopRequireDefault(require('./arrays/compareArrays'))
54
- var _mergeArrays = _interopRequireDefault(require('./arrays/mergeArrays'))
55
- var _uniqueArray = _interopRequireDefault(require('./arrays/uniqueArray'))
56
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
57
- /**
58
- * Utilities for building, merging, deduplicating and comparing arrays, plus a basic FIFO queue (BasicQueue) for
59
- * use with functionHelpers' queueManager/queueTimeout.
60
- * @file
61
- * @author Joshua Heagle <joshuaheagle@gmail.com>
62
- * @version 1.0.0
63
- * @module arrayHelpers
64
- * @memberOf module:siFunciona
65
- */
66
- const _default = exports.default = {
67
- addUniqueToArray: _addUniqueToArray.default,
68
- BasicQueue: _BasicQueue.default,
69
- buildArray: _buildArray.default,
70
- buildArrayOfReferences: _buildArrayOfReferences.default,
71
- compareArrays: _compareArrays.default,
72
- mergeArrays: _mergeArrays.default,
73
- uniqueArray: _uniqueArray.default
74
- }
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ Object.defineProperty(exports, 'BasicQueue', {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _BasicQueue.default
10
+ }
11
+ })
12
+ Object.defineProperty(exports, 'addUniqueToArray', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _addUniqueToArray.default
16
+ }
17
+ })
18
+ Object.defineProperty(exports, 'buildArray', {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _buildArray.default
22
+ }
23
+ })
24
+ Object.defineProperty(exports, 'buildArrayOfReferences', {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _buildArrayOfReferences.default
28
+ }
29
+ })
30
+ Object.defineProperty(exports, 'compareArrays', {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _compareArrays.default
34
+ }
35
+ })
36
+ exports.default = void 0
37
+ Object.defineProperty(exports, 'mergeArrays', {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _mergeArrays.default
41
+ }
42
+ })
43
+ Object.defineProperty(exports, 'uniqueArray', {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _uniqueArray.default
47
+ }
48
+ })
49
+ var _addUniqueToArray = _interopRequireDefault(require('./arrays/addUniqueToArray'))
50
+ var _BasicQueue = _interopRequireDefault(require('./arrays/BasicQueue'))
51
+ var _buildArray = _interopRequireDefault(require('./arrays/buildArray'))
52
+ var _buildArrayOfReferences = _interopRequireDefault(require('./arrays/buildArrayOfReferences'))
53
+ var _compareArrays = _interopRequireDefault(require('./arrays/compareArrays'))
54
+ var _mergeArrays = _interopRequireDefault(require('./arrays/mergeArrays'))
55
+ var _uniqueArray = _interopRequireDefault(require('./arrays/uniqueArray'))
56
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
57
+ /**
58
+ * Utilities for building, merging, deduplicating and comparing arrays, plus a basic FIFO queue (BasicQueue) for
59
+ * use with functionHelpers' queueManager/queueTimeout.
60
+ * @file
61
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
62
+ * @version 1.0.0
63
+ * @module arrayHelpers
64
+ * @memberOf module:siFunciona
65
+ */
66
+ const _default = exports.default = {
67
+ addUniqueToArray: _addUniqueToArray.default,
68
+ BasicQueue: _BasicQueue.default,
69
+ buildArray: _buildArray.default,
70
+ buildArrayOfReferences: _buildArrayOfReferences.default,
71
+ compareArrays: _compareArrays.default,
72
+ mergeArrays: _mergeArrays.default,
73
+ uniqueArray: _uniqueArray.default
74
+ }
@@ -1,14 +1,14 @@
1
- import { descriptor } from './samples/descriptor';
2
- /**
3
- * Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
4
- * Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
5
- * different types), rather than replacing it outright.
6
- * @memberOf module:objectDescriptors
7
- * @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
8
- * clone is merged and returned).
9
- * @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
10
- * @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
11
- */
12
- declare const assignDescriptor: (originalMap: descriptor, ...descriptors: Array<descriptor>) => descriptor;
13
- export default assignDescriptor;
1
+ import { descriptor } from './samples/descriptor';
2
+ /**
3
+ * Apply one or more descriptors to an existing descriptor so that they represent a merged version of the descriptors.
4
+ * Used to widen a descriptor as more differently-shaped objects are described into it (e.g. array elements of
5
+ * different types), rather than replacing it outright.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {module:objectDescriptors~descriptor} originalMap - The base descriptor to merge onto (not mutated - a
8
+ * clone is merged and returned).
9
+ * @param {...module:objectDescriptors~descriptor} descriptors - One or more further descriptors to merge in.
10
+ * @returns {module:objectDescriptors~descriptor} A new descriptor representing the merge of all of the above.
11
+ */
12
+ declare const assignDescriptor: (originalMap: descriptor, ...descriptors: Array<descriptor>) => descriptor;
13
+ export default assignDescriptor;
14
14
  //# sourceMappingURL=assignDescriptor.d.ts.map
@@ -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