UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

49 lines (47 loc) 1.85 kB
import { HttpStatus, isHttpStatus } from "./chunk-RPZ2XDQQ.mjs"; import { isResponse } from "./chunk-EZ4FZ3HS.mjs"; import { choose, isResult, isResults, toList, toResult } from "./chunk-AVHYDITZ.mjs"; import { isDefined, isError } from "./chunk-AAND4MKF.mjs"; // src/http/RestResult.ts var hasErrors = (a) => isDefined(a?.error?.errors); var hasItems = (a) => isDefined(a?.data.items); var rest = { toData: (status, items = [], totalItems, meta) => ({ data: { code: status.status, items: toList(items), itemCount: items.length, totalItems, meta } }), toError: (status, errors = [toResult(status.name)]) => ({ error: { code: status.status, message: status.name ?? errors[0].message ?? "Unknown", errors: toList(errors), errorCount: errors.length } }), to: (payload, status) => choose(payload).is.not.defined((p) => p, void 0).type(isHttpStatus, (h) => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)])).type(isResult, (r) => rest.toError(status ?? HttpStatus.BadRequest, [r])).type(isError, (e) => rest.toError(status ?? HttpStatus.BadRequest, [e])).type(isResults, (r) => rest.toError(status ?? HttpStatus.BadRequest, r.results)).type(isResponse, (r) => rest.toError(status ?? HttpStatus.byId(r.body.error?.code), r.body.error?.errors)).type(hasErrors, (e) => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors)).type(hasItems, (d) => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta)).else((p) => rest.toData(status ?? HttpStatus.Ok, toList(p))) }; var isRestResult = (r) => isDefined(r) && (isDefined(r.data) || isDefined(r.error)); export { rest, isRestResult }; //# sourceMappingURL=chunk-NUFTFLAY.mjs.map