UNPKG

@chubbyts/chubbyts-api

Version:

[![CI](https://github.com/chubbyts/chubbyts-api/workflows/CI/badge.svg?branch=master)](https://github.com/chubbyts/chubbyts-api/actions?query=workflow%3ACI) [![Coverage Status](https://coveralls.io/repos/github/chubbyts/chubbyts-api/badge.svg?branch=maste

13 lines (12 loc) 880 B
import { createBadRequest } from '@chubbyts/chubbyts-http-error/dist/http-error'; import { stringifyResponseBody, valueToData } from '../response.js'; import { zodToInvalidParameters } from '../zod-to-invalid-parameters.js'; export const createListHandler = (inputModelListSchema, resolveModelList, responseFactory, enrichedModelListSchema, encoder, enrichModelList = async (list) => list) => { return async (request) => { const inputListResult = inputModelListSchema.safeParse(request.uri.query); if (!inputListResult.success) { throw createBadRequest({ invalidParameters: zodToInvalidParameters(inputListResult.error) }); } return stringifyResponseBody(request, responseFactory(200), encoder, valueToData(enrichedModelListSchema.parse(await enrichModelList(await resolveModelList(inputListResult.data), { request })))); }; };