Comprehensive JavaScript utility library with 150+ functions for objects, arrays, dates, strings, numbers, and more
npx @tessl/cli install tessl/npm-xe-utils@3.7.0xe-utils is a comprehensive JavaScript utility library providing 150+ utility functions organized into 9 functional categories. It offers precise implementations for common programming tasks including object manipulation, array operations, string processing, date handling, number formatting, URL operations, and web-related functionality. The library is designed for maximum flexibility with tree-shaking support and works in both browser and Node.js environments.
npm install xe-utilsimport XEUtils from 'xe-utils';For CommonJS:
const XEUtils = require('xe-utils');Individual function imports for tree-shaking:
import each from 'xe-utils/each';
import toDateString from 'xe-utils/toDateString';
import isArray from 'xe-utils/isArray';Category-based imports:
import XEUtils from 'xe-utils/ctor';
import objectMethods from 'xe-utils/object';
import arrayMethods from 'xe-utils/array';
import baseMethods from 'xe-utils/base';import XEUtils from 'xe-utils';
// Object operations
const merged = XEUtils.merge({ a: 1 }, { b: 2 });
XEUtils.each(merged, (value, key) => console.log(key, value));
// Array operations
const users = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }];
const names = XEUtils.pluck(users, 'name'); // ['Alice', 'Bob']
const adults = XEUtils.filter(users, user => user.age >= 18);
// Date formatting
const formatted = XEUtils.toDateString(new Date(), 'yyyy-MM-dd HH:mm:ss');
// Number operations with precision
const sum = XEUtils.add(0.1, 0.2); // Precise arithmetic: 0.3
// String operations
const camelCased = XEUtils.camelCase('hello-world'); // 'helloWorld'xe-utils is built around several key design principles:
Core functionality for object manipulation including property copying, merging, and iteration. Essential for data transformation and object utilities.
function assign(target: any, ...sources: any[]): any;
function merge(target: any, ...sources: any[]): any;
function objectEach<T>(obj: T, iterate: (value: any, key: string) => void): void;
function objectMap<T, U>(obj: T, iterate: (value: any, key: string) => U): { [key: string]: U };Comprehensive array manipulation including functional programming methods, sorting, grouping, and tree operations. Perfect for data processing pipelines.
function map<T, U>(array: T[], iterate: (item: T, index: number) => U): U[];
function filter<T>(array: T[], iterate: (item: T, index: number) => boolean): T[];
function uniq<T>(array: T[]): T[];
function sortBy<T>(array: T[], iterate: (item: T) => any): T[];
function chunk<T>(array: T[], size: number): T[][];
function flatten<T>(array: any[], deep?: boolean): T[];
function zip<T>(...arrays: T[][]): T[][];
function arrayEach<T>(array: T[], iterate: (item: T, index: number) => void): void;
function some<T>(array: T[], iterate: (item: T, index: number) => boolean): boolean;
function every<T>(array: T[], iterate: (item: T, index: number) => boolean): boolean;Comprehensive type checking utilities for runtime validation and type guards. Includes checks for all JavaScript types plus DOM and web API types.
function isArray(val: any): val is any[];
function isObject(val: any): val is object;
function isString(val: any): val is string;
function isNumber(val: any): val is number;
function isFunction(val: any): val is Function;
function isEmpty(val: any): boolean;
function isEqual(val1: any, val2: any): boolean;Core utilities for iteration, property access, cloning, and general object/array operations. Foundation methods used throughout applications.
function each<T>(obj: T[] | T, iterate: (item: any, key: string | number) => void): void;
function clone<T>(obj: T, deep?: boolean): T;
function get(obj: any, path: string | string[], defaultValue?: any): any;
function set(obj: any, path: string | string[], value: any): void;
function keys(obj: any): string[];
function values(obj: any): any[];
function groupBy<T>(array: T[], iterate: (item: T) => string | number): { [key: string]: T[] };
function countBy<T>(array: T[], iterate: (item: T) => string | number): { [key: string]: number };Precise arithmetic operations and number formatting utilities. Solves JavaScript's floating-point precision issues and provides advanced number formatting.
function add(num1: number, num2: number): number;
function subtract(num1: number, num2: number): number;
function multiply(num1: number, num2: number): number;
function divide(num1: number, num2: number): number;
function round(num: number, digits?: number): number;
function commafy(num: number | string, options?: CommafyOptions): string;Comprehensive date manipulation, formatting, and calculation utilities. Supports custom formats, internationalization, and complex date arithmetic.
function toDateString(date: Date | string | number, format?: string, options?: ToDateStringOptions): string;
function toStringDate(str: string, formats?: string[]): Date;
function getDateDiff(startDate: Date, endDate: Date, unit?: DateUnit): number;
function isValidDate(date: any): boolean;
function getWhatWeek(date: Date, startDay?: number): number;String manipulation utilities including case conversion, padding, trimming, templating, and HTML escaping. Essential for text processing and formatting.
function camelCase(str: string): string;
function kebabCase(str: string): string;
function padStart(str: string, targetLength: number, padString?: string): string;
function trim(str: string, chars?: string): string;
function template(str: string, obj: any, options?: TemplateOptions): string;Function manipulation utilities including binding, throttling, debouncing, and execution control. Perfect for event handling and performance optimization.
function throttle<T extends (...args: any[]) => any>(fn: T, wait: number, options?: ThrottleOptions): T;
function debounce<T extends (...args: any[]) => any>(fn: T, wait: number, options?: DebounceOptions): T;
function once<T extends (...args: any[]) => any>(fn: T): T;
function bind(fn: Function, thisArg: any, ...args: any[]): Function;Browser-specific utilities for URL parsing, cookie management, navigation, and browser detection. Essential for web development and browser compatibility.
function parseUrl(url: string): ParsedUrl;
function serialize(obj: any, options?: SerializeOptions): string;
function cookie(name?: string, value?: any, options?: CookieOptions): any;
function browse(): BrowserInfo;interface XEUtilsMethods {
version: string;
mixin(...methods: { [key: string]: any }[]): void;
setup(options: any): any;
getConfig(): any;
// All utility methods are available as properties
[key: string]: any;
}
interface CommafyOptions {
separator?: string;
fixed?: number;
rounding?: boolean;
}
interface ToDateStringOptions {
firstDay?: number;
formats?: {
q?: string[] | ((value: any, match: string, date: Date) => string);
E?: string[] | ((value: any, match: string, date: Date) => string);
};
}
interface TemplateOptions {
tmplRE?: RegExp;
escape?: boolean;
}
interface ThrottleOptions {
leading?: boolean;
trailing?: boolean;
}
interface DebounceOptions {
leading?: boolean;
trailing?: boolean;
}