{"version":3,"file":"koa.mjs","sources":["../../../src/services/server/koa.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport Koa from 'koa';\nimport createError from 'http-errors';\nimport delegate from 'delegates';\nimport { formatHttpError } from '../errors';\nimport { errorMethodEntries } from './koa-methods';\n\nconst addCustomMethods = (app: Koa) => {\n const delegator = delegate(app.context, 'response');\n\n /* errors */\n for (const { code, statusName, methodName } of errorMethodEntries()) {\n app.response[methodName] = function responseCode(response = statusName, details = {}) {\n const httpError = createError(code, response, { details });\n const { status, body } = formatHttpError(httpError);\n this.status = status;\n this.body = body;\n };\n\n delegator.method(methodName);\n }\n\n /* send, created, deleted */\n app.response.send = function send(data, status = 200) {\n this.status = status;\n this.body = data;\n };\n\n app.response.created = function created(data) {\n this.status = 201;\n this.body = data;\n };\n\n app.response.deleted = function deleted(data) {\n if (isNil(data)) {\n this.status = 204;\n } else {\n this.status = 200;\n this.body = data;\n }\n };\n\n delegator.method('send').method('created').method('deleted');\n\n return app;\n};\n\nconst createKoaApp = ({ proxy, keys }: { proxy: boolean; keys: string[] }) => {\n const app = new Koa({ proxy });\n app.keys = keys;\n\n addCustomMethods(app);\n\n return app;\n};\n\nexport default createKoaApp;\n"],"names":["addCustomMethods","app","delegator","delegate","context","code","statusName","methodName","errorMethodEntries","response","responseCode","details","httpError","createError","status","body","formatHttpError","method","send","data","created","deleted","isNil","createKoaApp","proxy","keys","Koa"],"mappings":";;;;;;;AAOA,MAAMA,mBAAmB,CAACC,GAAAA,GAAAA;AACxB,IAAA,MAAMC,SAAAA,GAAYC,QAAAA,CAASF,GAAAA,CAAIG,OAAO,EAAE,UAAA,CAAA;iBAGxC,KAAK,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAE,IAAIC,kBAAAA,EAAAA,CAAsB;QACnEP,GAAAA,CAAIQ,QAAQ,CAACF,UAAAA,CAAW,GAAG,SAASG,YAAAA,CAAaD,QAAAA,GAAWH,UAAU,EAAEK,OAAAA,GAAU,EAAE,EAAA;YAClF,MAAMC,SAAAA,GAAYC,WAAAA,CAAYR,IAAAA,EAAMI,QAAAA,EAAU;AAAEE,gBAAAA;AAAQ,aAAA,CAAA;AACxD,YAAA,MAAM,EAAEG,MAAM,EAAEC,IAAI,EAAE,GAAGC,eAAAA,CAAgBJ,SAAAA,CAAAA;YACzC,IAAI,CAACE,MAAM,GAAGA,MAAAA;YACd,IAAI,CAACC,IAAI,GAAGA,IAAAA;AACd,QAAA,CAAA;AAEAb,QAAAA,SAAAA,CAAUe,MAAM,CAACV,UAAAA,CAAAA;AACnB,IAAA;iCAGAN,GAAAA,CAAIQ,QAAQ,CAACS,IAAI,GAAG,SAASA,IAAAA,CAAKC,IAAI,EAAEL,MAAAA,GAAS,GAAG,EAAA;QAClD,IAAI,CAACA,MAAM,GAAGA,MAAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACW,OAAO,GAAG,SAASA,QAAQD,IAAI,EAAA;QAC1C,IAAI,CAACL,MAAM,GAAG,GAAA;QACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,IAAA,CAAA;AAEAlB,IAAAA,GAAAA,CAAIQ,QAAQ,CAACY,OAAO,GAAG,SAASA,QAAQF,IAAI,EAAA;AAC1C,QAAA,IAAIG,MAAMH,IAAAA,CAAAA,EAAO;YACf,IAAI,CAACL,MAAM,GAAG,GAAA;QAChB,CAAA,MAAO;YACL,IAAI,CAACA,MAAM,GAAG,GAAA;YACd,IAAI,CAACC,IAAI,GAAGI,IAAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEAjB,IAAAA,SAAAA,CAAUe,MAAM,CAAC,MAAA,CAAA,CAAQA,MAAM,CAAC,SAAA,CAAA,CAAWA,MAAM,CAAC,SAAA,CAAA;IAElD,OAAOhB,GAAAA;AACT,CAAA;AAEA,MAAMsB,eAAe,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAsC,GAAA;IACvE,MAAMxB,GAAAA,GAAM,IAAIyB,GAAAA,CAAI;AAAEF,QAAAA;AAAM,KAAA,CAAA;AAC5BvB,IAAAA,GAAAA,CAAIwB,IAAI,GAAGA,IAAAA;IAEXzB,gBAAAA,CAAiBC,GAAAA,CAAAA;IAEjB,OAAOA,GAAAA;AACT;;;;"}