es-next-tools
v1.0.1
Published
Useful package
Downloads
32
Maintainers
Readme
es-next-tools
A comprehensive utility library for JavaScript and TypeScript that provides a wide range of functions for common programming tasks, including mathematical operations, date manipulations, array and object handling, string utilities, and more.
Features
- Math Utilities: Functions for converting between degrees and radians, calculating GCD and LCM, linear interpolation, and clamping values.
- Date Utilities: Functions for adding days to a date, formatting dates, and calculating the difference between two dates.
- Array Utilities: Functions for zipping arrays, finding intersections, and removing duplicates.
- Object Utilities: Functions for filtering, omitting, and picking properties from objects, as well as deep merging and inverting key-value pairs.
- Promise Utilities: Functions for adding timeouts to promises, running promises in parallel, and retrying promises.
- String Utilities: Functions for checking substring presence and reversing strings.
- Function Utilities: Functions for debouncing, throttling, memoizing, and creating functions that run only once or after a certain number of calls.
- Data Structures: Implementations of common data structures like Stack, Queue, and Priority Queue.
Installation
You can install the library using npm/pnpm/yarn/bun:
npm install es-next-tools
or
pnpm add es-next-tools
yarn add es-next-tools
bun add es-next-tools
Usage
Here are some examples of how to use the library:
You can also
import { } from 'es-next-tools';
Math Utilities
import { clamp, gcd, lcm } from 'es-next-tools/math';
const clampedValue = clamp(0, 5, 10); // 5
const greatestCommonDivisor = gcd(42, 30); // 6
const leastCommonMultiple = lcm(30, 50); // 150
Date utilities
import { addDays, format } from 'es-next-tools/date';
const newDate = addDays(new Date('2023-05-01'), 5); // 2023-05-06
const formattedDate = format(new Date(), 'YYYY-MM-DD'); // e.g., '2024-10-01'
Array utilities
import { unique, intersection } from 'es-next-tools/array';
const uniqueArray = unique([1, 2, 2, 3, 4]); // [1, 2, 3, 4]
const commonElements = intersection([1, 2, 3], [2, 3, 4]); // [2, 3]
Object utilities
import { pick, omit } from 'es-next-tools/object';
const obj = { a: 1, b: 2, c: 3 };
const picked = pick(obj, ['a', 'c']); // { a: 1, c: 3 }
const omitted = omit(obj, ['b']); // { a: 1, c: 3 }
const omitted_v2_remastered = omit(obj,
(k,v) => v !== ~~(Math.random() * (3 - 1) + 1)
);
// { b: 2, c: 3 } - for example