@quadible/web-sdk
Version:
The web sdk for Quadible's behavioral authentication service.
17 lines (16 loc) • 1.04 kB
TypeScript
import { MaybePromise } from './async';
export type Source<TOptions, TValue> = (options: TOptions) => MaybePromise<TValue | (() => MaybePromise<TValue>)>;
export type UnknownSources<TOptions> = Record<string, Source<TOptions, unknown>>;
export type SourceValue<TSource extends Source<any, any>> = TSource extends Source<any, infer T> ? T : never;
export type Component<T> = ({
value: T;
} | {
error: unknown;
}) & {
d: number;
};
export type SourcesToComponents<TSources extends UnknownSources<any>> = {
[K in keyof TSources]: Component<SourceValue<TSources[K]>>;
};
export declare function loadSource<TOptions, TValue>(source: Source<TOptions, TValue>, sourceOptions: TOptions): () => Promise<Component<TValue>>;
export declare function loadSources<TSourceOptions, TSources extends UnknownSources<TSourceOptions>, TExclude extends string>(sources: TSources, sourceOptions: TSourceOptions, excludeSources: readonly TExclude[], loopReleaseInterval?: number): () => Promise<Omit<SourcesToComponents<TSources>, TExclude>>;