21 lines
546 B
TypeScript
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;
|
|
}
|