UNPKG

alp-body-parser

Version:
1 lines 2.29 kB
{"version":3,"file":"index-node.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":[],"mappings":";;AAgBA,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAuB;AAClD,EAAA,IAAI,GAAA,CAAI,QAAQ,IAAA,EAAM;AACpB,IAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,EAC7C;AACF,CAAA;AAEA,SAAwB,cAAc,GAAA,EAAwB;AAC5D,EAAA,GAAA,CAAI,OAAA,CAAQ,SAAA,GAAY,eAAe,SAAA,GAEzB;AACZ,IAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,IAAA,MAAM,IAAA,GAAW,MAAM,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACtC,IAAA,IAAA,CAAK,QAAQ,IAAA,GAAO,IAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,GAAA,CAAI,OAAA,CAAQ,aAAA,GAAgB,eAAe,aAAA,GAE7B;AACZ,IAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,IAAA,MAAM,IAAA,GAAW,MAAM,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACtC,IAAA,IAAA,CAAK,QAAQ,IAAA,GAAO,IAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,GAAA,CAAI,OAAA,CAAQ,aAAA,GAAgB,eAAe,aAAA,GAE7B;AACZ,IAAA,mBAAA,CAAoB,IAAI,CAAA;AACxB,IAAA,MAAM,IAAA,GAAW,MAAM,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AACtC,IAAA,IAAA,CAAK,QAAQ,IAAA,GAAO,IAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AACF;;;;"}