UNPKG

@furystack/rest-service

Version:

Repository implementation for FuryStack

21 lines 1.05 kB
import { JsonResult } from '../request-action-implementation.js'; import { getRepository } from '@furystack/repository'; /** * Creates a GetCollection endpoint for the given model. The model should have a Repository DataSet * @param options The options for endpoint creation * @param options.model The Model class * @param options.primaryKey The field used as primary key on the model * @returns The created endpoint */ export const createGetCollectionEndpoint = (options) => { const endpoint = async ({ injector, getQuery }) => { const { findOptions } = getQuery(); const dataSet = getRepository(injector).getDataSetFor(options.model, options.primaryKey); const entriesPromise = dataSet.find(injector, findOptions || {}); const countPromise = dataSet.count(injector, findOptions?.filter); const [entries, count] = await Promise.all([entriesPromise, countPromise]); return JsonResult({ entries, count }); }; return endpoint; }; //# sourceMappingURL=create-get-collection-endpoint.js.map