UNPKG

@electric-sql/pglite

Version:

PGlite is a WASM Postgres build packaged into a TypeScript client library that enables you to run Postgres in the browser, Node.js and Bun, with no need to install any other dependencies. It is only 3.7mb gzipped.

113 lines (110 loc) 3.86 kB
import { v as BaseFilesystem, b as PGlite, c as PostgresMod, w as FsStats } from '../pglite-Csk75SCB.js'; 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 };