UNPKG

@adonisjs-community/girouette

Version:

An AdonisJS package allowing decorators-based routing.

50 lines (49 loc) 1.28 kB
import { REFLECT_GROUP_KEY } from '../constants.js'; import { REFLECT_GROUP_DOMAIN_KEY } from '../constants.js'; /** * The Group decorator allows you to configure route groups with names and prefixes. * * @param options Configuration object for the group * * @example * ```ts * // Using name and prefix * @Group({ name: 'admin', prefix: '/admin' }) * export default class AdminController {} * * // Using just a name * @Group({ name: 'admin' }) * export default class AdminController {} * * // Using just a prefix * @Group({ prefix: '/admin' }) * export default class AdminController {} * ``` */ export const Group = (options) => { return (target) => { Reflect.defineMetadata(REFLECT_GROUP_KEY, options, target); }; }; /** * The GroupDomain decorator allows you to restrict all routes within a controller * to a specific domain. * * @param domain Domain to restrict routes to * * @example * ```ts * @GroupDomain('admin.example.com') * export default class AdminController { * @Get('/admin/dashboard') * index() { * // Only accessible via admin.example.com * } * } * ``` */ export const GroupDomain = (domain) => { return (target) => { Reflect.defineMetadata(REFLECT_GROUP_DOMAIN_KEY, domain, target); }; };