@prezly/theme-kit-core
Version:
Data layer and utility library for developing Prezly themes with JavaScript
72 lines (71 loc) • 2.71 kB
TypeScript
export type Resolvable<T> = T | DynamicallyResolvable<T>;
export type AsyncResolvable<T> = T | DynamicallyResolvable<T> | AsyncDynamicallyResolvable<T>;
type Awaitable<T> = T | Promise<T>;
type DynamicallyResolvable<T> = () => T;
type AsyncDynamicallyResolvable<T> = () => Promise<T>;
export declare namespace Resolvable {
type Properties<T> = {
[key in keyof T]: Resolvable<T[key]>;
};
function resolve<T>(value: T | DynamicallyResolvable<T>): T;
}
export declare namespace AsyncResolvable {
type Properties<T> = {
[key in keyof T]: AsyncResolvable<T[key]>;
};
function resolve<T>(value: T | DynamicallyResolvable<T> | AsyncDynamicallyResolvable<T>): Awaitable<T>;
function resolve<T1, T2>(...values: [AsyncResolvable<T1>, AsyncResolvable<T2>]): Promise<[T1, T2]>;
function resolve<T1, T2, T3>(...values: [AsyncResolvable<T1>, AsyncResolvable<T2>, AsyncResolvable<T3>]): Promise<[T1, T2, T3]>;
function resolve<T1, T2, T3, T4>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>
]): Promise<[T1, T2, T3, T4]>;
function resolve<T1, T2, T3, T4, T5>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>,
AsyncResolvable<T5>
]): Promise<[T1, T2, T3, T4, T5]>;
function resolve<T1, T2, T3, T4, T5, T6>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>,
AsyncResolvable<T5>,
AsyncResolvable<T6>
]): Promise<[T1, T2, T3, T4, T5, T6]>;
function resolve<T1, T2, T3, T4, T5, T6, T7>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>,
AsyncResolvable<T5>,
AsyncResolvable<T6>,
AsyncResolvable<T7>
]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
function resolve<T1, T2, T3, T4, T5, T6, T7, T8>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>,
AsyncResolvable<T5>,
AsyncResolvable<T6>,
AsyncResolvable<T7>,
AsyncResolvable<T8>
]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
function resolve<T1, T2, T3, T4, T5, T6, T7, T8, T9>(...values: [
AsyncResolvable<T1>,
AsyncResolvable<T2>,
AsyncResolvable<T3>,
AsyncResolvable<T4>,
AsyncResolvable<T5>,
AsyncResolvable<T6>,
AsyncResolvable<T7>,
AsyncResolvable<T8>,
AsyncResolvable<T9>
]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
}
export {};