import type { RoleDefinition } from './base.role'; import { AdminRole } from './admin.role'; import { UserRole } from './user.role'; import { TestRole } from './test.role'; export class RoleFactory { private static roles: Map = new Map([ ['admin', AdminRole], ['user', UserRole], ['test', TestRole] ]); static getRole(roleName: string): RoleDefinition { const role = this.roles.get(roleName); if (!role) { throw new Error(`Role '${roleName}' not found`); } return role; } static getAllRoles(): RoleDefinition[] { return Array.from(this.roles.values()); } }