@kitiumai/utils-ts
Version:
Comprehensive TypeScript utilities for KitiumAI projects
63 lines • 2.01 kB
TypeScript
/**
* Function utility functions
*/
/**
* Compose functions from right to left
*/
export declare function compose<T, R>(...fns: Array<(arg: unknown) => unknown>): (arg: T) => R;
/**
* Pipe functions from left to right
*/
export declare function pipe<T, R>(...fns: Array<(arg: unknown) => unknown>): (arg: T) => R;
/**
* Debounce function execution
*/
export declare function debounce<T extends (...args: unknown[]) => unknown>(fn: T, delay: number): (...args: Parameters<T>) => void;
/**
* Throttle function execution
*/
export declare function throttle<T extends (...args: unknown[]) => unknown>(fn: T, interval: number): (...args: Parameters<T>) => void;
/**
* Memoize function results
*/
export declare function memoize<T extends (...args: unknown[]) => unknown>(fn: T, resolver?: (...args: Parameters<T>) => string): T;
/**
* Execute function only once
*/
export declare function once<T extends (...args: unknown[]) => unknown>(fn: T): T;
/**
* Partial application (curry)
* Note: Simple implementation for common use cases
*/
export declare function curry<T extends (...args: any[]) => any>(fn: T, arity?: number): any;
/**
* Delay function execution
*/
export declare function delay<T extends (...args: unknown[]) => unknown>(fn: T, ms: number): (...args: Parameters<T>) => Promise<ReturnType<T>>;
/**
* Negate function result
*/
export declare function negate<T extends (...args: unknown[]) => boolean>(fn: T): (...args: Parameters<T>) => boolean;
/**
* Call function with try-catch and return result or error
*/
export declare function attempt<T>(fn: () => T): {
success: true;
value: T;
} | {
success: false;
error: Error;
};
/**
* Create function that always returns same value
*/
export declare function constant<T>(value: T): () => T;
/**
* Identity function (returns its argument)
*/
export declare function identity<T>(value: T): T;
/**
* No-op function (does nothing)
*/
export declare function noop(): void;
//# sourceMappingURL=function.d.ts.map