UNPKG

feats

Version:

A comprehensive TypeScript utility library featuring fluent text building, type-safe switching, duration utilities, React hooks, and extended array/object prototypes for modern JavaScript development.

129 lines (128 loc) 3.66 kB
/** * Represents all valid input units for durations. * Includes both short and long forms (e.g. "s", "second", "seconds"). */ export type DurationInputUnit = "ms" | "millisecond" | "milliseconds" | "s" | "second" | "seconds" | "m" | "minute" | "minutes" | "h" | "hour" | "hours" | "d" | "day" | "days"; /** * Creates an immutable duration object with fluent utilities. * * Example: * ```ts * const d = duration(2, "minutes"); * d.as("seconds"); // 120 * d.add(30, "seconds").milliseconds; // 150000 * ``` * * @param value - The numeric value of the duration * @param unit - The unit of the value (e.g. "minutes", "s", etc.) * @returns A duration instance with utility methods and accessors */ export declare function duration(value: number, unit: DurationInputUnit): { /** * Converts the current duration to another unit. * @param targetUnit - The unit to convert to * @returns The converted value */ as: (targetUnit: DurationInputUnit) => number; /** * Adds another duration and returns a new immutable duration. * @param addValue - The value to add * @param addUnit - The unit of the value to add */ add: (addValue: number, addUnit: DurationInputUnit) => /*elided*/ any & { ms: number; millisecond: number; milliseconds: number; s: number; second: number; seconds: number; m: number; minute: number; minutes: number; h: number; hour: number; hours: number; d: number; day: number; days: number; }; /** * Subtracts another duration and returns a new immutable duration. * @param subValue - The value to subtract * @param subUnit - The unit of the value to subtract */ subtract: (subValue: number, subUnit: DurationInputUnit) => /*elided*/ any & { ms: number; millisecond: number; milliseconds: number; s: number; second: number; seconds: number; m: number; minute: number; minutes: number; h: number; hour: number; hours: number; d: number; day: number; days: number; }; /** * Returns the internal value in milliseconds. */ valueOf: () => number; /** * Converts the duration to a string in milliseconds. * @returns A string like `"120000ms"` */ toString: () => string; /** * Returns a new duration instance with the same value. */ clone: () => /*elided*/ any & { ms: number; millisecond: number; milliseconds: number; s: number; second: number; seconds: number; m: number; minute: number; minutes: number; h: number; hour: number; hours: number; d: number; day: number; days: number; }; /** * Converts the duration to a primitive value (number or string). */ [Symbol.toPrimitive]: (hint: string) => string | number; } & { ms: number; millisecond: number; milliseconds: number; s: number; second: number; seconds: number; m: number; minute: number; minutes: number; h: number; hour: number; hours: number; d: number; day: number; days: number; }; /** * Converts a duration to milliseconds. * * @param value - The numeric value of the duration * @param unit - The unit of the value (e.g. "seconds", "m", etc.) * @returns The equivalent duration in milliseconds */ export declare function millis(value: number, unit: DurationInputUnit): number;