@mdfriday/foundry
Version:
The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.
74 lines • 2.18 kB
TypeScript
import { File as IFile, Fs, FileInfo as IFileInfo } from '../type';
import { FileMeta } from './filemeta';
import { FileInfo } from './fileinfo';
/**
* File represents a file with metadata
* TypeScript version of Go's File struct
*/
export declare class File implements IFile {
private readonly file;
private readonly fileMeta;
private fs;
private readonly _isDir;
constructor(file: IFile | null, fileMeta: FileMeta, fs: Fs, isDir?: boolean);
/**
* Check if this is a no-op file (null file)
*/
isNop(): boolean;
/**
* Close the file
*/
close(): Promise<void>;
/**
* ReadDir reads directory entries
*/
readDir(count: number): Promise<FileInfo[]>;
/**
* Get the file metadata
*/
meta(): FileMeta;
/**
* Simple path join implementation
*/
private joinPath;
read(buffer: Uint8Array): Promise<{
bytesRead: number;
buffer: Uint8Array;
}>;
readAt(buffer: Uint8Array, offset: number): Promise<{
bytesRead: number;
buffer: Uint8Array;
}>;
seek(offset: number, whence: number): Promise<number>;
write(buffer: Uint8Array): Promise<{
bytesWritten: number;
buffer: Uint8Array;
}>;
writeAt(buffer: Uint8Array, offset: number): Promise<{
bytesWritten: number;
buffer: Uint8Array;
}>;
name(): string;
readdir(count: number): Promise<IFileInfo[]>;
readdirnames(n: number): Promise<string[]>;
stat(): Promise<IFileInfo>;
sync(): Promise<void>;
truncate(size: number): Promise<void>;
writeString(s: string): Promise<{
bytesWritten: number;
}>;
}
/**
* Creates a new File instance
*/
export declare function newFile(file: IFile, filename: string, fs: Fs): File;
/**
* Creates a new File with existing FileMeta
*/
export declare function newFileWithMeta(file: IFile, meta: FileMeta, fs: Fs): File;
export declare function newDirFileWithMeta(file: IFile, meta: FileMeta, fs: Fs): File;
/**
* Creates a new directory File
*/
export declare function newDirFile(file: IFile, filename: string, fs: Fs): File;
//# sourceMappingURL=file.d.ts.map