si-funciona 2.0.0 → 2.0.1

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 (74) hide show
  1. package/dist/helpers/arrays/addUniqueToArray.d.ts +11 -0
  2. package/dist/helpers/arrays/buildArray.d.ts +12 -0
  3. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +12 -0
  4. package/dist/helpers/arrays/compareArrays.d.ts +98 -0
  5. package/dist/helpers/arrays/mergeArrays.d.ts +10 -0
  6. package/dist/helpers/arrays/uniqueArray.d.ts +10 -0
  7. package/dist/helpers/arrays.d.ts +18 -0
  8. package/dist/helpers/descriptors/assignDescriptor.d.ts +12 -0
  9. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +12 -0
  10. package/dist/helpers/descriptors/checkClearValues.d.ts +12 -0
  11. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +11 -0
  12. package/dist/helpers/descriptors/cloneDescriptor.d.ts +11 -0
  13. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +11 -0
  14. package/dist/helpers/descriptors/compareDescriptor.d.ts +12 -0
  15. package/dist/helpers/descriptors/describeObject.d.ts +14 -0
  16. package/dist/helpers/descriptors/describeObjectDetail.d.ts +13 -0
  17. package/dist/helpers/descriptors/describeObjectMap.d.ts +21 -0
  18. package/dist/helpers/descriptors/nextReference.d.ts +12 -0
  19. package/dist/helpers/descriptors/sameDescriptor.d.ts +12 -0
  20. package/dist/helpers/descriptors/samples/descriptor.d.ts +27 -0
  21. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +34 -0
  22. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +12 -0
  23. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +7 -0
  24. package/dist/helpers/descriptors.d.ts +28 -0
  25. package/dist/helpers/functions/callWithParams.d.ts +12 -0
  26. package/dist/helpers/functions/curry.d.ts +12 -0
  27. package/dist/helpers/functions/delay.d.ts +22 -0
  28. package/dist/helpers/functions/onBodyLoad.d.ts +11 -0
  29. package/dist/helpers/functions/pipe.d.ts +11 -0
  30. package/dist/helpers/functions/preloadParams.d.ts +21 -0
  31. package/dist/helpers/functions/queueManager.d.ts +28 -0
  32. package/dist/helpers/functions/queueTimeout.d.ts +22 -0
  33. package/dist/helpers/functions/relevancyFilter.d.ts +36 -0
  34. package/dist/helpers/functions/trace.d.ts +13 -0
  35. package/dist/helpers/functions.d.ts +28 -0
  36. package/dist/helpers/numbers/absoluteMax.d.ts +11 -0
  37. package/dist/helpers/numbers/absoluteMin.d.ts +11 -0
  38. package/dist/helpers/numbers/compare.d.ts +14 -0
  39. package/dist/helpers/numbers/randomInteger.d.ts +14 -0
  40. package/dist/helpers/numbers/randomNumber.d.ts +14 -0
  41. package/dist/helpers/numbers.d.ts +17 -0
  42. package/dist/helpers/objects/cloneObject.d.ts +21 -0
  43. package/dist/helpers/objects/dotGet.d.ts +13 -0
  44. package/dist/helpers/objects/dotNotate.d.ts +29 -0
  45. package/dist/helpers/objects/dotSet.d.ts +13 -0
  46. package/dist/helpers/objects/dotUnset.d.ts +12 -0
  47. package/dist/helpers/objects/emptyObject.d.ts +10 -0
  48. package/dist/helpers/objects/filterObject.d.ts +28 -0
  49. package/dist/helpers/objects/isCloneable.d.ts +10 -0
  50. package/dist/helpers/objects/isInstanceObject.d.ts +10 -0
  51. package/dist/helpers/objects/isObject.d.ts +10 -0
  52. package/dist/helpers/objects/mapObject.d.ts +27 -0
  53. package/dist/helpers/objects/mergeObjects.d.ts +14 -0
  54. package/dist/helpers/objects/mergeObjectsBase.d.ts +37 -0
  55. package/dist/helpers/objects/mergeObjectsMutable.d.ts +14 -0
  56. package/dist/helpers/objects/objectKeys.d.ts +15 -0
  57. package/dist/helpers/objects/objectValues.d.ts +15 -0
  58. package/dist/helpers/objects/reduceObject.d.ts +32 -0
  59. package/dist/helpers/objects/setAndReturnValue.d.ts +15 -0
  60. package/dist/helpers/objects/setValue.d.ts +16 -0
  61. package/dist/helpers/objects.d.ts +100 -0
  62. package/dist/helpers/strings/camelCase.d.ts +10 -0
  63. package/dist/helpers/strings/kabobCase.d.ts +10 -0
  64. package/dist/helpers/strings/snakeCase.d.ts +10 -0
  65. package/dist/helpers/strings/strAfter.d.ts +11 -0
  66. package/dist/helpers/strings/strAfterLast.d.ts +11 -0
  67. package/dist/helpers/strings/strBefore.d.ts +11 -0
  68. package/dist/helpers/strings/strBeforeLast.d.ts +11 -0
  69. package/dist/helpers/strings/titleCase.d.ts +10 -0
  70. package/dist/helpers/strings/ucFirst.d.ts +10 -0
  71. package/dist/helpers/strings/words.d.ts +10 -0
  72. package/dist/helpers/strings.d.ts +22 -0
  73. package/dist/main.d.ts +9 -0
  74. package/package.json +3 -2
@@ -0,0 +1,36 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * An object having an integer valued property named 'relevance'.
4
+ * @typedef {Object} relevanceObject
5
+ * @memberOf module:functionHelpers
6
+ * @property {Array|Object} source
7
+ * @property {Array|Object} object
8
+ * @property {number} relevance
9
+ */
10
+ export type relevanceObject = {
11
+ source: Array<any> | Object;
12
+ object: Array<any> | Object;
13
+ relevance: number;
14
+ };
15
+ /**
16
+ * A map of relevanceObjects which can be manipulated to filter results.
17
+ * @typedef {Array.<relevanceObject>} relevanceMap
18
+ * @memberOf module:functionHelpers
19
+ */
20
+ export type relevanceMap = Array<relevanceObject>;
21
+ type relevancyFilterOptions = {
22
+ mapLimit?: number;
23
+ relevancyRange?: number;
24
+ };
25
+ /**
26
+ * Remove elements out of relevance range and update the max relevance.
27
+ * @function
28
+ * @memberOf module:functionHelpers
29
+ * @param {relevanceMap} map
30
+ * @param {Object} [options={}]
31
+ * @param {int} [options.mapLimit=1000]
32
+ * @param {int} [options.relevancyRange=100]
33
+ * @returns {relevanceMap}
34
+ */
35
+ declare const relevancyFilter: (map: relevanceMap, { mapLimit, relevancyRange }?: relevancyFilterOptions) => relevanceMap;
36
+ export default relevancyFilter;
@@ -0,0 +1,13 @@
1
+ import 'core-js/stable';
2
+ import 'regenerator-runtime/runtime';
3
+ type outputAndReturn = (value: any) => any;
4
+ /**
5
+ * Output the value with label to the console and return the value to not interrupt the code.
6
+ * @function
7
+ * @memberOf module:functionHelpers
8
+ * @param {string} label - Pass an identifying label of the value being output.
9
+ * @param useClone - Determines if the logged data should be a clone of the original to preserve state.
10
+ * @returns {function(*=)}
11
+ */
12
+ declare const trace: (label: string, useClone?: boolean) => outputAndReturn;
13
+ export default trace;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Manage how functions are called with these utilities.
3
+ * @file
4
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
5
+ * @version 1.0.0
6
+ * @module functionHelpers
7
+ * @memberOf module:siFunciona
8
+ */
9
+ import 'core-js/stable';
10
+ declare const _default: {
11
+ callWithParams: (fn: Function, params?: any[], minimum?: number) => any;
12
+ curry: (fn: Function) => any;
13
+ delay: (time?: number) => {
14
+ resolver: Promise<any>;
15
+ cancel: () => void;
16
+ };
17
+ onBodyLoad: (callback: Function, reset?: boolean) => Function[];
18
+ pipe: (...fns: Function[]) => any;
19
+ preloadParams: (fn: Function, params?: any[], unassignedParam?: number) => (missing: any) => any;
20
+ queueManager: (queue?: import("./functions/queueManager").queuedItem[]) => import("./functions/queueManager").queueManagerHandle;
21
+ queueTimeout: (queueManagerHandle?: import("./functions/queueManager").queueManagerHandle) => (fn: Function, time: number, ...args: any) => Promise<any>;
22
+ relevancyFilter: (map: import("./functions/relevancyFilter").relevanceMap, { mapLimit, relevancyRange }?: {
23
+ mapLimit?: number;
24
+ relevancyRange?: number;
25
+ }) => import("./functions/relevancyFilter").relevanceMap;
26
+ trace: (label: string, useClone?: boolean) => (value: any) => any;
27
+ };
28
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Helper for returning the absolute max value
4
+ * @function
5
+ * @memberOf module:numberHelpers
6
+ * @param {number} num1 - A number to compare
7
+ * @param {number} num2 - Another number to be compared against
8
+ * @returns {number}
9
+ */
10
+ declare const absoluteMax: (num1: number, num2: number) => number;
11
+ export default absoluteMax;
@@ -0,0 +1,11 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Helper for returning the absolute min value
4
+ * @function
5
+ * @memberOf module:numberHelpers
6
+ * @param {number} num1 - A number to compare
7
+ * @param {number} num2 - Another number to be compared against
8
+ * @returns {number}
9
+ */
10
+ declare const absoluteMin: (num1: number, num2: number) => number;
11
+ export default absoluteMin;
@@ -0,0 +1,14 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Compare two numbers and return:
4
+ * -1 to indicate val1 is less than val2
5
+ * 0 to indicate both values are the equal
6
+ * 1 to indicate val1 is greater than val2
7
+ * @function
8
+ * @memberOf module:numberHelpers
9
+ * @param {number} val1 - The first number to compare
10
+ * @param {number} val2 - The second number to compare
11
+ * @returns {number}
12
+ */
13
+ declare const compare: (val1: number, val2: number) => number;
14
+ export default compare;
@@ -0,0 +1,14 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Create a single random integer within provide range. And with optional offset,
4
+ * The distance between the result numbers can be adjusted with interval.
5
+ * @function
6
+ * @memberOf module:numberHelpers
7
+ * @param {number} range - Choose the breadth of the random number (0-100 would be 100 for range)
8
+ * @param {number} [offset=0] - Choose the starting number (1-10 would be 1 for offset, 9 for range)
9
+ * @param {number} [interval=1] - Choose the distance between numbers (5, 10, 15 would be 5 for interval, 1 for
10
+ * offset, 2 for range)
11
+ * @returns {number}
12
+ */
13
+ declare const randomInteger: (range: number, offset?: number, interval?: number) => number;
14
+ export default randomInteger;
@@ -0,0 +1,14 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Create a single random number within provided range. And with optional offset,
4
+ * The distance between the result numbers can be adjusted with interval.
5
+ * @function
6
+ * @memberOf module:numberHelpers
7
+ * @param {number} range - Choose the breadth of the random number (0-100 would be 100 for range)
8
+ * @param {number} [offset=0] - Choose the starting number (1-10 would be 1 for offset, 9 for range)
9
+ * @param {number} [interval=1] - Choose the distance between numbers (~5, ~10, ~15 would be 5 for interval, 1 for
10
+ * offset, 2 for range)
11
+ * @returns {number}
12
+ */
13
+ declare const randomNumber: (range: number, offset?: number, interval?: number) => number;
14
+ export default randomNumber;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Some number comparators and random number generators.
3
+ * @file
4
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
5
+ * @version 1.0.0
6
+ * @module numberHelpers
7
+ * @memberOf module:siFunciona
8
+ */
9
+ import 'core-js/stable';
10
+ declare const _default: {
11
+ absoluteMax: (num1: number, num2: number) => number;
12
+ absoluteMin: (num1: number, num2: number) => number;
13
+ compare: (val1: number, val2: number) => number;
14
+ randomInteger: (range: number, offset?: number, interval?: number) => number;
15
+ randomNumber: (range: number, offset?: number, interval?: number) => number;
16
+ };
17
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import 'core-js/stable';
2
+ type cloneObjectOptions = {
3
+ mapLimit?: number;
4
+ depthLimit?: number;
5
+ relevancyRange?: number;
6
+ };
7
+ /**
8
+ * Clone objects for manipulation without data corruption, returns a copy of the provided object.
9
+ * NOTE: Use the mapLimit and relevancyRange to resolve "too much recursion" when the object is large and is known to
10
+ * have circular references. A high mapLimit may lead to heavy memory usage and slow performance.
11
+ * @function
12
+ * @memberOf module:objectHelpers
13
+ * @param {Object} object - The original object that is being cloned
14
+ * @param {Object} [options={}]
15
+ * @param {number} [options.mapLimit=100] - Size of temporary reference array used in memory before assessing relevancy.
16
+ * @param {number} [options.depthLimit=-1] - Control how many nested levels deep will be used, -1 = no limit, >-1 = nth level limited.
17
+ * @param {number} [options.relevancyRange=1000] - Total reference map length subtract this range, any relevancy less than that amount at time of evaluation will be removed.
18
+ * @returns {Object}
19
+ */
20
+ declare const cloneObject: (object: object, { mapLimit, depthLimit, relevancyRange }?: cloneObjectOptions) => object;
21
+ export default cloneObject;
@@ -0,0 +1,13 @@
1
+ import 'core-js/stable';
2
+ import { dotNotateableItem, dotNotationString } from './dotNotate';
3
+ /**
4
+ * Get a nested property value from an object.
5
+ * @function
6
+ * @memberOf module:objectHelpers
7
+ * @param {Object} arrayObject - The array or object to get the property from
8
+ * @param {string} dotNotation - The path to the property
9
+ * @param {string|null} [defaultValue=null] - The default value to return if the property is not found
10
+ * @returns {*} The value of the property
11
+ */
12
+ declare const dotGet: (arrayObject: dotNotateableItem, dotNotation: dotNotationString, defaultValue?: string | null) => any;
13
+ export default dotGet;
@@ -0,0 +1,29 @@
1
+ import 'core-js/stable';
2
+ export type dotNotateableItem = Array<any> | {
3
+ [k: string]: any;
4
+ };
5
+ /**
6
+ * A string representing the full-path to a property in an object. Each depth of the path is separated by a period.
7
+ * @example 'a.b.c'
8
+ * @typedef {string} DotNotationString
9
+ * @memberOf module:objectHelpers
10
+ */
11
+ export type dotNotationString = string;
12
+ /**
13
+ * An array or object where all properties have been flatted and keyed by a dot-notated string.
14
+ * @typedef {Object.<DotNotationString, *>} DotNotatedObject
15
+ * @memberOf module:objectHelpers
16
+ */
17
+ type dotNotatedObject = {
18
+ [k: dotNotationString]: any;
19
+ };
20
+ /**
21
+ * Convert an array or object to a single dimensional associative array with dot notation.
22
+ * @function
23
+ * @memberOf module:objectHelpers
24
+ * @param {Object} arrayObject - The array or object to dot-notate
25
+ * @param {Array.<DotNotationString>} [retainObjects=[]] - An array of keys to retain as objects
26
+ * @returns {DotNotatedObject} The dot-notated object
27
+ */
28
+ declare const dotNotate: (arrayObject: object, retainObjects?: Array<dotNotationString>) => dotNotatedObject;
29
+ export default dotNotate;
@@ -0,0 +1,13 @@
1
+ import 'core-js/stable';
2
+ import { dotNotateableItem, dotNotationString } from './dotNotate';
3
+ /**
4
+ * Set a nested property value an object.
5
+ * @function
6
+ * @memberOf module:objectHelpers
7
+ * @param {Object} arrayObject - The array or object to set the property on
8
+ * @param {string} dotNotation - The path for the property
9
+ * @param {*} value - The default value to return if the property is not found
10
+ * @returns {Object} The modified object
11
+ */
12
+ declare const dotSet: (arrayObject: dotNotateableItem, dotNotation: dotNotationString, value?: any) => dotNotateableItem;
13
+ export default dotSet;
@@ -0,0 +1,12 @@
1
+ import 'core-js/stable';
2
+ import { dotNotateableItem, dotNotationString } from './dotNotate';
3
+ /**
4
+ * Unset a nested property value an object.
5
+ * @function
6
+ * @memberOf module:objectHelpers
7
+ * @param {Object} arrayObject - The array or object to set the property on
8
+ * @param {string} dotNotation - The path for the property
9
+ * @returns {Object} The modified object
10
+ */
11
+ declare const dotUnset: (arrayObject: dotNotateableItem, dotNotation: dotNotationString) => dotNotateableItem;
12
+ export default dotUnset;
@@ -0,0 +1,10 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Helper function for testing if the item is an Object or Array that does not have any properties
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @param {Object|Array} item - Object or Array to test
7
+ * @returns {boolean}
8
+ */
9
+ declare const emptyObject: (item: Array<any> | Object) => boolean;
10
+ export default emptyObject;
@@ -0,0 +1,28 @@
1
+ import 'core-js/stable';
2
+ type filterableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Function is a predicate, to test each property value of the object. Return true to keep the element, false
7
+ * otherwise, taking three arguments
8
+ * @callback module:objectHelpers~filterCallback
9
+ * @memberOf module:objectHelpers
10
+ * @param {*} currentProperty - The current property being processed in the object.
11
+ * @param {string} [currentIndex] - The property name of the current property being processed in the object.
12
+ * @param {Object|Array} [object] - The object filter was called upon.
13
+ * @returns {boolean}
14
+ */
15
+ type filterCallback = (currentProperty: any, currentIndex: keyof filterableItem, object: filterableItem) => boolean;
16
+ /**
17
+ * This function is intended to replicate behaviour of the Array.filter() function but for Objects.
18
+ * If an array is passed in instead then it will perform standard filter(). It is recommended to
19
+ * always use the standard filter() function when it is known that the object is actually an array.
20
+ * @function
21
+ * @memberOf module:objectHelpers
22
+ * @param {Object|Array} obj - The Object (or Array) to be filtered
23
+ * @param {module:objectHelpers~filterCallback|Function} fn - The function to be processed for each filtered property
24
+ * @param {Object|Array} [thisArg] - Optional. Value to use as this when executing callback.
25
+ * @returns {Object|Array}
26
+ */
27
+ declare const filterObject: (obj: filterableItem, fn: filterCallback, thisArg?: filterableItem) => filterableItem;
28
+ export default filterObject;
@@ -0,0 +1,10 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Determine if the value is a reference instance
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @param {Array|Object|*} value
7
+ * @returns {boolean}
8
+ */
9
+ declare const isCloneable: (value: Array<any> | Object | any) => boolean;
10
+ export default isCloneable;
@@ -0,0 +1,10 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Check if the current object has inherited properties.
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @param {Object|Array} object
7
+ * @returns {boolean}
8
+ */
9
+ declare const isInstanceObject: (object: Array<any> | Object) => boolean;
10
+ export default isInstanceObject;
@@ -0,0 +1,10 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Check if the provided thing is an object / array.
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @param {*} object
7
+ * @returns {boolean}
8
+ */
9
+ declare const isObject: (object: any) => boolean;
10
+ export default isObject;
@@ -0,0 +1,27 @@
1
+ import 'core-js/stable';
2
+ type mappableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Function that produces a property of the new Object, taking three arguments
7
+ * @callback module:objectHelpers~mapCallback
8
+ * @memberOf module:objectHelpers
9
+ * @param {*} currentProperty - The current property being processed in the object.
10
+ * @param {string} [currentIndex] - The property name of the current property being processed in the object.
11
+ * @param {Object|Array} [object] - The object map was called upon.
12
+ * @returns {*}
13
+ */
14
+ type mapCallback = (currentProperty: any, currentIndex: keyof mappableItem, object: mappableItem) => any;
15
+ /**
16
+ * This function is intended to replicate behaviour of the Array.map() function but for Objects.
17
+ * If an array is passed in instead then it will perform standard map(). It is recommended to
18
+ * always use the standard map() function when it is known that the object is actually an array.
19
+ * @function
20
+ * @memberOf module:objectHelpers
21
+ * @param {Object|Array} obj - The Object (or Array) to be mapped
22
+ * @param {module:objectHelpers~mapCallback|Function} fn - The function to be processed for each mapped property
23
+ * @param {Object|Array} [thisArg] - Optional. Value to use as this when executing callback.
24
+ * @returns {Object|Array}
25
+ */
26
+ declare const mapObject: (obj: mappableItem, fn: mapCallback, thisArg?: mappableItem) => mappableItem;
27
+ export default mapObject;
@@ -0,0 +1,14 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Uses mergeObjectsBase deep merge objects and arrays, merge by value.
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @see {@link module:objectHelpers~mergeObjectsCallback}
7
+ * @param {...Object} objects - Provide a list of objects which will be merged starting from the end up into the first
8
+ * @returns {*}
9
+ */
10
+ declare const mergeObjects: (...objects: Object[]) => any[] | {
11
+ [k: string]: any;
12
+ [k: number]: any;
13
+ };
14
+ export default mergeObjects;
@@ -0,0 +1,37 @@
1
+ import 'core-js/stable';
2
+ import { relevanceMap } from '../functions/relevancyFilter';
3
+ type mergeableItem = Array<any> | {
4
+ [k: number | string]: any;
5
+ };
6
+ /**
7
+ * Function that takes one or more objects and combines them into one.
8
+ * @typedef {Function} module:objectHelpers~mergeObjectsCallback
9
+ * @memberOf module:objectHelpers
10
+ * @param {...Object} objects - Provide a list of objects which will be merged starting from the end up into the first
11
+ * @returns {*}
12
+ */
13
+ type mergeObjectsCallback = (...objects: Array<Object>) => mergeableItem;
14
+ type mergeObjectsBaseOptions = {
15
+ mapLimit?: number;
16
+ depthLimit?: number;
17
+ relevancyRange?: number;
18
+ map?: relevanceMap;
19
+ useClone?: boolean;
20
+ };
21
+ /**
22
+ * Perform a deep merge of objects. This will return a function that will combine all objects and sub-objects.
23
+ * Objects having the same attributes will overwrite from last object to first.
24
+ * NOTE: Use the mapLimit and relevancyRange to resolve "too much recursion" when the object is large and is known to
25
+ * have circular references. A high mapLimit may lead to heavy memory usage and slow performance.
26
+ * @function
27
+ * @memberOf module:objectHelpers
28
+ * @param {Object} [options={}]
29
+ * @param {number} [options.mapLimit=100] - Size of temporary reference array used in memory before assessing relevancy.
30
+ * @param {number} [options.depthLimit=-1] - Control how many nested levels deep will be used, -1 = no limit, >-1 = nth level limited.
31
+ * @param {number} [options.relevancyRange=1000] - Total reference map length subtract this range, any relevancy less than that amount at time of evaluation will be removed.
32
+ * @param {Iterable|array} [options.map=[]] - A predetermined list of references gathered (to be passed to itself during recursion).
33
+ * @param {boolean} [options.useClone=false]
34
+ * @returns {module:objectHelpers~mergeObjectsCallback|mergeObjectsCallback}
35
+ */
36
+ declare const mergeObjectsBase: ({ mapLimit, depthLimit, relevancyRange, map, useClone, }?: mergeObjectsBaseOptions) => mergeObjectsCallback;
37
+ export default mergeObjectsBase;
@@ -0,0 +1,14 @@
1
+ import 'core-js/stable';
2
+ /**
3
+ * Uses mergeObjectsBase deep merge objects and arrays, merge by reference.
4
+ * @function
5
+ * @memberOf module:objectHelpers
6
+ * @see {@link module:objectHelpers~mergeObjectsCallback}
7
+ * @param {...Object} objects - Provide a list of objects which will be merged starting from the end up into the first
8
+ * @returns {*}
9
+ */
10
+ declare const mergeObjectsMutable: (...objects: Object[]) => any[] | {
11
+ [k: string]: any;
12
+ [k: number]: any;
13
+ };
14
+ export default mergeObjectsMutable;
@@ -0,0 +1,15 @@
1
+ import 'core-js/stable';
2
+ type keyableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Get an array of keys from any object or array. Will return empty array when invalid or there are no keys.
7
+ * Optional flag will include the inherited keys from prototype chain when set.
8
+ * @function
9
+ * @memberOf module:objectHelpers
10
+ * @param {Object|Array} object
11
+ * @param {boolean} [includeInherited=false]
12
+ * @returns {Array.<string|number>}
13
+ */
14
+ declare const objectKeys: (object: keyableItem, includeInherited?: boolean) => Array<any>;
15
+ export default objectKeys;
@@ -0,0 +1,15 @@
1
+ import 'core-js/stable';
2
+ type arrayObjectItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Get an array of values from any object or array. Will return empty array when invalid or there are no values.
7
+ * Optional flag will include the inherited values from prototype chain when set.
8
+ * @function
9
+ * @memberOf module:objectHelpers
10
+ * @param {Object|Array} object
11
+ * @param {boolean} [includeInherited=false]
12
+ * @returns {Array}
13
+ */
14
+ declare const objectValues: (object: arrayObjectItem, includeInherited?: boolean) => Array<any>;
15
+ export default objectValues;
@@ -0,0 +1,32 @@
1
+ import 'core-js/stable';
2
+ type reduceableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Function to execute on each property in the object, taking four arguments
7
+ * @callback module:objectHelpers~reduceCallback
8
+ * @memberOf module:objectHelpers
9
+ * @param {*} [accumulator={}] - The accumulator accumulates the callback's return values; it is the accumulated
10
+ * value previously returned in the last invocation of the callback, or initialValue, if supplied (see below).
11
+ * @param {*} [currentProperty={}] - The current property being processed in the object.
12
+ * @param {string} [currentIndex=0] - The index of the current element being processed in the array. Starts at index
13
+ * 0, if an initialValue is provided, and at index 1 otherwise.
14
+ * @param {Object|Array} [object={}] - The object reduce was called upon.
15
+ * @returns {*}
16
+ */
17
+ type reduceCallback = (accumulator: any, currentProperty: any, currentIndex: keyof reduceableItem, object: reduceableItem) => any;
18
+ /**
19
+ * This function is intended to replicate behaviour of the Array.reduce() function but for Objects.
20
+ * If an array is passed in instead then it will perform standard reduce(). It is recommended to
21
+ * always use the standard reduce() function when it is known that the object is actually an array.
22
+ * @function
23
+ * @memberOf module:objectHelpers
24
+ * @param {Object|Array} obj - The Object (or Array) to be filtered
25
+ * @param {module:objectHelpers~reduceCallback|Function|reduceCallback} fn - The function to be processed for each filtered property
26
+ * @param {Object|Array} [initialValue] - Optional. Value to use as the first argument to the first call of the
27
+ * callback. If no initial value is supplied, the first element in the array will be used. Calling reduce on an empty
28
+ * array without an initial value is an error.
29
+ * @returns {*}
30
+ */
31
+ declare const reduceObject: (obj: reduceableItem, fn: reduceCallback, initialValue?: reduceableItem) => any;
32
+ export default reduceObject;
@@ -0,0 +1,15 @@
1
+ import 'core-js/stable';
2
+ type settableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Set a value on an item, then return the value
7
+ * @function
8
+ * @memberOf module:objectHelpers
9
+ * @param {Object|Array} item - An object or array to be updated
10
+ * @param {string|number} key - The key on the item which will have its value set
11
+ * @param {*} value - Any value to be applied to the key
12
+ * @returns {*}
13
+ */
14
+ declare const setAndReturnValue: (item: settableItem, key: keyof settableItem, value: any) => any;
15
+ export default setAndReturnValue;
@@ -0,0 +1,16 @@
1
+ import 'core-js/stable';
2
+ type settableItem = Array<any> | {
3
+ [k: number | string]: any;
4
+ };
5
+ /**
6
+ * Set a value on an item, then return the item.
7
+ * NOTE: Argument order designed for usage with pipe
8
+ * @function
9
+ * @memberOf module:objectHelpers
10
+ * @param {string|number} key - The key on the item which will have its value set
11
+ * @param {*} value - Any value to be applied to the key
12
+ * @param {Object|Array} item - An object or array to be updated
13
+ * @returns {Object|Array}
14
+ */
15
+ declare const setValue: (key: number | string, value: any, item: settableItem) => settableItem;
16
+ export default setValue;
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Simplify working with object by providing array-like parsing. Also, provides cloning and merging along with accessors that always have a return value for optimal nesting.
3
+ * @file
4
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
5
+ * @version 1.0.0
6
+ * @module objectHelpers
7
+ * @memberOf module:siFunciona
8
+ */
9
+ import 'core-js/stable';
10
+ declare const _default: {
11
+ cloneObject: (object: object, { mapLimit, depthLimit, relevancyRange }?: {
12
+ mapLimit?: number;
13
+ depthLimit?: number;
14
+ relevancyRange?: number;
15
+ }) => object;
16
+ dotGet: (arrayObject: import("./objects/dotNotate").dotNotateableItem, dotNotation: string, defaultValue?: string) => any;
17
+ dotNotate: (arrayObject: object, retainObjects?: string[]) => {
18
+ [k: string]: any;
19
+ };
20
+ dotSet: (arrayObject: import("./objects/dotNotate").dotNotateableItem, dotNotation: string, value?: any) => import("./objects/dotNotate").dotNotateableItem;
21
+ dotUnset: (arrayObject: import("./objects/dotNotate").dotNotateableItem, dotNotation: string) => import("./objects/dotNotate").dotNotateableItem;
22
+ emptyObject: (item: Object | any[]) => boolean;
23
+ filterObject: (obj: any[] | {
24
+ [k: string]: any;
25
+ [k: number]: any;
26
+ }, fn: (currentProperty: any, currentIndex: number | "length" | "toString" | "concat" | "indexOf" | "lastIndexOf" | "slice" | "includes" | "at" | "toLocaleString" | "join" | "every" | "some" | "forEach" | "map" | "filter" | "reduce" | "reduceRight" | "find" | "findIndex" | "entries" | "keys" | "values" | "flatMap" | "flat" | "pop" | "push" | "reverse" | "shift" | "sort" | "splice" | "unshift" | "fill" | "copyWithin", object: any[] | {
27
+ [k: string]: any;
28
+ [k: number]: any;
29
+ }) => boolean, thisArg?: any[] | {
30
+ [k: string]: any;
31
+ [k: number]: any;
32
+ }) => any[] | {
33
+ [k: string]: any;
34
+ [k: number]: any;
35
+ };
36
+ isCloneable: (value: any) => boolean;
37
+ isInstanceObject: (object: Object | any[]) => boolean;
38
+ isObject: (object: any) => boolean;
39
+ mapObject: (obj: any[] | {
40
+ [k: string]: any;
41
+ [k: number]: any;
42
+ }, fn: (currentProperty: any, currentIndex: number | "length" | "toString" | "concat" | "indexOf" | "lastIndexOf" | "slice" | "includes" | "at" | "toLocaleString" | "join" | "every" | "some" | "forEach" | "map" | "filter" | "reduce" | "reduceRight" | "find" | "findIndex" | "entries" | "keys" | "values" | "flatMap" | "flat" | "pop" | "push" | "reverse" | "shift" | "sort" | "splice" | "unshift" | "fill" | "copyWithin", object: any[] | {
43
+ [k: string]: any;
44
+ [k: number]: any;
45
+ }) => any, thisArg?: any[] | {
46
+ [k: string]: any;
47
+ [k: number]: any;
48
+ }) => any[] | {
49
+ [k: string]: any;
50
+ [k: number]: any;
51
+ };
52
+ mergeObjects: (...objects: Object[]) => any[] | {
53
+ [k: string]: any;
54
+ [k: number]: any;
55
+ };
56
+ mergeObjectsBase: ({ mapLimit, depthLimit, relevancyRange, map, useClone, }?: {
57
+ mapLimit?: number;
58
+ depthLimit?: number;
59
+ relevancyRange?: number;
60
+ map?: import("./functions/relevancyFilter").relevanceMap;
61
+ useClone?: boolean;
62
+ }) => (...objects: Object[]) => any[] | {
63
+ [k: string]: any;
64
+ [k: number]: any;
65
+ };
66
+ mergeObjectsMutable: (...objects: Object[]) => any[] | {
67
+ [k: string]: any;
68
+ [k: number]: any;
69
+ };
70
+ objectKeys: (object: any[] | {
71
+ [k: string]: any;
72
+ [k: number]: any;
73
+ }, includeInherited?: boolean) => any[];
74
+ objectValues: (object: any[] | {
75
+ [k: string]: any;
76
+ [k: number]: any;
77
+ }, includeInherited?: boolean) => any[];
78
+ reduceObject: (obj: any[] | {
79
+ [k: string]: any;
80
+ [k: number]: any;
81
+ }, fn: (accumulator: any, currentProperty: any, currentIndex: number | "length" | "toString" | "concat" | "indexOf" | "lastIndexOf" | "slice" | "includes" | "at" | "toLocaleString" | "join" | "every" | "some" | "forEach" | "map" | "filter" | "reduce" | "reduceRight" | "find" | "findIndex" | "entries" | "keys" | "values" | "flatMap" | "flat" | "pop" | "push" | "reverse" | "shift" | "sort" | "splice" | "unshift" | "fill" | "copyWithin", object: any[] | {
82
+ [k: string]: any;
83
+ [k: number]: any;
84
+ }) => any, initialValue?: any[] | {
85
+ [k: string]: any;
86
+ [k: number]: any;
87
+ }) => any;
88
+ setAndReturnValue: (item: any[] | {
89
+ [k: string]: any;
90
+ [k: number]: any;
91
+ }, key: number | "length" | "toString" | "concat" | "indexOf" | "lastIndexOf" | "slice" | "includes" | "at" | "toLocaleString" | "join" | "every" | "some" | "forEach" | "map" | "filter" | "reduce" | "reduceRight" | "find" | "findIndex" | "entries" | "keys" | "values" | "flatMap" | "flat" | "pop" | "push" | "reverse" | "shift" | "sort" | "splice" | "unshift" | "fill" | "copyWithin", value: any) => any;
92
+ setValue: (key: string | number, value: any, item: any[] | {
93
+ [k: string]: any;
94
+ [k: number]: any;
95
+ }) => any[] | {
96
+ [k: string]: any;
97
+ [k: number]: any;
98
+ };
99
+ };
100
+ export default _default;