18 lines
542 B
TypeScript
18 lines
542 B
TypeScript
import { defineMetadata, getMetadata } from "../core/metadata.ts";
|
|
|
|
const KEY = "muddle:render-ahead";
|
|
|
|
export type RenderAheadSource = string[] | (() => Promise<string[]> | string[]);
|
|
|
|
export function RenderAhead(routes: RenderAheadSource): MethodDecorator {
|
|
return (target, propertyKey) => {
|
|
defineMetadata(KEY, routes, target, propertyKey);
|
|
};
|
|
}
|
|
|
|
export function getRenderAhead(
|
|
target: object,
|
|
propertyKey: string,
|
|
): RenderAheadSource | undefined {
|
|
return getMetadata(KEY, target, propertyKey) as RenderAheadSource | undefined;
|
|
}
|