import {Canonical, CanonicalDefinition} from './Canonical.ts' import {isRouterDefinition, RouterDefinition} from '../http/type/RouterDefinition.ts' import {Unit} from '../lifecycle/decorators.ts' /** * Canonical unit which loads router definitions. * @extends Canonical */ @Unit() export default class Routes extends Canonical { protected base_path = './app/http/routes' protected canonical_item = 'route_group' protected suffix = '.routes.ts' public async init_canonical_item(def: CanonicalDefinition): Promise { const item = await super.init_canonical_item(def) if ( !isRouterDefinition(item) ) { throw new TypeError(`Invalid routes definition: ${def.original_name}.`) } return item } }