// Identity function for type-safe role definitions. // App defines roles once, all features reference them via the typed object. // // Usage: // const roles = defineRoles(["Admin", "SystemAdmin", "Driver"] as const); // roles.Admin // "Admin" — autocomplete + type-checked // roles.Admni // TS error type RoleMap = { readonly [K in T[number]]: K; }; export function defineRoles(roles: T): RoleMap { const map = {} as Record; // @cast-boundary schema-walk for (const role of roles) { map[role] = role; } return map as RoleMap; // @cast-boundary schema-walk }