UNPKG

@ark7/router

Version:
1 lines 1.64 kB
{"version":3,"sources":["../src/sub-controllers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AAQrC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;CACpC;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,iBAAiB,GAAG,eAAe,CAgCrC","file":"sub-controllers.d.ts","sourcesContent":["import * as Router from 'koa-router';\n\nimport {\n A7ControllerMetadata,\n A7ControllerSubsidiaryType,\n} from './declarations';\nimport { Middleware } from './decorators';\n\n/**\n * Options to define a handler.\n */\nexport interface SubControllerOptions {\n path?: string;\n name?: string;\n middlewares?: Router.IMiddleware[];\n}\n\nexport function SubController(\n options: SubControllerOptions = {},\n): PropertyDecorator & MethodDecorator {\n const m = Middleware([]) as MethodDecorator;\n\n return (\n target: any,\n propertyKey: string,\n descriptor?: TypedPropertyDescriptor<any>,\n ) => {\n const desc = m(target, propertyKey, descriptor);\n\n const cls = target.constructor;\n const meta = A7ControllerMetadata.getMetadata(cls);\n const subsidiary = meta.getOrCreateSubsidiary(propertyKey);\n\n subsidiary.type = A7ControllerSubsidiaryType.SUB_CONTROLLER;\n\n if (options.middlewares) {\n subsidiary.pushMiddlewaresInFront(options.middlewares);\n }\n\n if (options.path) {\n subsidiary.path = options.path;\n }\n\n if (options.name) {\n subsidiary.name = options.name;\n }\n\n meta.defineMetadata(cls);\n\n return desc;\n };\n}\n"],"sourceRoot":"/Users/yz/workspace/router/src"}