UNPKG

@mdfriday/foundry

Version:

The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.

39 lines (38 loc) 1.79 kB
import { Template } from '@mdfriday/text-template'; import { TemplateNamespace, TemplateState } from '../type'; declare abstract class BaseNamespace<T extends TemplateState> { protected templates: Map<string, T>; protected readonly mutex: Set<string>; addTemplate(name: string, state: T): void; findTemplate(name: string): T | null; getTemplates(): Map<string, T>; hasTemplate(name: string): boolean; getTemplateNames(): string[]; removeTemplate(name: string): boolean; clear(): void; size(): number; getTemplatesByPattern(pattern: RegExp): T[]; protected withLock<R>(fn: () => R): R; protected withReadLock<R>(fn: () => R): R; abstract lookup(name: string): Template | null; } export declare class RegularTemplateNamespace extends BaseNamespace<TemplateState> implements TemplateNamespace { lookup(name: string): Template | null; findTemplateWithDependencies(name: string): TemplateState | null; getTemplatesNeedingBase(): TemplateState[]; } export declare class PartialTemplateNamespace extends BaseNamespace<TemplateState> { lookup(name: string): Template | null; addPartialTemplate(name: string, state: TemplateState): void; } export declare class ShortcodeTemplateNamespace extends BaseNamespace<TemplateState> { lookup(name: string): Template | null; addShortcodeTemplate(name: string, state: TemplateState): void; getShortcode(name: string): Template | null; hasShortcode(name: string): boolean; getShortcodeNames(): string[]; } export declare function newRegularTemplateNamespace(): RegularTemplateNamespace; export declare function newPartialTemplateNamespace(): PartialTemplateNamespace; export declare function newShortcodeTemplateNamespace(): ShortcodeTemplateNamespace; export {};