UNPKG

@zenweb/controller

Version:

Zenweb Controller module

64 lines (63 loc) 1.43 kB
import { RouterOptions } from '@zenweb/router'; import { Middleware } from '@zenweb/core'; import { RouterMethod, RouterPath } from '@zenweb/router'; import { MethodDescriptor } from 'decorator-make'; /** * 控制器类描述 */ export interface ControllerClass { new (): object; } /** * 方法路由映射 */ export interface MappingItem extends MethodDescriptor { methods: RouterMethod[]; path: RouterPath; middleware: Middleware[]; } /** * 控制器选项 */ export interface ControllerOption extends RouterOptions { middleware?: Middleware | Middleware[]; } /** * 控制器项 */ export interface ControllerItem { /** * 控制器类 */ target: ControllerClass; /** * 控制器选项 */ option: ControllerOption; /** * 控制器路由映射列表 */ mappingList: MappingItem[]; } /** * 控制器安装选项 */ export interface ControllerSetupOption { /** * 发现目录 */ discoverPaths?: string[]; /** * 文件匹配规则 * @default '**\/*.{js,ts,jsx,tsx}' */ patterns?: string | string[]; /** * 是否自动添加控制器前缀 * - 自动前缀是根据路径名自动生成的 * - 如果文件名使用 index 则自动忽略 * - 如果 \@controller({ prefix: '/somepath' }) 前缀为 '/' 也会忽略 * @default false */ autoControllerPrefix?: boolean; }