@graphql-mesh/types
Version:
22 lines (21 loc) • 848 B
TypeScript
type StoreFlags = {
readonly: boolean;
validate: boolean;
};
type ProxyOptions<TData, TJSONData = any> = {
codify: (value: TData, identifier: string) => string | Promise<string>;
fromJSON: (jsonData: TJSONData, identifier: string) => TData | Promise<TData>;
toJSON: (value: TData, identifier: string) => TJSONData | Promise<TJSONData>;
validate: (oldValue: TData, newValue: TData, identifier: string) => void | Promise<void>;
};
type StoreProxy<TData> = {
set(value: TData): Promise<void>;
get(): Promise<TData>;
getWithSet(setterFn: () => TData | Promise<TData>): Promise<TData>;
delete(): Promise<void>;
};
export interface IMeshStore {
child(childIdentifier: string, flags?: Partial<StoreFlags>): IMeshStore;
proxy<TData>(id: string, options: ProxyOptions<TData>): StoreProxy<TData>;
}
export {};