UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

55 lines (53 loc) 1.97 kB
import { isResponse } from "./chunk-UYDZZAEK.mjs"; import { HttpStatus, isHttpStatus } from "./chunk-UGUAZFM4.mjs"; import { choose } from "./chunk-XAIHCZT4.mjs"; import { isResults } from "./chunk-NCEWAKOZ.mjs"; import { isResult, toResult } from "./chunk-Q3WMGUO2.mjs"; import { toList } from "./chunk-A7C3XND3.mjs"; import { isDefined, isError } from "./chunk-DEJ7A5PY.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-MJALPDQ3.mjs.map