muddle/decorators/Auth.ts
2026-10-23 09:12:49 -04:00

21 lines
546 B
TypeScript

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