UNPKG

@etsoo/shared

Version:

TypeScript shared utilities and functions

47 lines (46 loc) 1.69 kB
import { DelayedExecutorType } from "./types/DelayedExecutorType"; /** * Extend utilities */ export declare namespace ExtendUtils { /** * Apply mixins, official suggested method * https://www.typescriptlang.org/docs/handbook/mixins.html#understanding-the-sample * @param derivedCtor Mixin target class * @param baseCtors Mixin base classes * @param override Override or not */ function applyMixins(derivedCtor: any, baseCtors: any[], override?: boolean): void; /** * Create delayed executor * @param func Function * @param delayMiliseconds Delay miliseconds * @returns Result */ function delayedExecutor<P extends any[]>(func: (...args: P) => void, delayMiliseconds: number): DelayedExecutorType<P>; /** * Promise handler to catch error * @param promise Promise */ const promiseHandler: (promise: Promise<unknown>) => Promise<any[] | unknown[]>; /** * Delay promise * @param delay Delay miniseconds */ function sleep(delay?: number): Promise<void>; /** * Wait for condition meets and execute callback * requestAnimationFrame to replace setTimeout * @param callback Callback * @param checkReady Check ready, when it's a number as miliseconds, similar to setTimeout * @returns cancel callback */ function waitFor(callback: () => void, checkReady: ((spanTime: number) => boolean) | number): () => void; /** * Repeat interval for callback * @param callback Callback * @param miliseconds Miliseconds * @returns cancel callback */ function intervalFor(callback: () => void, miliseconds: number): () => void; }