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.
- package/dist/helpers/arrays/addUniqueToArray.d.ts +11 -0
- package/dist/helpers/arrays/buildArray.d.ts +12 -0
- package/dist/helpers/arrays/buildArrayOfReferences.d.ts +12 -0
- package/dist/helpers/arrays/compareArrays.d.ts +98 -0
- package/dist/helpers/arrays/mergeArrays.d.ts +10 -0
- package/dist/helpers/arrays/uniqueArray.d.ts +10 -0
- package/dist/helpers/arrays.d.ts +18 -0
- package/dist/helpers/descriptors/assignDescriptor.d.ts +12 -0
- package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +12 -0
- package/dist/helpers/descriptors/checkClearValues.d.ts +12 -0
- package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +11 -0
- package/dist/helpers/descriptors/cloneDescriptor.d.ts +11 -0
- package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +11 -0
- package/dist/helpers/descriptors/compareDescriptor.d.ts +12 -0
- package/dist/helpers/descriptors/describeObject.d.ts +14 -0
- package/dist/helpers/descriptors/describeObjectDetail.d.ts +13 -0
- package/dist/helpers/descriptors/describeObjectMap.d.ts +21 -0
- package/dist/helpers/descriptors/nextReference.d.ts +12 -0
- package/dist/helpers/descriptors/sameDescriptor.d.ts +12 -0
- package/dist/helpers/descriptors/samples/descriptor.d.ts +27 -0
- package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +34 -0
- package/dist/helpers/descriptors/samples/descriptorMap.d.ts +12 -0
- package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +7 -0
- package/dist/helpers/descriptors.d.ts +28 -0
- package/dist/helpers/functions/callWithParams.d.ts +12 -0
- package/dist/helpers/functions/curry.d.ts +12 -0
- package/dist/helpers/functions/delay.d.ts +22 -0
- package/dist/helpers/functions/onBodyLoad.d.ts +11 -0
- package/dist/helpers/functions/pipe.d.ts +11 -0
- package/dist/helpers/functions/preloadParams.d.ts +21 -0
- package/dist/helpers/functions/queueManager.d.ts +28 -0
- package/dist/helpers/functions/queueTimeout.d.ts +22 -0
- package/dist/helpers/functions/relevancyFilter.d.ts +36 -0
- package/dist/helpers/functions/trace.d.ts +13 -0
- package/dist/helpers/functions.d.ts +28 -0
- package/dist/helpers/numbers/absoluteMax.d.ts +11 -0
- package/dist/helpers/numbers/absoluteMin.d.ts +11 -0
- package/dist/helpers/numbers/compare.d.ts +14 -0
- package/dist/helpers/numbers/randomInteger.d.ts +14 -0
- package/dist/helpers/numbers/randomNumber.d.ts +14 -0
- package/dist/helpers/numbers.d.ts +17 -0
- package/dist/helpers/objects/cloneObject.d.ts +21 -0
- package/dist/helpers/objects/dotGet.d.ts +13 -0
- package/dist/helpers/objects/dotNotate.d.ts +29 -0
- package/dist/helpers/objects/dotSet.d.ts +13 -0
- package/dist/helpers/objects/dotUnset.d.ts +12 -0
- package/dist/helpers/objects/emptyObject.d.ts +10 -0
- package/dist/helpers/objects/filterObject.d.ts +28 -0
- package/dist/helpers/objects/isCloneable.d.ts +10 -0
- package/dist/helpers/objects/isInstanceObject.d.ts +10 -0
- package/dist/helpers/objects/isObject.d.ts +10 -0
- package/dist/helpers/objects/mapObject.d.ts +27 -0
- package/dist/helpers/objects/mergeObjects.d.ts +14 -0
- package/dist/helpers/objects/mergeObjectsBase.d.ts +37 -0
- package/dist/helpers/objects/mergeObjectsMutable.d.ts +14 -0
- package/dist/helpers/objects/objectKeys.d.ts +15 -0
- package/dist/helpers/objects/objectValues.d.ts +15 -0
- package/dist/helpers/objects/reduceObject.d.ts +32 -0
- package/dist/helpers/objects/setAndReturnValue.d.ts +15 -0
- package/dist/helpers/objects/setValue.d.ts +16 -0
- package/dist/helpers/objects.d.ts +100 -0
- package/dist/helpers/strings/camelCase.d.ts +10 -0
- package/dist/helpers/strings/kabobCase.d.ts +10 -0
- package/dist/helpers/strings/snakeCase.d.ts +10 -0
- package/dist/helpers/strings/strAfter.d.ts +11 -0
- package/dist/helpers/strings/strAfterLast.d.ts +11 -0
- package/dist/helpers/strings/strBefore.d.ts +11 -0
- package/dist/helpers/strings/strBeforeLast.d.ts +11 -0
- package/dist/helpers/strings/titleCase.d.ts +10 -0
- package/dist/helpers/strings/ucFirst.d.ts +10 -0
- package/dist/helpers/strings/words.d.ts +10 -0
- package/dist/helpers/strings.d.ts +22 -0
- package/dist/main.d.ts +9 -0
- 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;
|