@etsoo/shared
Version:
TypeScript shared utilities and functions
47 lines (46 loc) • 1.69 kB
TypeScript
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;
}