@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
45 lines (44 loc) • 1.57 kB
JavaScript
import { avg } from "./avg.js";
import { count } from "./count.js";
import { first } from "./first.js";
import { group } from "./group.js";
import { last } from "./last.js";
import { max } from "./max.js";
import { min } from "./min.js";
import { sum } from "./sum.js";
/**
* Collection of built-in array utility functions for numerical and statistical operations.
* Each function handles null and undefined values gracefully.
* @example
* import { builtIns } from './builtIns.js';
*
* const data = [1, null, 3, 2];
* builtIns.sum(data); // Returns 6
* builtIns.avg(data); // Returns 2
*/
export const builtIns = {
/** Calculate sum of non-null numbers in array */
sum: sum,
/** Count non-null/undefined elements in array */
count: count,
/** Calculate average of non-null numbers in array */
avg: avg,
/** Get first non-null/undefined element in array */
first: first,
/** Get last non-null/undefined element in array */
last: last,
/** Find minimum value among non-null/undefined numbers in array */
min: min,
/** Find maximum value among non-null/undefined numbers in array */
max: max,
/** Return the aggregation group */
group: group,
};
/**
* Set containing valid built-in function names.
* Used for validating function names and checking available operations.
* @example
* const isValidFunction = validBuiltIns.has('sum'); // Returns true
* const isInvalidFunction = validBuiltIns.has('median'); // Returns false
*/
export const validBuiltIns = new Set(Object.keys(builtIns));