UNPKG

alp-body-parser

Version:
1 lines 2.44 kB
{"version":3,"file":"index-node20.mjs","sources":["../src/index.ts"],"sourcesContent":["import parse from \"co-body\";\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport Application, { Context } from \"koa\";\n\ndeclare module \"koa\" {\n interface Request {\n body: any;\n }\n\n interface BaseContext {\n parseBody: <T>() => Promise<T>;\n parseBodyJson: <T>() => Promise<T>;\n parseBodyText: <T>() => Promise<T>;\n }\n}\n\nconst assertBodyNotParsed = (ctx: Context): void => {\n if (ctx.request.body) {\n throw new Error(\"Request is already parsed\");\n }\n};\n\nexport default function alpBodyParser(app: Application): void {\n app.context.parseBody = async function parseBody<T>(\n this: Context,\n ): Promise<T> {\n assertBodyNotParsed(this);\n const body: T = (await parse.form(this)) as T;\n this.request.body = body;\n return body;\n };\n\n app.context.parseBodyJson = async function parseBodyJson<T>(\n this: Context,\n ): Promise<T> {\n assertBodyNotParsed(this);\n const body: T = (await parse.json(this)) as T;\n this.request.body = body;\n return body;\n };\n\n app.context.parseBodyText = async function parseBodyText<T>(\n this: Context,\n ): Promise<T> {\n assertBodyNotParsed(this);\n const body: T = (await parse.text(this)) as T;\n this.request.body = body;\n return body;\n };\n}\n"],"names":["assertBodyNotParsed","ctx","request","body","Error","alpBodyParser","app","context","parseBody","parse","form","parseBodyJson","json","parseBodyText","text"],"mappings":";;AACA;;AAeA,MAAMA,mBAAmB,GAAIC,GAAY,IAAW;AAClD,EAAA,IAAIA,GAAG,CAACC,OAAO,CAACC,IAAI,EAAE;AACpB,IAAA,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;AAC9C;AACF,CAAC;AAEc,SAASC,aAAaA,CAACC,GAAgB,EAAQ;EAC5DA,GAAG,CAACC,OAAO,CAACC,SAAS,GAAG,eAAeA,SAASA,GAElC;IACZR,mBAAmB,CAAC,IAAI,CAAC;IACzB,MAAMG,IAAO,GAAI,MAAMM,KAAK,CAACC,IAAI,CAAC,IAAI,CAAO;AAC7C,IAAA,IAAI,CAACR,OAAO,CAACC,IAAI,GAAGA,IAAI;AACxB,IAAA,OAAOA,IAAI;GACZ;EAEDG,GAAG,CAACC,OAAO,CAACI,aAAa,GAAG,eAAeA,aAAaA,GAE1C;IACZX,mBAAmB,CAAC,IAAI,CAAC;IACzB,MAAMG,IAAO,GAAI,MAAMM,KAAK,CAACG,IAAI,CAAC,IAAI,CAAO;AAC7C,IAAA,IAAI,CAACV,OAAO,CAACC,IAAI,GAAGA,IAAI;AACxB,IAAA,OAAOA,IAAI;GACZ;EAEDG,GAAG,CAACC,OAAO,CAACM,aAAa,GAAG,eAAeA,aAAaA,GAE1C;IACZb,mBAAmB,CAAC,IAAI,CAAC;IACzB,MAAMG,IAAO,GAAI,MAAMM,KAAK,CAACK,IAAI,CAAC,IAAI,CAAO;AAC7C,IAAA,IAAI,CAACZ,OAAO,CAACC,IAAI,GAAGA,IAAI;AACxB,IAAA,OAAOA,IAAI;GACZ;AACH;;;;"}