113 lines
3.8 KiB
TypeScript
113 lines
3.8 KiB
TypeScript
import { v as BaseFilesystem, b as PGlite, c as PostgresMod, w as FsStats } from '../pglite-CntadC_p.cjs';
|
|
|
|
interface OpfsAhpOptions {
|
|
initialPoolSize?: number;
|
|
maintainedPoolSize?: number;
|
|
debug?: boolean;
|
|
}
|
|
interface FileSystemSyncAccessHandle {
|
|
close(): void;
|
|
flush(): void;
|
|
getSize(): number;
|
|
read(buffer: ArrayBuffer, options: {
|
|
at: number;
|
|
}): number;
|
|
truncate(newSize: number): void;
|
|
write(buffer: ArrayBuffer, options: {
|
|
at: number;
|
|
}): number;
|
|
}
|
|
interface State {
|
|
root: DirectoryNode;
|
|
pool: PoolFilenames;
|
|
}
|
|
type PoolFilenames = Array<string>;
|
|
interface WALEntry {
|
|
opp: string;
|
|
args: any[];
|
|
}
|
|
type NodeType = 'file' | 'directory';
|
|
interface BaseNode {
|
|
type: NodeType;
|
|
lastModified: number;
|
|
mode: number;
|
|
}
|
|
interface FileNode extends BaseNode {
|
|
type: 'file';
|
|
backingFilename: string;
|
|
}
|
|
interface DirectoryNode extends BaseNode {
|
|
type: 'directory';
|
|
children: {
|
|
[filename: string]: Node;
|
|
};
|
|
}
|
|
type Node = FileNode | DirectoryNode;
|
|
/**
|
|
* PGlite OPFS access handle pool filesystem.
|
|
* Opens a pool of sync access handles and then allocates them as needed.
|
|
*/
|
|
declare class OpfsAhpFS extends BaseFilesystem {
|
|
#private;
|
|
readonly dataDir: string;
|
|
readonly initialPoolSize: number;
|
|
readonly maintainedPoolSize: number;
|
|
state: State;
|
|
lastCheckpoint: number;
|
|
checkpointInterval: number;
|
|
poolCounter: number;
|
|
constructor(dataDir: string, { initialPoolSize, maintainedPoolSize, debug, }?: OpfsAhpOptions);
|
|
init(pg: PGlite, opts: Partial<PostgresMod>): Promise<{
|
|
emscriptenOpts: Partial<PostgresMod>;
|
|
}>;
|
|
syncToFs(relaxedDurability?: boolean): Promise<void>;
|
|
closeFs(): Promise<void>;
|
|
maintainPool(size?: number): Promise<void>;
|
|
_createPoolFileState(filename: string): void;
|
|
_deletePoolFileState(filename: string): void;
|
|
maybeCheckpointState(): Promise<void>;
|
|
checkpointState(): Promise<void>;
|
|
flush(): void;
|
|
chmod(path: string, mode: number): void;
|
|
_chmodState(path: string, mode: number): void;
|
|
close(fd: number): void;
|
|
fstat(fd: number): FsStats;
|
|
lstat(path: string): FsStats;
|
|
mkdir(path: string, options?: {
|
|
recursive?: boolean;
|
|
mode?: number;
|
|
}): void;
|
|
_mkdirState(path: string, options?: {
|
|
recursive?: boolean;
|
|
mode?: number;
|
|
}): void;
|
|
open(path: string, _flags?: string, _mode?: number): number;
|
|
readdir(path: string): string[];
|
|
read(fd: number, buffer: Uint8Array, // Buffer to read into
|
|
offset: number, // Offset in buffer to start writing to
|
|
length: number, // Number of bytes to read
|
|
position: number): number;
|
|
rename(oldPath: string, newPath: string): void;
|
|
_renameState(oldPath: string, newPath: string, doFileOps?: boolean): void;
|
|
rmdir(path: string): void;
|
|
_rmdirState(path: string): void;
|
|
truncate(path: string, len?: number): void;
|
|
unlink(path: string): void;
|
|
_unlinkState(path: string, doFileOps?: boolean): void;
|
|
utimes(path: string, atime: number, mtime: number): void;
|
|
_utimesState(path: string, _atime: number, mtime: number): void;
|
|
writeFile(path: string, data: string | Uint8Array, options?: {
|
|
encoding?: string;
|
|
mode?: number;
|
|
flag?: string;
|
|
}): void;
|
|
_createFileNodeState(path: string, node: FileNode): FileNode;
|
|
_setLastModifiedState(path: string, lastModified: number): void;
|
|
write(fd: number, buffer: Uint8Array, // Buffer to read from
|
|
offset: number, // Offset in buffer to start reading from
|
|
length: number, // Number of bytes to write
|
|
position: number): number;
|
|
}
|
|
|
|
export { type DirectoryNode, type FileNode, type FileSystemSyncAccessHandle, type Node, type NodeType, OpfsAhpFS, type OpfsAhpOptions, type PoolFilenames, type State, type WALEntry };
|