@data-client/endpoint
Version:
Declarative Network Interface Definitions
31 lines (30 loc) • 1.4 kB
TypeScript
import type { GetIndex, GetEntity, Queryable, SchemaSimple } from '../interface.js';
import type { Denormalize, NormalizeNullable, SchemaArgs } from '../normal.js';
/**
* Programmatic cache reading
*
* @see https://dataclient.io/rest/api/Query
*/
export default class Query<S extends Queryable | {
[k: string]: Queryable;
}, P extends (entries: Denormalize<S>, ...args: any) => any> implements SchemaSimple<ReturnType<P> | undefined, ProcessParameters<P, S>> {
schema: S;
process: P;
/**
* Programmatic cache reading
*
* @see https://dataclient.io/rest/api/Query
*/
constructor(schema: S, process: P);
normalize(...args: any): any;
denormalize(input: {}, args: any, unvisit: any): ReturnType<P>;
queryKey(args: ProcessParameters<P, S>, queryKey: (schema: any, args: any, getEntity: GetEntity, getIndex: GetIndex) => any, getEntity: GetEntity, getIndex: GetIndex): any;
_denormalizeNullable: (input: {}, args: readonly any[], unvisit: (schema: any, input: any) => any) => ReturnType<P> | undefined;
_normalizeNullable: () => NormalizeNullable<S>;
}
type ProcessParameters<P, S extends Queryable | {
[k: string]: Queryable;
}> = P extends (entries: any, ...args: infer Par) => any ? Par extends [
] ? SchemaArgs<S> : Par & SchemaArgs<S> : SchemaArgs<S>;
export {};
//# sourceMappingURL=Query.d.ts.map