import { defineMemberMetadata, getMemberMetadata } from "../core/metadata.ts"; const KEY = "muddle:auth"; export interface AuthOptions { roles?: string[]; redirect?: string } export function Auth(options: AuthOptions = {}): MethodDecorator { return (target, propertyKey) => defineMemberMetadata(KEY, options, target as object, propertyKey as string); } export function getAuth(target: object, propertyKey: string): AuthOptions | undefined { return getMemberMetadata(KEY, target, propertyKey)[0] as AuthOptions | undefined; }