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; }