moonflower 1.5.4 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Router.cjs","sources":["../../src/router/Router.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport KoaRouter from '@koa/router'\nimport Koa from 'koa'\n\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { ExtractedRequestParams } from '../utils/TypeUtils'\nimport { parseEndpointReturnValue } from './parseEndpointReturnValue'\n\ntype Props = {\n\tskipOpenApiAnalysis: boolean\n}\n\nexport class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {\n\tpublic koaRouter: KoaRouter = new KoaRouter()\n\n\tpublic constructor(props: Props = { skipOpenApiAnalysis: false }) {\n\t\tif (!props.skipOpenApiAnalysis) {\n\t\t\tconst openApiManager = OpenApiManager.getInstance()\n\t\t\topenApiManager.registerRouters([this])\n\t\t}\n\t}\n\n\tprivate async sendResponseValue<P extends string>(\n\t\tctx: Parameters<Parameters<KoaRouter['get']>[1]>[0],\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\t// @ts-ignore\n\t\tconst responseValue = await callback(ctx, undefined)\n\t\tconst { value, status, contentType } = parseEndpointReturnValue(responseValue)\n\t\tctx.body = value\n\t\tif (status !== 'unset') {\n\t\t\tctx.status = status\n\t\t}\n\t\tctx.set('Content-Type', contentType)\n\t}\n\n\tpublic use(...middleware: Array<KoaRouter.Middleware<StateT, ContextT>>) {\n\t\t// @ts-ignore\n\t\tthis.koaRouter.use(...middleware)\n\t\treturn this\n\t}\n\n\tpublic with<ResponseTypeT extends Record<string, any>>(\n\t\tmiddleware: (ctx: Koa.ParameterizedContext<ContextT>) => ResponseTypeT,\n\t) {\n\t\ttype AugmentedData = ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT\n\t\tthis.koaRouter.use(async (ctx, next) => {\n\t\t\t// @ts-ignore\n\t\t\tconst userData = await Promise.resolve(middleware(ctx))\n\t\t\tObject.keys(userData).forEach((key) => {\n\t\t\t\tctx[key] = userData[key]\n\t\t\t})\n\t\t\tawait next()\n\t\t})\n\t\treturn this as Router<StateT, ContextT & AugmentedData>\n\t}\n\n\tpublic get<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.get(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic post<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.post(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic put<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.put(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic delete<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.delete(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic del<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.del(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic patch<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.patch(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic routes() {\n\t\treturn this.koaRouter.routes()\n\t}\n\n\tpublic allowedMethods() {\n\t\treturn this.koaRouter.allowedMethods()\n\t}\n}\n"],"names":["Router","props","KoaRouter","OpenApiManager","ctx","callback","responseValue","value","status","contentType","parseEndpointReturnValue","middleware","next","userData","key","path"],"mappings":"8MAYO,MAAMA,CAAiE,CAGtE,YAAYC,EAAe,CAAE,oBAAqB,IAAS,CAF3D,KAAA,UAAuB,IAAIC,EAG5BD,EAAM,qBACaE,iBAAe,YAAY,EACnC,gBAAgB,CAAC,IAAI,CAAC,CACtC,CAGD,MAAc,kBACbC,EACAC,EACC,CAED,MAAMC,EAAgB,MAAMD,EAASD,EAAK,MAAS,EAC7C,CAAE,MAAAG,EAAO,OAAAC,EAAQ,YAAAC,CAAY,EAAIC,EAAAA,yBAAyBJ,CAAa,EAC7EF,EAAI,KAAOG,EACPC,IAAW,UACdJ,EAAI,OAASI,GAEVJ,EAAA,IAAI,eAAgBK,CAAW,CAAA,CAG7B,OAAOE,EAA2D,CAEnE,YAAA,UAAU,IAAI,GAAGA,CAAU,EACzB,IAAA,CAGD,KACNA,EACC,CAED,YAAK,UAAU,IAAI,MAAOP,EAAKQ,IAAS,CAEvC,MAAMC,EAAW,MAAM,QAAQ,QAAQF,EAAWP,CAAG,CAAC,EACtD,OAAO,KAAKS,CAAQ,EAAE,QAASC,GAAQ,CAClCV,EAAAU,CAAG,EAAID,EAASC,CAAG,CAAA,CACvB,EACD,MAAMF,EAAK,CAAA,CACX,EACM,IAAA,CAGD,IACNG,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,KACNU,EACAV,EACC,CACD,YAAK,UAAU,KAAKU,EAAM,MAAOX,GAAQ,CAClC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,IACNU,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,OACNU,EACAV,EACC,CACD,YAAK,UAAU,OAAOU,EAAM,MAAOX,GAAQ,CACpC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,IACNU,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,MACNU,EACAV,EACC,CACD,YAAK,UAAU,MAAMU,EAAM,MAAOX,GAAQ,CACnC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,QAAS,CACR,OAAA,KAAK,UAAU,OAAO,CAAA,CAGvB,gBAAiB,CAChB,OAAA,KAAK,UAAU,eAAe,CAAA,CAEvC"}
1
+ {"version":3,"file":"Router.cjs","sources":["../../src/router/Router.ts"],"sourcesContent":["import KoaRouter, { RouterContext, RouterMiddleware } from '@koa/router'\nimport Koa from 'koa'\n\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { ExtractedRequestParams } from '../utils/TypeUtils'\nimport { parseEndpointReturnValue } from './parseEndpointReturnValue'\n\ntype Props = {\n\tskipOpenApiAnalysis: boolean\n}\n\nexport class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {\n\tpublic koaRouter: KoaRouter = new KoaRouter()\n\n\tpublic constructor(props: Props = { skipOpenApiAnalysis: false }) {\n\t\tif (!props.skipOpenApiAnalysis) {\n\t\t\tconst openApiManager = OpenApiManager.getInstance()\n\t\t\topenApiManager.registerRouters([this])\n\t\t}\n\t}\n\n\tprivate async sendResponseValue<P extends string>(\n\t\tctx: RouterContext,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\t// @ts-expect-error - Context is valid\n\t\tconst responseValue = await callback(ctx, undefined)\n\t\tconst { value, status, contentType } = parseEndpointReturnValue(responseValue)\n\t\tctx.body = value\n\t\tif (status !== 'unset') {\n\t\t\tctx.status = status\n\t\t}\n\t\tctx.set('Content-Type', contentType)\n\t}\n\n\tpublic use(...middleware: Array<RouterMiddleware<StateT, ContextT>>) {\n\t\tthis.koaRouter.use(...middleware)\n\t\treturn this\n\t}\n\n\tpublic with<ResponseTypeT extends Record<string, any>>(\n\t\tmiddleware: (ctx: Koa.ParameterizedContext<ContextT>) => ResponseTypeT,\n\t) {\n\t\ttype AugmentedData = ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT\n\t\tthis.koaRouter.use(async (ctx, next) => {\n\t\t\tconst userData = await Promise.resolve(middleware(ctx))\n\t\t\tObject.keys(userData).forEach((key) => {\n\t\t\t\tctx[key] = userData[key]\n\t\t\t})\n\t\t\tawait next()\n\t\t})\n\t\treturn this as Router<StateT, ContextT & AugmentedData>\n\t}\n\n\tpublic get<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.get(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic post<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.post(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic put<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.put(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic delete<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.delete(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic del<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.del(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic patch<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.patch(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic routes() {\n\t\treturn this.koaRouter.routes()\n\t}\n\n\tpublic allowedMethods() {\n\t\treturn this.koaRouter.allowedMethods()\n\t}\n}\n"],"names":["Router","props","KoaRouter","OpenApiManager","ctx","callback","responseValue","value","status","contentType","parseEndpointReturnValue","middleware","next","userData","key","path"],"mappings":"8MAWO,MAAMA,CAAiE,CAGtE,YAAYC,EAAe,CAAE,oBAAqB,IAAS,CAF3D,KAAA,UAAuB,IAAIC,EAG5BD,EAAM,qBACaE,iBAAe,YAAY,EACnC,gBAAgB,CAAC,IAAI,CAAC,CACtC,CAGD,MAAc,kBACbC,EACAC,EACC,CAED,MAAMC,EAAgB,MAAMD,EAASD,EAAK,MAAS,EAC7C,CAAE,MAAAG,EAAO,OAAAC,EAAQ,YAAAC,CAAY,EAAIC,EAAAA,yBAAyBJ,CAAa,EAC7EF,EAAI,KAAOG,EACPC,IAAW,UACdJ,EAAI,OAASI,GAEVJ,EAAA,IAAI,eAAgBK,CAAW,CAAA,CAG7B,OAAOE,EAAuD,CAC/D,YAAA,UAAU,IAAI,GAAGA,CAAU,EACzB,IAAA,CAGD,KACNA,EACC,CAED,YAAK,UAAU,IAAI,MAAOP,EAAKQ,IAAS,CACvC,MAAMC,EAAW,MAAM,QAAQ,QAAQF,EAAWP,CAAG,CAAC,EACtD,OAAO,KAAKS,CAAQ,EAAE,QAASC,GAAQ,CAClCV,EAAAU,CAAG,EAAID,EAASC,CAAG,CAAA,CACvB,EACD,MAAMF,EAAK,CAAA,CACX,EACM,IAAA,CAGD,IACNG,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,KACNU,EACAV,EACC,CACD,YAAK,UAAU,KAAKU,EAAM,MAAOX,GAAQ,CAClC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,IACNU,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,OACNU,EACAV,EACC,CACD,YAAK,UAAU,OAAOU,EAAM,MAAOX,GAAQ,CACpC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,IACNU,EACAV,EACC,CACD,YAAK,UAAU,IAAIU,EAAM,MAAOX,GAAQ,CACjC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,MACNU,EACAV,EACC,CACD,YAAK,UAAU,MAAMU,EAAM,MAAOX,GAAQ,CACnC,MAAA,KAAK,kBAAkBA,EAAKC,CAAQ,CAAA,CAC1C,EACM,IAAA,CAGD,QAAS,CACR,OAAA,KAAK,UAAU,OAAO,CAAA,CAGvB,gBAAiB,CAChB,OAAA,KAAK,UAAU,eAAe,CAAA,CAEvC"}
@@ -1,4 +1,4 @@
1
- import { default as KoaRouter } from '@koa/router';
1
+ import { default as KoaRouter, RouterMiddleware } from '@koa/router';
2
2
  import { default as Koa } from 'koa';
3
3
  import { ExtractedRequestParams } from '../utils/TypeUtils';
4
4
 
@@ -9,16 +9,23 @@ export declare class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultCon
9
9
  koaRouter: KoaRouter;
10
10
  constructor(props?: Props);
11
11
  private sendResponseValue;
12
- use(...middleware: Array<KoaRouter.Middleware<StateT, ContextT>>): this;
12
+ use(...middleware: Array<RouterMiddleware<StateT, ContextT>>): this;
13
13
  with<ResponseTypeT extends Record<string, any>>(middleware: (ctx: Koa.ParameterizedContext<ContextT>) => ResponseTypeT): Router<StateT, ContextT & (ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT)>;
14
- get<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
15
- post<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
16
- put<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
17
- delete<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
18
- del<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
19
- patch<P extends string>(path: P, callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
20
- routes(): KoaRouter.Middleware<Koa.DefaultState, Koa.DefaultContext, unknown>;
21
- allowedMethods(): KoaRouter.Middleware<Koa.DefaultState, Koa.DefaultContext, unknown>;
14
+ get<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
15
+ post<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
16
+ put<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
17
+ delete<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
18
+ del<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
19
+ patch<P extends string>(path: P, callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>): this;
20
+ routes(): Koa.Middleware<Koa.DefaultState, Koa.DefaultContext & {
21
+ params: Record<string, string>;
22
+ router: import('@koa/router').RouterInstance<Koa.DefaultState, Koa.DefaultContext>;
23
+ _matchedRoute?: string | RegExp;
24
+ _matchedRouteName?: string;
25
+ }> & {
26
+ router?: KoaRouter<Koa.DefaultState, Koa.DefaultContext> | undefined;
27
+ };
28
+ allowedMethods(): RouterMiddleware<Koa.DefaultState, Koa.DefaultContext, unknown>;
22
29
  }
23
30
  export {};
24
31
  //# sourceMappingURL=Router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,KAAK,KAAK,GAAG;IACZ,mBAAmB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,qBAAa,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,GAAG,CAAC,cAAc;IACpE,SAAS,EAAE,SAAS,CAAkB;gBAE1B,KAAK,GAAE,KAAsC;YAOlD,iBAAiB;IAcxB,GAAG,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAMhE,IAAI,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpD,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,aAAa,GAWvD,MAAM,CAAC,MAAM,EAAE,QAAQ,gFAAgB,CAAC;IAGjD,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,IAAI,CAAC,CAAC,SAAS,MAAM,EAC3B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,MAAM,CAAC,CAAC,SAAS,MAAM,EAC7B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,KAAK,CAAC,CAAC,SAAS,MAAM,EAC5B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQtE,MAAM;IAIN,cAAc;CAGrB"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAiB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,KAAK,KAAK,GAAG;IACZ,mBAAmB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,qBAAa,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,GAAG,CAAC,cAAc;IACpE,SAAS,EAAE,SAAS,CAAkB;gBAE1B,KAAK,GAAE,KAAsC;YAOlD,iBAAiB;IAcxB,GAAG,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAK5D,IAAI,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpD,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,aAAa,GAUvD,MAAM,CAAC,MAAM,EAAE,QAAQ,gFAAgB,CAAC;IAGjD,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,IAAI,CAAC,CAAC,SAAS,MAAM,EAC3B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,MAAM,CAAC,CAAC,SAAS,MAAM,EAC7B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,GAAG,CAAC,CAAC,SAAS,MAAM,EAC1B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,KAAK,CAAC,CAAC,SAAS,MAAM,EAC5B,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQlE,MAAM;;;;;;;;IAIN,cAAc;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Router.mjs","sources":["../../src/router/Router.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport KoaRouter from '@koa/router'\nimport Koa from 'koa'\n\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { ExtractedRequestParams } from '../utils/TypeUtils'\nimport { parseEndpointReturnValue } from './parseEndpointReturnValue'\n\ntype Props = {\n\tskipOpenApiAnalysis: boolean\n}\n\nexport class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {\n\tpublic koaRouter: KoaRouter = new KoaRouter()\n\n\tpublic constructor(props: Props = { skipOpenApiAnalysis: false }) {\n\t\tif (!props.skipOpenApiAnalysis) {\n\t\t\tconst openApiManager = OpenApiManager.getInstance()\n\t\t\topenApiManager.registerRouters([this])\n\t\t}\n\t}\n\n\tprivate async sendResponseValue<P extends string>(\n\t\tctx: Parameters<Parameters<KoaRouter['get']>[1]>[0],\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\t// @ts-ignore\n\t\tconst responseValue = await callback(ctx, undefined)\n\t\tconst { value, status, contentType } = parseEndpointReturnValue(responseValue)\n\t\tctx.body = value\n\t\tif (status !== 'unset') {\n\t\t\tctx.status = status\n\t\t}\n\t\tctx.set('Content-Type', contentType)\n\t}\n\n\tpublic use(...middleware: Array<KoaRouter.Middleware<StateT, ContextT>>) {\n\t\t// @ts-ignore\n\t\tthis.koaRouter.use(...middleware)\n\t\treturn this\n\t}\n\n\tpublic with<ResponseTypeT extends Record<string, any>>(\n\t\tmiddleware: (ctx: Koa.ParameterizedContext<ContextT>) => ResponseTypeT,\n\t) {\n\t\ttype AugmentedData = ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT\n\t\tthis.koaRouter.use(async (ctx, next) => {\n\t\t\t// @ts-ignore\n\t\t\tconst userData = await Promise.resolve(middleware(ctx))\n\t\t\tObject.keys(userData).forEach((key) => {\n\t\t\t\tctx[key] = userData[key]\n\t\t\t})\n\t\t\tawait next()\n\t\t})\n\t\treturn this as Router<StateT, ContextT & AugmentedData>\n\t}\n\n\tpublic get<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.get(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic post<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.post(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic put<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.put(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic delete<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.delete(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic del<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.del(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic patch<P extends string>(\n\t\tpath: P,\n\t\tcallback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.patch(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic routes() {\n\t\treturn this.koaRouter.routes()\n\t}\n\n\tpublic allowedMethods() {\n\t\treturn this.koaRouter.allowedMethods()\n\t}\n}\n"],"names":["Router","props","KoaRouter","OpenApiManager","ctx","callback","responseValue","value","status","contentType","parseEndpointReturnValue","middleware","next","userData","key","path"],"mappings":";;;AAYO,MAAMA,EAAiE;AAAA,EAGtE,YAAYC,IAAe,EAAE,qBAAqB,MAAS;AAF3D,SAAA,YAAuB,IAAIC,EAAU,GAGtCD,EAAM,uBACaE,EAAe,YAAY,EACnC,gBAAgB,CAAC,IAAI,CAAC;AAAA,EACtC;AAAA,EAGD,MAAc,kBACbC,GACAC,GACC;AAED,UAAMC,IAAgB,MAAMD,EAASD,GAAK,MAAS,GAC7C,EAAE,OAAAG,GAAO,QAAAC,GAAQ,aAAAC,EAAY,IAAIC,EAAyBJ,CAAa;AAC7E,IAAAF,EAAI,OAAOG,GACPC,MAAW,YACdJ,EAAI,SAASI,IAEVJ,EAAA,IAAI,gBAAgBK,CAAW;AAAA,EAAA;AAAA,EAG7B,OAAOE,GAA2D;AAEnE,gBAAA,UAAU,IAAI,GAAGA,CAAU,GACzB;AAAA,EAAA;AAAA,EAGD,KACNA,GACC;AAED,gBAAK,UAAU,IAAI,OAAOP,GAAKQ,MAAS;AAEvC,YAAMC,IAAW,MAAM,QAAQ,QAAQF,EAAWP,CAAG,CAAC;AACtD,aAAO,KAAKS,CAAQ,EAAE,QAAQ,CAACC,MAAQ;AAClC,QAAAV,EAAAU,CAAG,IAAID,EAASC,CAAG;AAAA,MAAA,CACvB,GACD,MAAMF,EAAK;AAAA,IAAA,CACX,GACM;AAAA,EAAA;AAAA,EAGD,IACNG,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,KACNU,GACAV,GACC;AACD,gBAAK,UAAU,KAAKU,GAAM,OAAOX,MAAQ;AAClC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,IACNU,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,OACNU,GACAV,GACC;AACD,gBAAK,UAAU,OAAOU,GAAM,OAAOX,MAAQ;AACpC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,IACNU,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,MACNU,GACAV,GACC;AACD,gBAAK,UAAU,MAAMU,GAAM,OAAOX,MAAQ;AACnC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,SAAS;AACR,WAAA,KAAK,UAAU,OAAO;AAAA,EAAA;AAAA,EAGvB,iBAAiB;AAChB,WAAA,KAAK,UAAU,eAAe;AAAA,EAAA;AAEvC;"}
1
+ {"version":3,"file":"Router.mjs","sources":["../../src/router/Router.ts"],"sourcesContent":["import KoaRouter, { RouterContext, RouterMiddleware } from '@koa/router'\nimport Koa from 'koa'\n\nimport { OpenApiManager } from '../openapi/manager/OpenApiManager'\nimport { ExtractedRequestParams } from '../utils/TypeUtils'\nimport { parseEndpointReturnValue } from './parseEndpointReturnValue'\n\ntype Props = {\n\tskipOpenApiAnalysis: boolean\n}\n\nexport class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {\n\tpublic koaRouter: KoaRouter = new KoaRouter()\n\n\tpublic constructor(props: Props = { skipOpenApiAnalysis: false }) {\n\t\tif (!props.skipOpenApiAnalysis) {\n\t\t\tconst openApiManager = OpenApiManager.getInstance()\n\t\t\topenApiManager.registerRouters([this])\n\t\t}\n\t}\n\n\tprivate async sendResponseValue<P extends string>(\n\t\tctx: RouterContext,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\t// @ts-expect-error - Context is valid\n\t\tconst responseValue = await callback(ctx, undefined)\n\t\tconst { value, status, contentType } = parseEndpointReturnValue(responseValue)\n\t\tctx.body = value\n\t\tif (status !== 'unset') {\n\t\t\tctx.status = status\n\t\t}\n\t\tctx.set('Content-Type', contentType)\n\t}\n\n\tpublic use(...middleware: Array<RouterMiddleware<StateT, ContextT>>) {\n\t\tthis.koaRouter.use(...middleware)\n\t\treturn this\n\t}\n\n\tpublic with<ResponseTypeT extends Record<string, any>>(\n\t\tmiddleware: (ctx: Koa.ParameterizedContext<ContextT>) => ResponseTypeT,\n\t) {\n\t\ttype AugmentedData = ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT\n\t\tthis.koaRouter.use(async (ctx, next) => {\n\t\t\tconst userData = await Promise.resolve(middleware(ctx))\n\t\t\tObject.keys(userData).forEach((key) => {\n\t\t\t\tctx[key] = userData[key]\n\t\t\t})\n\t\t\tawait next()\n\t\t})\n\t\treturn this as Router<StateT, ContextT & AugmentedData>\n\t}\n\n\tpublic get<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.get(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic post<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.post(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic put<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.put(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic delete<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.delete(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic del<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.del(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic patch<P extends string>(\n\t\tpath: P,\n\t\tcallback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,\n\t) {\n\t\tthis.koaRouter.patch(path, async (ctx) => {\n\t\t\tawait this.sendResponseValue(ctx, callback)\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic routes() {\n\t\treturn this.koaRouter.routes()\n\t}\n\n\tpublic allowedMethods() {\n\t\treturn this.koaRouter.allowedMethods()\n\t}\n}\n"],"names":["Router","props","KoaRouter","OpenApiManager","ctx","callback","responseValue","value","status","contentType","parseEndpointReturnValue","middleware","next","userData","key","path"],"mappings":";;;AAWO,MAAMA,EAAiE;AAAA,EAGtE,YAAYC,IAAe,EAAE,qBAAqB,MAAS;AAF3D,SAAA,YAAuB,IAAIC,EAAU,GAGtCD,EAAM,uBACaE,EAAe,YAAY,EACnC,gBAAgB,CAAC,IAAI,CAAC;AAAA,EACtC;AAAA,EAGD,MAAc,kBACbC,GACAC,GACC;AAED,UAAMC,IAAgB,MAAMD,EAASD,GAAK,MAAS,GAC7C,EAAE,OAAAG,GAAO,QAAAC,GAAQ,aAAAC,EAAY,IAAIC,EAAyBJ,CAAa;AAC7E,IAAAF,EAAI,OAAOG,GACPC,MAAW,YACdJ,EAAI,SAASI,IAEVJ,EAAA,IAAI,gBAAgBK,CAAW;AAAA,EAAA;AAAA,EAG7B,OAAOE,GAAuD;AAC/D,gBAAA,UAAU,IAAI,GAAGA,CAAU,GACzB;AAAA,EAAA;AAAA,EAGD,KACNA,GACC;AAED,gBAAK,UAAU,IAAI,OAAOP,GAAKQ,MAAS;AACvC,YAAMC,IAAW,MAAM,QAAQ,QAAQF,EAAWP,CAAG,CAAC;AACtD,aAAO,KAAKS,CAAQ,EAAE,QAAQ,CAACC,MAAQ;AAClC,QAAAV,EAAAU,CAAG,IAAID,EAASC,CAAG;AAAA,MAAA,CACvB,GACD,MAAMF,EAAK;AAAA,IAAA,CACX,GACM;AAAA,EAAA;AAAA,EAGD,IACNG,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,KACNU,GACAV,GACC;AACD,gBAAK,UAAU,KAAKU,GAAM,OAAOX,MAAQ;AAClC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,IACNU,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,OACNU,GACAV,GACC;AACD,gBAAK,UAAU,OAAOU,GAAM,OAAOX,MAAQ;AACpC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,IACNU,GACAV,GACC;AACD,gBAAK,UAAU,IAAIU,GAAM,OAAOX,MAAQ;AACjC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,MACNU,GACAV,GACC;AACD,gBAAK,UAAU,MAAMU,GAAM,OAAOX,MAAQ;AACnC,YAAA,KAAK,kBAAkBA,GAAKC,CAAQ;AAAA,IAAA,CAC1C,GACM;AAAA,EAAA;AAAA,EAGD,SAAS;AACR,WAAA,KAAK,UAAU,OAAO;AAAA,EAAA;AAAA,EAGvB,iBAAiB;AAChB,WAAA,KAAK,UAAU,eAAe;AAAA,EAAA;AAEvC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moonflower",
3
- "version": "1.5.4",
3
+ "version": "1.6.0",
4
4
  "description": "",
5
5
  "author": "tenebrie",
6
6
  "license": "MIT",
@@ -131,27 +131,23 @@
131
131
  "yargs": "^17.7.2"
132
132
  },
133
133
  "peerDependencies": {
134
- "@koa/router": "^13.1.1",
135
- "koa": "^3.2.0",
134
+ "@koa/router": "^15.0.0",
135
+ "koa": "^3.0.0",
136
136
  "koa-bodyparser": "^4.4.1",
137
137
  "ts-morph": "^28.0.0",
138
- "zod": "4.3.6"
138
+ "zod": "^4.0.0"
139
139
  },
140
140
  "peerDependenciesMeta": {
141
141
  "ts-morph": {
142
142
  "optional": true
143
- },
144
- "zod": {
145
- "optional": true
146
143
  }
147
144
  },
148
145
  "devDependencies": {
149
- "@koa/router": "^13.1.0",
146
+ "@koa/router": "^15.0.0",
150
147
  "@types/jest": "29.5.14",
151
148
  "@types/jsonwebtoken": "^9.0.7",
152
- "@types/koa": "^2.15.0",
149
+ "@types/koa": "^3.0.0",
153
150
  "@types/koa-bodyparser": "^4.3.12",
154
- "@types/koa__router": "^12.0.4",
155
151
  "@types/node": "^22.10.2",
156
152
  "@types/supertest": "^6.0.2",
157
153
  "@typescript-eslint/eslint-plugin": "^8.18.0",
@@ -162,15 +158,15 @@
162
158
  "eslint-plugin-simple-import-sort": "^12.1.1",
163
159
  "eslint-plugin-unused-imports": "^4.1.4",
164
160
  "jest": "29.7.0",
165
- "zod": "4.3.6",
166
- "koa": "^2.15.3",
161
+ "zod": "^4.0.0",
162
+ "koa": "^3.0.0",
167
163
  "koa-bodyparser": "^4.4.1",
168
164
  "node-mocks-http": "^1.16.2",
169
165
  "prettier": "^3.4.2",
170
166
  "source-map-support": "^0.5.20",
171
167
  "supertest": "^7.0.0",
172
168
  "ts-jest": "29.2.5",
173
- "ts-morph": "^24.0.0",
169
+ "ts-morph": "^28.0.0",
174
170
  "ts-node": "^10.9.2",
175
171
  "tsconfig-paths": "4.2.0",
176
172
  "typescript": "^5.7.2",
@@ -1,5 +1,4 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- import KoaRouter from '@koa/router'
1
+ import KoaRouter, { RouterContext, RouterMiddleware } from '@koa/router'
3
2
  import Koa from 'koa'
4
3
 
5
4
  import { OpenApiManager } from '../openapi/manager/OpenApiManager'
@@ -21,10 +20,10 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
21
20
  }
22
21
 
23
22
  private async sendResponseValue<P extends string>(
24
- ctx: Parameters<Parameters<KoaRouter['get']>[1]>[0],
25
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
23
+ ctx: RouterContext,
24
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
26
25
  ) {
27
- // @ts-ignore
26
+ // @ts-expect-error - Context is valid
28
27
  const responseValue = await callback(ctx, undefined)
29
28
  const { value, status, contentType } = parseEndpointReturnValue(responseValue)
30
29
  ctx.body = value
@@ -34,8 +33,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
34
33
  ctx.set('Content-Type', contentType)
35
34
  }
36
35
 
37
- public use(...middleware: Array<KoaRouter.Middleware<StateT, ContextT>>) {
38
- // @ts-ignore
36
+ public use(...middleware: Array<RouterMiddleware<StateT, ContextT>>) {
39
37
  this.koaRouter.use(...middleware)
40
38
  return this
41
39
  }
@@ -45,7 +43,6 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
45
43
  ) {
46
44
  type AugmentedData = ResponseTypeT extends Promise<any> ? Awaited<ResponseTypeT> : ResponseTypeT
47
45
  this.koaRouter.use(async (ctx, next) => {
48
- // @ts-ignore
49
46
  const userData = await Promise.resolve(middleware(ctx))
50
47
  Object.keys(userData).forEach((key) => {
51
48
  ctx[key] = userData[key]
@@ -57,7 +54,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
57
54
 
58
55
  public get<P extends string>(
59
56
  path: P,
60
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
57
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
61
58
  ) {
62
59
  this.koaRouter.get(path, async (ctx) => {
63
60
  await this.sendResponseValue(ctx, callback)
@@ -67,7 +64,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
67
64
 
68
65
  public post<P extends string>(
69
66
  path: P,
70
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
67
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
71
68
  ) {
72
69
  this.koaRouter.post(path, async (ctx) => {
73
70
  await this.sendResponseValue(ctx, callback)
@@ -77,7 +74,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
77
74
 
78
75
  public put<P extends string>(
79
76
  path: P,
80
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
77
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
81
78
  ) {
82
79
  this.koaRouter.put(path, async (ctx) => {
83
80
  await this.sendResponseValue(ctx, callback)
@@ -87,7 +84,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
87
84
 
88
85
  public delete<P extends string>(
89
86
  path: P,
90
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
87
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
91
88
  ) {
92
89
  this.koaRouter.delete(path, async (ctx) => {
93
90
  await this.sendResponseValue(ctx, callback)
@@ -97,7 +94,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
97
94
 
98
95
  public del<P extends string>(
99
96
  path: P,
100
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
97
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
101
98
  ) {
102
99
  this.koaRouter.del(path, async (ctx) => {
103
100
  await this.sendResponseValue(ctx, callback)
@@ -107,7 +104,7 @@ export class Router<StateT = Koa.DefaultState, ContextT = Koa.DefaultContext> {
107
104
 
108
105
  public patch<P extends string>(
109
106
  path: P,
110
- callback: KoaRouter.Middleware<StateT, ContextT & ExtractedRequestParams<P>>,
107
+ callback: RouterMiddleware<StateT, ContextT & ExtractedRequestParams<P>>,
111
108
  ) {
112
109
  this.koaRouter.patch(path, async (ctx) => {
113
110
  await this.sendResponseValue(ctx, callback)