rapiq
Version:
A tiny library which provides utility types/functions for request and response query handling.
20 lines • 1.1 kB
TypeScript
import type { Parameter, URLParameter } from '../constants';
import type { FieldsBuildInput, FiltersBuildInput, PaginationBuildInput, RelationsBuildInput, SortBuildInput } from '../parameter';
import type { ObjectLiteral, ObjectLiteralKeys } from '../types';
type BuildParametersInput<T extends ObjectLiteral = ObjectLiteral> = ObjectLiteralKeys<{
[Parameter.FIELDS]?: FieldsBuildInput<T>;
[Parameter.FILTERS]?: FiltersBuildInput<T>;
[Parameter.RELATIONS]?: RelationsBuildInput<T>;
[Parameter.PAGINATION]?: PaginationBuildInput;
[Parameter.SORT]?: SortBuildInput<T>;
}>;
export type BuildURLParametersInput<T extends ObjectLiteral = ObjectLiteral> = ObjectLiteralKeys<{
[URLParameter.FIELDS]?: FieldsBuildInput<T>;
[URLParameter.FILTERS]?: FiltersBuildInput<T>;
[URLParameter.RELATIONS]?: RelationsBuildInput<T>;
[URLParameter.PAGINATION]?: PaginationBuildInput;
[URLParameter.SORT]?: SortBuildInput<T>;
}>;
export type BuildInput<T extends ObjectLiteral> = BuildParametersInput<T> & BuildURLParametersInput<T>;
export {};
//# sourceMappingURL=types.d.ts.map