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,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
@@ -1,15 +1,15 @@
1
- import { descriptor } from './samples/descriptor';
2
- export type describeableObject = Array<any> | {
3
- [k: number | string]: any;
4
- };
5
- /**
6
- * Trace a single object or array (not its nested objects/arrays - see
7
- * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
8
- * structure and attributes.
9
- * @memberOf module:objectDescriptors
10
- * @param {Object|Array} object - The object or array to describe.
11
- * @returns {module:objectDescriptors~descriptor}
12
- */
13
- declare const describeObject: (object: describeableObject) => descriptor;
14
- export default describeObject;
1
+ import { descriptor } from './samples/descriptor';
2
+ export type describeableObject = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Trace a single object or array (not its nested objects/arrays - see
7
+ * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
8
+ * structure and attributes.
9
+ * @memberOf module:objectDescriptors
10
+ * @param {Object|Array} object - The object or array to describe.
11
+ * @returns {module:objectDescriptors~descriptor}
12
+ */
13
+ declare const describeObject: (object: describeableObject) => descriptor;
14
+ export default describeObject;
15
15
  //# sourceMappingURL=describeObject.d.ts.map
@@ -1,52 +1,52 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- const _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
8
- const _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
9
- const _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Trace a single object or array (not its nested objects/arrays - see
13
- * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
14
- * structure and attributes.
15
- * @memberOf module:objectDescriptors
16
- * @param {Object|Array} object - The object or array to describe.
17
- * @returns {module:objectDescriptors~descriptor}
18
- */
19
- const describeObject = object => {
20
- const descriptor = {
21
- index: 0,
22
- details: [],
23
- length: 0,
24
- keys: [],
25
- references: [],
26
- isArray: false,
27
- complete: false
28
- }
29
- const keys = (0, _objectKeys.default)(object)
30
- for (let i = 0; i < keys.length; ++i) {
31
- const key = keys[i]
32
- // @ts-ignore
33
- const newDetail = (0, _describeObjectDetail.default)(object[key], key, descriptor.length++)
34
- if (typeof key === 'number' && descriptor.details.length) {
35
- descriptor.details[0] = (0, _assignDescriptorDetail.default)(descriptor.details[0], newDetail)
36
- descriptor.keys = [0]
37
- if (newDetail.isReference) {
38
- descriptor.references = [0]
39
- }
40
- continue
41
- }
42
- descriptor.details.push(newDetail)
43
- descriptor.keys.push(newDetail.key)
44
- if (newDetail.isReference) {
45
- descriptor.references.push(newDetail.index)
46
- }
47
- }
48
- descriptor.isArray = Array.isArray(object)
49
- descriptor.complete = !descriptor.references.length
50
- return descriptor
51
- }
52
- const _default = exports.default = describeObject
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ const _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
8
+ const _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
9
+ const _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Trace a single object or array (not its nested objects/arrays - see
13
+ * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
14
+ * structure and attributes.
15
+ * @memberOf module:objectDescriptors
16
+ * @param {Object|Array} object - The object or array to describe.
17
+ * @returns {module:objectDescriptors~descriptor}
18
+ */
19
+ const describeObject = object => {
20
+ const descriptor = {
21
+ index: 0,
22
+ details: [],
23
+ length: 0,
24
+ keys: [],
25
+ references: [],
26
+ isArray: false,
27
+ complete: false
28
+ }
29
+ const keys = (0, _objectKeys.default)(object)
30
+ for (let i = 0; i < keys.length; ++i) {
31
+ const key = keys[i]
32
+ // @ts-ignore
33
+ const newDetail = (0, _describeObjectDetail.default)(object[key], key, descriptor.length++)
34
+ if (typeof key === 'number' && descriptor.details.length) {
35
+ descriptor.details[0] = (0, _assignDescriptorDetail.default)(descriptor.details[0], newDetail)
36
+ descriptor.keys = [0]
37
+ if (newDetail.isReference) {
38
+ descriptor.references = [0]
39
+ }
40
+ continue
41
+ }
42
+ descriptor.details.push(newDetail)
43
+ descriptor.keys.push(newDetail.key)
44
+ if (newDetail.isReference) {
45
+ descriptor.references.push(newDetail.index)
46
+ }
47
+ }
48
+ descriptor.isArray = Array.isArray(object)
49
+ descriptor.complete = !descriptor.references.length
50
+ return descriptor
51
+ }
52
+ const _default = exports.default = describeObject
@@ -1,14 +1,14 @@
1
- import { descriptorDetail } from './samples/descriptorDetail';
2
- /**
3
- * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
4
- * references a nested object/array, etc.) - the per-property building block used by
5
- * {@link module:objectDescriptors.describeObject}.
6
- * @memberOf module:objectDescriptors
7
- * @param {*} value - The property's value to describe.
8
- * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
9
- * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
10
- * @returns {module:objectDescriptors~descriptorDetail}
11
- */
12
- declare const describeObjectDetail: (value: any, key?: number | string, index?: number) => descriptorDetail;
13
- export default describeObjectDetail;
1
+ import { descriptorDetail } from './samples/descriptorDetail';
2
+ /**
3
+ * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
4
+ * references a nested object/array, etc.) - the per-property building block used by
5
+ * {@link module:objectDescriptors.describeObject}.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {*} value - The property's value to describe.
8
+ * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
9
+ * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
10
+ * @returns {module:objectDescriptors~descriptorDetail}
11
+ */
12
+ declare const describeObjectDetail: (value: any, key?: number | string, index?: number) => descriptorDetail;
13
+ export default describeObjectDetail;
14
14
  //# sourceMappingURL=describeObjectDetail.d.ts.map
@@ -1,37 +1,37 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- const _emptyObject = _interopRequireDefault(require('../objects/emptyObject'))
8
- const _isCloneable = _interopRequireDefault(require('../objects/isCloneable'))
9
- const _isInstanceObject = _interopRequireDefault(require('../objects/isInstanceObject'))
10
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
- /**
12
- * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
13
- * references a nested object/array, etc.) - the per-property building block used by
14
- * {@link module:objectDescriptors.describeObject}.
15
- * @memberOf module:objectDescriptors
16
- * @param {*} value - The property's value to describe.
17
- * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
18
- * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
19
- * @returns {module:objectDescriptors~descriptorDetail}
20
- */
21
- const describeObjectDetail = (value, key = 0, index = 0) => {
22
- const type = typeof value
23
- return {
24
- index,
25
- key,
26
- type: [type],
27
- value: [value],
28
- nullable: value === null,
29
- optional: false,
30
- circular: false,
31
- isReference: (0, _isCloneable.default)(value) && !(0, _emptyObject.default)(value),
32
- isInstance: (0, _isInstanceObject.default)(value),
33
- arrayReference: null,
34
- objectReference: null
35
- }
36
- }
37
- const _default = exports.default = describeObjectDetail
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ const _emptyObject = _interopRequireDefault(require('../objects/emptyObject'))
8
+ const _isCloneable = _interopRequireDefault(require('../objects/isCloneable'))
9
+ const _isInstanceObject = _interopRequireDefault(require('../objects/isInstanceObject'))
10
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
11
+ /**
12
+ * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
13
+ * references a nested object/array, etc.) - the per-property building block used by
14
+ * {@link module:objectDescriptors.describeObject}.
15
+ * @memberOf module:objectDescriptors
16
+ * @param {*} value - The property's value to describe.
17
+ * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
18
+ * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
19
+ * @returns {module:objectDescriptors~descriptorDetail}
20
+ */
21
+ const describeObjectDetail = (value, key = 0, index = 0) => {
22
+ const type = typeof value
23
+ return {
24
+ index,
25
+ key,
26
+ type: [type],
27
+ value: [value],
28
+ nullable: value === null,
29
+ optional: false,
30
+ circular: false,
31
+ isReference: (0, _isCloneable.default)(value) && !(0, _emptyObject.default)(value),
32
+ isInstance: (0, _isInstanceObject.default)(value),
33
+ arrayReference: null,
34
+ objectReference: null
35
+ }
36
+ }
37
+ const _default = exports.default = describeObjectDetail
@@ -1,36 +1,36 @@
1
- import { describeableObject } from './describeObject';
2
- import { descriptorMap } from './samples/descriptorMap';
3
- type describeObjectMapOptions = {
4
- mapLimit?: number;
5
- depthLimit?: number;
6
- keepValues?: boolean;
7
- };
8
- /**
9
- * Trace out the entire object including nested objects, producing a flat descriptorMap - see the
10
- * {@link module:objectDescriptors} module description for what a descriptor represents and why it's flat. This is
11
- * the main entry point into this module: start here to describe a real object/array before comparing, merging, or
12
- * inspecting its structure with the other functions in this module.
13
- * @example
14
- * describeObjectMap({ name: 'example', tags: ['a', 'b'] })
15
- * // [
16
- * // { index: 0, details: [...], length: 2, keys: ['name', 'tags'], references: [1], isArray: false, complete: true },
17
- * // { index: 1, details: [...], length: 2, keys: [0], references: [], isArray: true, complete: true }
18
- * // ]
19
- * // descriptorMap[0] describes the top-level object; its 'tags' property is a reference (references: [1]) to
20
- * // descriptorMap[1], which separately describes that nested array. descriptorMap[1]'s own `length` (2) reflects
21
- * // the array's actual length, but `keys` has only one entry (0) since both elements share the same type
22
- * // ('string') and are described together by a single, representative descriptorDetail.
23
- * @memberOf module:objectDescriptors
24
- * @param {Object|Array} object - The real object or array to describe.
25
- * @param {Object} [options={}]
26
- * @param {number} [options.mapLimit=1000000000] - Stop describing further nested references once the map reaches
27
- * this many descriptors - a safety limit for extremely large or deeply-referenced structures.
28
- * @param {number} [options.depthLimit=-1] - How many levels of nested objects/arrays to describe; `-1` means no
29
- * limit, `0` describes only the top level, etc.
30
- * @param {boolean} [options.keepValues=false] - By default, each detail's actual values are cleared once its
31
- * descriptor is complete (to save memory) - set true to keep them.
32
- * @returns {module:objectDescriptors~descriptorMap}
33
- */
34
- declare const describeObjectMap: (object: describeableObject, { mapLimit, depthLimit, keepValues }?: describeObjectMapOptions) => descriptorMap;
35
- export default describeObjectMap;
1
+ import { describeableObject } from './describeObject';
2
+ import { descriptorMap } from './samples/descriptorMap';
3
+ type describeObjectMapOptions = {
4
+ mapLimit?: number;
5
+ depthLimit?: number;
6
+ keepValues?: boolean;
7
+ };
8
+ /**
9
+ * Trace out the entire object including nested objects, producing a flat descriptorMap - see the
10
+ * {@link module:objectDescriptors} module description for what a descriptor represents and why it's flat. This is
11
+ * the main entry point into this module: start here to describe a real object/array before comparing, merging, or
12
+ * inspecting its structure with the other functions in this module.
13
+ * @example
14
+ * describeObjectMap({ name: 'example', tags: ['a', 'b'] })
15
+ * // [
16
+ * // { index: 0, details: [...], length: 2, keys: ['name', 'tags'], references: [1], isArray: false, complete: true },
17
+ * // { index: 1, details: [...], length: 2, keys: [0], references: [], isArray: true, complete: true }
18
+ * // ]
19
+ * // descriptorMap[0] describes the top-level object; its 'tags' property is a reference (references: [1]) to
20
+ * // descriptorMap[1], which separately describes that nested array. descriptorMap[1]'s own `length` (2) reflects
21
+ * // the array's actual length, but `keys` has only one entry (0) since both elements share the same type
22
+ * // ('string') and are described together by a single, representative descriptorDetail.
23
+ * @memberOf module:objectDescriptors
24
+ * @param {Object|Array} object - The real object or array to describe.
25
+ * @param {Object} [options={}]
26
+ * @param {number} [options.mapLimit=1000000000] - Stop describing further nested references once the map reaches
27
+ * this many descriptors - a safety limit for extremely large or deeply-referenced structures.
28
+ * @param {number} [options.depthLimit=-1] - How many levels of nested objects/arrays to describe; `-1` means no
29
+ * limit, `0` describes only the top level, etc.
30
+ * @param {boolean} [options.keepValues=false] - By default, each detail's actual values are cleared once its
31
+ * descriptor is complete (to save memory) - set true to keep them.
32
+ * @returns {module:objectDescriptors~descriptorMap}
33
+ */
34
+ declare const describeObjectMap: (object: describeableObject, { mapLimit, depthLimit, keepValues }?: describeObjectMapOptions) => descriptorMap;
35
+ export default describeObjectMap;
36
36
  //# sourceMappingURL=describeObjectMap.d.ts.map