npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ts-copilot

v1.0.0-Beta

Published

A rich and colorful toolkit about typescript and javascript.

Downloads

427

Readme

ts-copilot

A toolkit for ts

Usage

npm i ts-copilot

ts-copilot - v1.0.0-Beta

ts-copilot - v1.0.0-Beta

Table of contents

References

Functions

References

includes

Renames and re-exports contains

Functions

add

add(a, b): number

Adds two numbers with fixed precision.

Since

1.0.0

Example

add(0.1, 0.2) // returns 0.3

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | a | number | The first number to add. | | b | number | The second number to add. |

Returns

number

The result of adding the two numbers.

Defined in

packages/eskit/src/add.ts:14


clamp

clamp(num, min, max): number

Limits a number to be within a certain range.

Since

1.0.0

Example

// returns -5
clamp(-10, -5, 5);

Example

// returns 5
clamp(10, -5, 5);

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | num | number | The number to clamp. | | min | number | The lower boundary of the range. | | max | number | The upper boundary of the range. |

Returns

number

The clamped number.

Defined in

packages/eskit/src/clamp.ts:22


clone

clone<T>(obj): T

Create a clone of the given object.

Example

const obj = { a: 1, b: { c: 2 } };
const cloneObj = clone(obj);
console.log(cloneObj); // { a: 1, b: { c: 2 } }

Since

1.0.0

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | obj | T | The object to clone. |

Returns

T

The cloned object.

Defined in

packages/eskit/src/clone.ts:14


compose

compose<T>(...funcs): (arg: T) => T

Composes an array of functions into a single function from right to left.

Since

1.0.0

Example

const add = (a: number) => (b: number) => a + b;
const multiplyByTwo = (a: number) => a * 2;
const addAndMultiply = compose(multiplyByTwo, add(1), add(2));
const result = addAndMultiply(3); // (3 + 2 + 1) * 2 = 12

Type parameters

| Name | Description | | :------ | :------ | | T | The type of the input and output value. |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | ...funcs | (arg: T) => T[] | An array of functions to compose. |

Returns

fn

A new function that will execute the input functions in reverse order.

▸ (arg): T

Parameters

| Name | Type | | :------ | :------ | | arg | T |

Returns

T

Defined in

packages/eskit/src/compose.ts:17


constantize

constantize<T>(obj): void

Freezes an object and recursively freezes its enumerable properties (but not their children).

Since

1.0.0

Type parameters

| Name | Type | | :------ | :------ | | T | extends Record<string, any> |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | obj | T | The object to be frozen. |

Returns

void

Defined in

packages/eskit/src/constantize.ts:7


contains

contains(arr, value, position?): boolean

Determines whether an array or string contains a specified value.

Example

const arr = [1, 2, 3, 4];
contains(arr, 3); // Returns true
contains('hello', 'w', 3); // Returns false

Parameters

| Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | arr | string | any[] | undefined | The array or string to search through. | | value | any | undefined | The value to search for. | | position | number | -1 | Optional. The index to start searching from. Default is -1. |

Returns

boolean

A boolean indicating whether the value was found.

Defined in

packages/eskit/src/contains.ts:19


copyProperties

copyProperties<T, U>(target, source): void

Copies all properties of source to target, including non-enumerable ones.

Since

1.0.0

Example

const source = { a: 1, b: 2 };
const target = { c: 3 };

copyProperties(target, source);

console.log(target); // {a: 1, b: 2, c: 3}

Type parameters

| Name | Type | | :------ | :------ | | T | T | | U | extends Record<string, unknown> |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | target | T | The target object. | | source | U | The source object to copy from. |

Returns

void

Defined in

packages/eskit/src/copy-properties.ts:17


curry

curry(fn): (...args: any[]) => (...args: any[]) => any

Curry a function with given arguments.

Example

const add = (a: number, b: number) => a + b;
const curriedAdd = curry(add);

const add5 = curriedAdd(5);
console.log(add5(3)); // Output: 8

const add2 = curriedAdd(2);
console.log(add2(4)); // Output: 6

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | fn | (...args: any[]) => any | The function to be curried. |

Returns

fn

A curried function.

▸ (...args): (...args: any[]) => any

Parameters

| Name | Type | | :------ | :------ | | ...args | any[] |

Returns

fn

▸ (...args): any

Parameters

| Name | Type | | :------ | :------ | | ...args | any[] |

Returns

any

Defined in

packages/eskit/src/curry.ts:17


debounced

debounced<Args>(fn, delay, immediate?): DebouncedFn

Creates a debounced function that waits for the specified delay after the last call before executing.

Type parameters

| Name | Type | | :------ | :------ | | Args | extends any[] |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | fn | (...args: Args) => void | The function to wrap. | | delay | number | The delay time (in milliseconds) before the function is executed. | | immediate? | boolean | Whether to execute the function immediately on the first call. |

Returns

DebouncedFn

The wrapped debounced function.

Defined in

packages/eskit/src/debounced.ts:14


deepClone

deepClone<T>(obj): T

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | | :------ | :------ | | obj | T |

Returns

T

Defined in

packages/eskit/src/deep-clone.ts:7


difference

difference<T>(arr, values?): T[]

Returns an array of values in arr that are not in the values array.

Typeparam

T The type of the array elements.

Example

const arr = [1, 2, 3, 4, 5]
const values = [3, 4, 5, 6, 7]

difference(arr, values) // Returns: [1, 2]

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | arr | T[] | undefined | The array to inspect. | | values | T[] | [] | The values to exclude from the result. |

Returns

T[]

An array of values in arr that are not in the values array.

Defined in

packages/eskit/src/difference.ts:20


divide

divide(a, b): number

Divides two numbers and returns the quotient.

Example

// Returns 2
divide(4, 2);

Example

// Returns 2.5
divide(5, 2);

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | a | number | The dividend. | | b | number | The divisor. |

Returns

number

The quotient.

Defined in

packages/eskit/src/divide.ts:16


each

each<T>(collection, func): void

Iterates over elements of collection and invokes func for each element.

Example

each([1, 2, 3], (value, index, collection) => console.log(value, index));
each({ a: 1, b: 2, c: 3 }, (value, key, collection) => console.log(value, key));

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | collection | Record<string, T> | T[] | The collection to iterate over. | | func | (value: T, key?: string | number, collection?: Record<string, T> | T[]) => any | The function invoked per iteration. |

Returns

void

Defined in

packages/eskit/src/each.ts:13


extendDeep

extendDeep(parent, child?): ObjectType<any>

Recursively extends an object or array.

Typeparam

T The type of the parent object.

Example

const parent = { a: { b: 1 } };
const child = { a: { c: 2 } };

extendDeep(parent, child); // { a: { b: 1, c: 2 } }

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | parent | ObjectType<any> | The parent object to extend. | | child | ObjectType<any> | The child object to merge into the parent object. |

Returns

ObjectType<any>

The extended object.

Defined in

packages/eskit/src/extend-deep.ts:19


filter

filter<T>(collection, callback): T

Filters the elements of an array or object based on a callback function.

Example

// Define an array of numbers
const numbers = [1, 2, 3, 4, 5];

// Define a callback function to filter even numbers
const isEven = (num: number) => num % 2 === 0;

// Filter the array using the callback function
const evenNumbers = filter(numbers, isEven);

// The new array contains only even numbers
console.log(evenNumbers); // [2, 4]

// Define an object of key-value pairs
const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 };

// Define a callback function to filter even values
const isEvenValue = (val: number) => val % 2 === 0;

// Filter the object using the callback function
const evenValuesObj = filter(obj, (_, value) => isEvenValue(value));

// The new object contains only key-value pairs where the value is even
console.log(evenValuesObj); // { b: 2, d: 4 }

Type parameters

| Name | Type | | :------ | :------ | | T | extends Record<string, unknown> | unknown[] |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | collection | T | The array or object to filter. | | callback | (value: T extends U[] ? U : T[keyof T], indexOrKey: T extends unknown[] ? number : keyof T, collection: T) => boolean | The function to call for each element. Should return true to keep the element, false to remove it. |

Returns

T

A new array or object containing only the elements for which the callback function returned true.

Defined in

packages/eskit/src/filter.ts:31


flatten

flatten<T>(array): T[]

Flattens an array.

Typeparam

T The type of the array elements.

Example

const arr = [1, [2, [3, 4]], 5];

flatten(arr); // [1, 2, 3, 4, 5]

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | array | (T | T[])[] | The array to flatten. |

Returns

T[]

The flattened array.

Defined in

packages/eskit/src/flatten.ts:13


formatMoney

formatMoney(money, currencySymbol?): string

Formats a given number as a string with a currency symbol.

Example

formatMoney(10) // "$10.00"
formatMoney(1000000, "£") // "£1,000,000.00"

Since

1.0.0

Parameters

| Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | money | number | undefined | The number to be formatted. | | currencySymbol | string | '$' | The currency symbol to use. Defaults to '$'. |

Returns

string

A string with the formatted currency symbol and number.

Defined in

packages/eskit/src/format-money.ts:16


formatNumber

formatNumber(val, separator, digitNum?): string

Formats a number with the specified decimal separator and digit number.

This function formats a number with the specified decimal separator and digit number. If the input value is not a valid number, this function returns the input value as a string without formatting.

Example

const formattedNumber = formatNumber(123456.789, ',', 2)
console.log(formattedNumber)
// Output: "123,456.79"

Parameters

| Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | val | number | undefined | The input number to be formatted. | | separator | string | undefined | The decimal separator to use for formatting the number. | | digitNum | number | 0 | The number of digits to appear after the decimal point (defaults to 0). |

Returns

string

The formatted number as a string.

Defined in

packages/eskit/src/format-number.ts:18


getGlobal

getGlobal(): unknown

Returns the global object for the current runtime environment.

This function returns the global object for the current runtime environment. It works in both browser and Node.js environments.

Throws

An error if the global object cannot be located.

Example

const globalObj = getGlobal()

if (typeof globalObj.process === 'object') {
  console.log('Running in Node.js')
} else {
  console.log('Running in browser')
}

Returns

unknown

The global object for the current runtime environment.

Defined in

packages/eskit/src/get-global.ts:21


getRandomInt

getRandomInt(min, max): number

Returns a random integer between the specified minimum and maximum values (inclusive).

This function returns a random integer between the specified minimum and maximum values (inclusive). The minimum and maximum values must be integers, and the minimum value must be less than or equal to the maximum value.

Example

const randomInt = getRandomInt(1, 10)
console.log(randomInt)

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | min | number | The minimum value (inclusive). | | max | number | The maximum value (inclusive). |

Returns

number

A random integer between the specified minimum and maximum values (inclusive).

Defined in

packages/eskit/src/get-random-int.ts:16


getType

getType(value): string

Get the type of a value

Example

getType(42) // "Number"
getType("hello") // "String"
getType([]) // "Array"
getType(null) // "Null"
getType(undefined) // "Undefined"
getType({}) // "Object"

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to get the type of |

Returns

string

The type of the value

Defined in

packages/eskit/src/get-type.ts:19


hasOwnProperty

hasOwnProperty(obj, key): boolean

A reference to the Object.prototype.hasOwnProperty() method.

This function allows you to check if an object has a property defined on itself (i.e., not inherited from its prototype chain).

Example

const obj = { foo: 42 }

hasOwnProperty(obj, 'foo') // true
hasOwnProperty(obj, 'toString') // false

Parameters

| Name | Type | | :------ | :------ | | obj | unknown | | key | PropertyKey |

Returns

boolean

true if the object has the property defined on itself, false otherwise.

Defined in

packages/eskit/src/hasOwnProperty.ts:18


isArguments

isArguments(value): boolean

Tests whether a value is an arguments object.

Example

// Returns true
function sampleFunc() {
  return isArguments(arguments)
}
sampleFunc();

Example

// Returns false
isArguments([1,2,3]);

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to test. |

Returns

boolean

true if the value is an arguments object, false otherwise.

Defined in

packages/eskit/src/is-arguments.ts:23


isArray

isArray(value): value is any[]

Checks if a value is an array.

Example

isArray('abc') // => false
isArray([]) // => true
isArray({ 0: 'a', 1: 'b', 2: 'c', length: 3 }) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to check. |

Returns

value is any[]

true if the value is an array, else false.

Defined in

packages/eskit/src/is-array.ts:15


isArrayBuffer

isArrayBuffer(value): value is unknown[]

Tests whether a value is an ArrayBuffer object.

Example

// Returns false
isArrayBuffer([1,2,3]);

Example

// Returns true
const buffer = new ArrayBuffer(16);
isArrayBuffer(buffer);

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to test. |

Returns

value is unknown[]

true if the value is an ArrayBuffer object, false otherwise.

Defined in

packages/eskit/src/is-array-buffer.ts:21


isArrayLike

isArrayLike(value): boolean

Checks if a value is array-like.

Example

isArrayLike('abc') // => true
isArrayLike([]) // => true
isArrayLike({ 0: 'a', 1: 'b', 2: 'c', length: 3 }) // => true
isArrayLike(Function) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to check. |

Returns

boolean

true if the value is array-like, else false.

Defined in

packages/eskit/src/is-array-like.ts:15


isArrayLikeObject

isArrayLikeObject(value): boolean

Checks if a value is array-like.

Example

isArrayLikeObject('abc') // => true
isArrayLikeObject([]) // => true
isArrayLikeObject(document.querySelectorAll('div')) // => true
isArrayLikeObject(Function) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

boolean

true if the value is array-like, else false.

Defined in

packages/eskit/src/is-array-like-object.ts:19


isBoolean

isBoolean(value): value is boolean

Checks if a value is a boolean.

Example

isBoolean(true) // => true
isBoolean(false) // => true
isBoolean(0) // => false
isBoolean('true') // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is boolean

true if the value is a boolean, else false.

Defined in

packages/eskit/src/is-boolean.ts:16


isDate

isDate(value): value is Date

Checks if a value is a Date object.

Example

isDate(new Date()) // => true
isDate(Date.now()) // => false
isDate('2022-03-30') // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is Date

true if the value is a Date object, else false.

Defined in

packages/eskit/src/is-date.ts:15


isDecimal

isDecimal(num): boolean

Checks if a number is a decimal.

Example

isDecimal(1.5) // => true
isDecimal(3) // => false
isDecimal('1.23') // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | num | unknown | The number to check. |

Returns

boolean

true if the number is a decimal, else false.

Defined in

packages/eskit/src/is-decimal.ts:15


isDefined

isDefined<T>(val): val is T

Checks if a value is defined (not undefined or null).

Example

isDefined(1) // => true
isDefined('hello') // => true
isDefined(null) // => false
isDefined(undefined) // => false

Type parameters

| Name | Description | | :------ | :------ | | T | The type of the value to check. |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | val | undefined | null | T | The value to check. |

Returns

val is T

true if the value is defined, else false.

Defined in

packages/eskit/src/is-defined.ts:16


isElement

isElement(o): boolean

Checks if a value is an Element or HTMLDocument object.

Example

isElement(document.body) // => true
isElement(document.querySelector('.my-class')) // => true
isElement(window) // => false
isElement('not an element') // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | o | unknown | The value to check. |

Returns

boolean

true if the value is an Element or HTMLDocument object, else false.

Defined in

packages/eskit/src/is-element.ts:15


isEmpty

isEmpty(value): boolean

Checks if a value is empty.

A value is considered empty if it is undefined, null, an empty array or string, an empty Map or Set object, or an object with no own properties.

Example

isEmpty(undefined) // => true
isEmpty(null) // => true
isEmpty('') // => true
isEmpty([]) // => true
isEmpty(new Map()) // => true
isEmpty(new Set()) // => true
isEmpty({}) // => true
isEmpty({ prop: 'value' }) // => false
isEmpty([1, 2, 3]) // => false
isEmpty('hello') // => false
isEmpty(new Map([['key', 'value']])) // => false
isEmpty(new Set([1, 2, 3])) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to check. |

Returns

boolean

true if the value is empty, else false.

Defined in

packages/eskit/src/is-empty.ts:32


isEqual

isEqual(value, other): boolean

Determines if two values are equal. Supports objects, arrays, and primitives.

Example

isEqual([1, 2, 3], [1, 2, 3]) // => true
isEqual({a: 1, b: {c: 2}}, {a: 1, b: {c: 2}}) // => true
isEqual('abc', 'abc') // => true
isEqual(1, 2) // => false
isEqual(null, undefined) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to compare. | | other | any | The other value to compare. |

Returns

boolean

True if the values are equal, false otherwise.

Defined in

packages/eskit/src/is-equal.ts:19


isEqualWith

isEqualWith<T>(value, other, fn): boolean

Performs a deep comparison between two values to determine if they are equivalent.

Example

isEqualWith([1, 2, 3], [1, 2, 3], (v1, v2) => {
  if (Array.isArray(v1) && Array.isArray(v2)) {
    return v1.length === v2.length;
  }
  return undefined;
}); // => true

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | T | The value to compare. | | other | T | The other value to compare. | | fn | (v1: T, v2: T) => boolean | The customizer function to use to compare values. |

Returns

boolean

Returns true if the values are equivalent, else false.

Defined in

packages/eskit/src/is-equal-with.ts:19


isError

isError(value): value is Error

Determines whether the given value is an instance of Error.

Example

const err = new Error('Example error');
isError(err); // true

const obj = { error: new Error('Example error') };
isError(obj.error); // true

isError('Error'); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is Error

Whether the given value is an instance of Error.

Defined in

packages/eskit/src/is-error.ts:17


isEven

isEven(num): boolean

Checks if a number is even.

Example

isEven(2); // true
isEven(3); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | num | number | The number to check. |

Returns

boolean

Whether the number is even or not.

Defined in

packages/eskit/src/is-even.ts:12


isFunction

isFunction(value): value is Function

Checks if a given value is a function

Example

isFunction(() => {}) // true
isFunction(function() {}) // true
isFunction(42) // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check |

Returns

value is Function

True if the value is a function, false otherwise

Defined in

packages/eskit/src/is-function.ts:11


isInteger

isInteger(number): boolean

Checks if a value is an integer.

Example

isInteger(0); // true
isInteger(5); // true
isInteger(-10); // true
isInteger(2.5); // false

Parameters

| Name | Type | | :------ | :------ | | number | unknown |

Returns

boolean

Returns true if value is an integer, else false.

Defined in

node_modules/typescript/lib/lib.es2015.core.d.ts:233


isNil

isNil(value): value is undefined | null

Type guard to determine if a value is null or undefined.

Example

isNil(null); // true
isNil(undefined); // true
isNil(''); // false
isNil(0); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to test. |

Returns

value is undefined | null

Whether or not the value is null or undefined.

Defined in

packages/eskit/src/is-nil.ts:17


isNumber

isNumber(value): value is number

Checks if a value is a number.

Example

isNumber(42); // true
isNumber('42'); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is number

Returns true if the value is a number, else false.

Defined in

packages/eskit/src/is-number.ts:12


isObject

isObject(value): value is Record<string, unknown>

Check if a value is an object.

Example

isObject({}) // true
isObject([]) // true
isObject(null) // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is Record<string, unknown>

true if the value is an object, else false.

Defined in

packages/eskit/src/is-object.ts:13


isObjectLike

isObjectLike(value): boolean

Checks if a value is object-like, which means it's not null and its type is 'object'.

Example

isObjectLike({}); // true
isObjectLike([]); // true
isObjectLike(null); // false
isObjectLike(42); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

boolean

True if the value is object-like, false otherwise.

Defined in

packages/eskit/src/is-object-like.ts:13


isPromiseLike

isPromiseLike(obj): boolean

Checks if a given object is promise-like (thenable).

Example

const myPromise = new Promise(resolve => setTimeout(() => resolve('done'), 100));
console.log(isPromiseLike(myPromise)); // true
console.log(isPromiseLike({ then: () => {} })); // true
console.log(isPromiseLike({})); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | obj | any | The object to check. |

Returns

boolean

Whether the object is promise-like.

Defined in

packages/eskit/src/is-promise-like.ts:11


isPrototype

isPrototype(value): boolean

Checks if value is likely a prototype object.

Example

function Foo() {}
isPrototype(Foo.prototype)
// => true

isPrototype({})
// => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

boolean

Whether value is a prototype object.

Defined in

packages/eskit/src/is-prototype.ts:16


isRegExp

isRegExp(value): value is RegExp

Determines whether the given value is a regular expression.

Example

isRegExp(/ab+c/i) // => true
isRegExp('hello') // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is RegExp

true if the value is a regular expression, else false.

Defined in

packages/eskit/src/is-reg-exp.ts:12


isString

isString(value): value is string

Checks if a given value is a string.

Example

isString('hello') // => true
isString(123) // => false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | unknown | The value to check. |

Returns

value is string

Returns true if the given value is a string, else false.

Defined in

packages/eskit/src/is-string.ts:12


isType

isType(type, value): boolean

Checks if a value's type matches the specified type string.

Example

isType('String', 'hello'); // true
isType('Array', {}); // false

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | type | string | The type string to check against. | | value | unknown | The value to check the type of. |

Returns

boolean

True if the value's type matches the specified type string, false otherwise.

Defined in

packages/eskit/src/is-type.ts:10


listToTree

listToTree<T>(list, pid?): T[]

Converts a flat list of items to a tree structure.

Type parameters

| Name | Type | Description | | :------ | :------ | :------ | | T | extends IItem<T, T> | The type of the items in the list. |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | list | T[] | The list of items to convert. | | pid | PidType | The parent ID to start the conversion from. Defaults to null. |

Returns

T[]

The resulting tree structure.

Defined in

packages/eskit/src/list-to-tree.ts:22


lowerFirst

lowerFirst(value): string

Converts the first character of value to lower case.

Example

lowerFirst('Apple'); // => 'apple'

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | string | The string to convert. |

Returns

string

Returns the converted string.

Defined in

packages/eskit/src/lower-first.ts:11


max

max(arr): undefined | number

Returns the maximum value of a numeric array. If the input value is not an array or the array is empty, returns undefined.

Example

max([1, 2, 3, 4, 5]) // 5
max([]) // undefined
max(null) // undefined
max(undefined) // undefined

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | arr | number[] | The array of numbers to search for the maximum value. |

Returns

undefined | number

The maximum value of the input array, or undefined if the input is not an array or the array is empty.

Defined in

packages/eskit/src/max.ts:15


memoize

memoize<T>(fn): T

Memoizes the result of a function for the same set of arguments.

Example

function expensiveOperation(arg1: string, arg2: number): number {
  // ...some expensive operation here...
}

const memoizedOperation = memoize(expensiveOperation);

const result1 = memoizedOperation('foo', 42); // Expensive operation is called.
const result2 = memoizedOperation('foo', 42); // Expensive operation is not called.
const result3 = memoizedOperation('bar', 42); // Expensive operation is called again.

Type parameters

| Name | Type | | :------ | :------ | | T | extends MemoizeFn |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | fn | T | The function to be memoized. |

Returns

T

The memoized function.

Defined in

packages/eskit/src/memoize.ts:17


min

min(arr): undefined | number

Returns the smallest number in an array of numbers. Returns undefined if the input array is not an array or is empty.

Example

min([3, 1, 4, 1, 5, 9]) // returns 1
min([]) // returns undefined

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | arr | number[] | An array of numbers |

Returns

undefined | number

The smallest number in the array, or undefined if the input is not an array or is empty

Defined in

packages/eskit/src/min.ts:13


mixin

mixin(...mixins): any

Creates a new class by combining multiple classes.

Example

// Define some classes
class Foo {
  foo() {}
}

class Bar {
  bar() {}
}

// Create a new class by combining Foo and Bar
const Baz = mixin(Foo, Bar);

// Create an instance of Baz
const baz = new Baz();

// Call methods from both Foo and Bar
baz.foo();
baz.bar();

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | ...mixins | any[] | The classes to combine. |

Returns

any

Defined in

packages/eskit/src/mixin.ts:25


multiply

multiply(a, b): number

Multiply two numbers accurately.

Example

const result = multiply(2.3, 4.5);
console.log(result); // Output: 10.35

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | a | number | The first number to multiply. | | b | number | The second number to multiply. |

Returns

number

The result of the multiplication.

Defined in

packages/eskit/src/multiply.ts:10


noop

noop(): void

Returns

void

Defined in

packages/eskit/src/noop.ts:3


pick

pick<T, K>(obj, ...keys): Pick<T, K>

Creates an object composed of the picked obj properties.

Example

const object = { 'a': 1, 'b': '2', 'c': 3 };
pick(object, 'a', 'c');
// => { 'a': 1, 'c': 3 }

Type parameters

| Name | Type | | :------ | :------ | | T | T | | K | extends string | number | symbol |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | obj | T | The source object. | | ...keys | K[] | The property keys to pick. |

Returns

Pick<T, K>

The new object.

Defined in

packages/eskit/src/pick.ts:16


range

range(start, end?, step?): number[]

Creates an array of numbers progressing from start up to, but not including, end. A step of -1 is used if a negative start is specified without an end or step.

Example

range(4); => [0, 1, 2, 3]
range(-4); => [0, -1, -2, -3]
range(1, 5); => [1, 2, 3, 4]
range(0, 20, 5); => [0, 5, 10, 15]

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | start | number | The start of the range. | | end? | number | The end of the range. | | step? | number | The value to increment or decrement by. |

Returns

number[]

Returns the range of numbers.

Defined in

packages/eskit/src/range.ts:15


shuffle

shuffle<T>(arr): void

Randomly shuffle an array in place.

Remarks

This function modifies the original array and does not return a new array.

Example

const arr = [1, 2, 3, 4, 5];
shuffle(arr);
console.log(arr); // Output: [3, 2, 5, 1, 4] (random order)

Type parameters

| Name | | :------ | | T |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | arr | T[] | The array to shuffle. |

Returns

void

Defined in

packages/eskit/src/shuffle.ts:16


sleep

sleep(ms): Promise<void>

Pauses the execution for the specified amount of time.

Example

console.log('Start')
await sleep(2000)
console.log('End')

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | ms | number | The number of milliseconds to sleep. |

Returns

Promise<void>

A promise that resolves after the specified amount of time.

Defined in

packages/eskit/src/sleep.ts:16


subtract

subtract(a, b): number

Returns the result of subtracting the second number from the first number.

Example

subtract(3, 1); // 2

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | a | number | The first number to subtract. | | b | number | The second number to subtract from the first number. |

Returns

number

The result of subtracting the second number from the first number.

Defined in

packages/eskit/src/subtract.ts:11


throttle

throttle<TArgs>(fn, delay, options?): (...args: TArgs) => void

Creates a throttled function that only invokes the original function at most once per every delay milliseconds. The throttled function has optional leading or trailing invocation.

Example

const throttledFn = throttle((x, y) => {
  console.log(x + y);
}, 1000, { leading: true });

throttledFn(1, 2); // logs 3 immediately
throttledFn(3, 4); // not invoked
setTimeout(() => throttledFn(5, 6), 2000); // logs 11 after 2 seconds

Type parameters

| Name | Type | | :------ | :------ | | TArgs | extends any[] |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | fn | (...args: TArgs) => void | The original function to be throttled. | | delay | number | The number of milliseconds to throttle. | | options? | Object | Optional configuration for leading and/or trailing invocation. | | options.leading? | boolean | Specify invoking the original function on the leading edge of the throttle. Default is false. | | options.trailing? | boolean | Specify invoking the original function on the trailing edge of the throttle. Default is true. |

Returns

fn

  • Throttled function that delays invoking the original function at most once per every delay milliseconds.

▸ (...args): void

Parameters

| Name | Type | | :------ | :------ | | ...args | TArgs |

Returns

void

Defined in

packages/eskit/src/throttle.ts:23


toString

toString(value): string

Converts a value to a string.

Example

toString(123); // '123'
toString('hello'); // 'hello'
toString(null); // ''

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | any | The value to convert. |

Returns

string

The string representation of the value, or an empty string if the value is null or undefined.

Defined in

packages/eskit/src/to-string.ts:15


treeToList

treeToList<T>(tree): T[]

Flattens a tree structure represented by an array of items with child nodes into a flat array.

Example

interface TreeNode {
  id: number;
  name: string;
  children?: TreeNode[];
}

const tree: TreeNode[] = [
  {
    id: 1,
    name: "Node 1",
    children: [
      { id: 2, name: "Node 1.1" },
      { id: 3, name: "Node 1.2" }
    ]
  },
  {
    id: 4,
    name: "Node 2",
    children: [
      { id: 5, name: "Node 2.1" },
      { id: 6, name: "Node 2.2", children: [{ id: 7, name: "Node 2.2.1" }] }
    ]
  }
];

const result = treeToList(tree);
// [
//   { id: 2, name: "Node 1.1" },
//   { id: 3, name: "Node 1.2" },
//   { id: 1, name: "Node 1" },
//   { id: 5, name: "Node 2.1" },
//   { id: 7, name: "Node 2.2.1" },
//   { id: 6, name: "Node 2.2" },
//   { id: 4, name: "Node 2" }
// ]

Type parameters

| Name | Type | Description | | :------ | :------ | :------ | | T | extends IItem<T, T> | Type of items in the tree. |

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | tree | T[] | The tree structure represented by an array of items with child nodes. |

Returns

T[]

A flat array of items.

Defined in

packages/eskit/src/tree-to-list.ts:51


upperFirst

upperFirst(value): string

Converts the first character of a string to uppercase.

Example

upperFirst('hello world') // Returns 'Hello world'

Parameters

| Name | Type | Description | | :------ | :------ | :------ | | value | string | The string to modify. |

Returns

string

The modified string.

Defined in

packages/eskit/src/upper-first.ts:11