UNPKG

@exadel/esl

Version:

Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components

34 lines (33 loc) 1.64 kB
import { createDeferred } from './promise/defered'; import { promisifyTimeout } from './promise/timeout'; import { promisifyTransition } from './promise/animation'; import { promisifyEvent, promisifyMarker } from './promise/event'; import { promisifiedTry, tryUntil } from './promise/try-until'; import { promisifyNextRender } from './promise/raf'; import type { AnyToAnyFnSignature } from '../misc/functions'; import type { Deferred } from './promise/defered'; /** Creates function type with the same signature but with the result type wrapped into promise */ export type PromisifyResultFn<F extends AnyToAnyFnSignature> = ((...args: Parameters<F>) => Promise<ReturnType<F> | void>); export type { Deferred }; export { createDeferred, promisifyTimeout, promisifyEvent, promisifyMarker, promisifyNextRender, promisifiedTry, promisifyTransition }; export { tryUntil }; /** * Call async callback in a sequence passed number of times * Initial call starts as a microtask * @param callback - async chain function * @param count - count o calls * @returns sequence end promise */ export declare function repeatSequence<T>(callback: () => Promise<T>, count?: number): Promise<T>; /** * Safe wrap for Promise.resolve to use in Promise chain * @example * `const resolvedPromise = rejectedPromise.catch(resolvePromise);` */ export declare function resolvePromise<T>(arg: T | PromiseLike<T>): Promise<T>; /** * Safe wrap for Promise.reject to use in Promise chain * @example * `const rejectedPromise = resolvedPromise.then(rejectPromise);` */ export declare function rejectPromise<T = never>(arg?: T | PromiseLike<T>): Promise<T>;