express-crud-router
Version:
React Admin backend for Express. 1 line per resource! ORM agnostic.
35 lines (34 loc) • 1.17 kB
TypeScript
import { RequestHandler, Request, Response } from 'express';
export declare type Get<R> = (conf: {
filter: Record<string, any>;
limit: number;
offset: number;
order: Array<[string, string]>;
}, opts?: {
req: Request;
res: Response;
}) => Promise<{
rows: R[];
count: number;
}>;
export interface GetListOptions<R> {
filters: FiltersOption;
additionalAttributes: Record<string, (record: R, context: {
rows: R[];
req: Request;
}) => any>;
additionalAttributesConcurrency: number;
}
declare type FiltersOption = Record<string, (value: any) => any>;
export declare const getMany: <R>(doGetFilteredList: Get<R>, options?: Partial<GetListOptions<R>> | undefined) => RequestHandler;
export declare const parseQuery: (query: any, filtersOption: FiltersOption) => Promise<{
offset: any;
limit: number;
filter: Record<string, any>;
order: [[string, string]];
}>;
export declare const computeAdditionalAttributes: <R>(additionalAttributes: Record<string, (record: R, context: {
rows: R[];
req: Request;
}) => any>, concurrency: number, req: Request) => (records: R[]) => Promise<any[]>;
export {};