synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
15 lines (14 loc) • 712 B
TypeScript
import { IStorage, IStorageBase } from '../../core';
export type ExtractPromiseType<T> = T extends Promise<infer U> ? U : T;
export type ExtractStorageType<T> = T extends IStorageBase<infer U> ? U : never;
export type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
export type SynapseDependency = {
storage: IStorageBase<any>;
};
/**
* Всё, что можно передать в `dependencies[]`: raw storage, обёртка `{ storage }`,
* или Promise/Handle другого synapse (любой объект с `.storage: IStorageBase`).
*/
export type DependencyInput = IStorageBase<any> | SynapseDependency | PromiseLike<{
storage: IStorageBase<any>;
}>;