@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
58 lines (57 loc) • 2 kB
TypeScript
import { OpenReadSeekCloser, ReadSeekCloser, Resource as IResource, ResourceCopier, ResourceTransformation } from '../type';
import { MediaType } from '@pkg/media/type';
import { ResourcePaths } from '@internal/domain/resources';
import { ResourceMetadata } from '@internal/domain/resources';
import { Publisher } from './publisher';
export declare class ResourceHash {
value: string;
size: number;
private resource;
setup(resource: ResourceImpl): Promise<void>;
}
export declare class PublishOnce {
private hasPublished;
private publishPromise;
do(publishFn: () => Promise<void>): Promise<void>;
}
export declare class ResourceImpl implements IResource, ResourceCopier {
private h;
private openReadSeekCloser;
private _mediaType;
private paths;
private _data;
private publisher;
private publishOnce;
constructor(openReadSeekCloser: OpenReadSeekCloser, mediaType: MediaType, paths: ResourcePaths, data?: Record<string, any>, publisher?: Publisher);
name(): string;
nameNormalized(): string;
mediaType(): MediaType;
resourceType(): string;
relPermalink(): string;
permalink(): string;
private publish;
private copyStreamToFile;
targetPath(): string;
data(): any;
readSeekCloser(): Promise<ReadSeekCloser>;
content(ctx?: any): Promise<any>;
hash(): Promise<string>;
size(): Promise<number>;
cloneTo(targetPath: string): IResource;
private clone;
key(): string;
get RelPermalink(): string;
get Permalink(): string;
get Name(): string;
get MediaType(): MediaType;
get ResourceType(): string;
get TargetPath(): string;
get Data(): any;
get Content(): Promise<any>;
get Hash(): () => Promise<string>;
get Size(): () => Promise<number>;
meta(): ResourceMetadata;
mergeData(incoming: Record<string, any>): void;
transform(...transformations: ResourceTransformation[]): Promise<IResource>;
private createTransformedResource;
}