{"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;AAE/C,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,GACT;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,GACT;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,GACT;AACF;;;;"}