Browse Source
- Add FileSystem and FileStream interfaces for filesystem operations - Update Database interface with proper Promise-based return types - Add QueryExecResult interface for structured query results - Include FS and register_for_idb in initialization result - Fix Database constructor to support path and options parameters - Add proper JSDoc documentation with author and description This change resolves TypeScript compilation errors in AbsurdSqlDatabaseService by providing complete type coverage for the SQL.js WASM module with filesystem support.pull/137/head
1 changed files with 57 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||||
|
/** |
||||
|
* Type definitions for @jlongster/sql.js |
||||
|
* @author Matthew Raymer |
||||
|
* @description TypeScript declaration file for the SQL.js WASM module with filesystem support |
||||
|
*/ |
||||
|
|
||||
|
declare module '@jlongster/sql.js' { |
||||
|
export interface FileSystem { |
||||
|
mkdir(path: string): void; |
||||
|
mount(fs: any, opts: any, mountpoint: string): void; |
||||
|
open(path: string, flags: string): FileStream; |
||||
|
close(stream: FileStream): void; |
||||
|
} |
||||
|
|
||||
|
export interface FileStream { |
||||
|
node: { |
||||
|
contents: { |
||||
|
readIfFallback(): Promise<void>; |
||||
|
}; |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
export interface Database { |
||||
|
exec(sql: string, params?: any[]): Promise<QueryExecResult[]>; |
||||
|
prepare(sql: string): Statement; |
||||
|
run(sql: string, params?: any[]): Promise<{ changes: number; lastId?: number }>; |
||||
|
close(): void; |
||||
|
} |
||||
|
|
||||
|
export interface QueryExecResult { |
||||
|
columns: string[]; |
||||
|
values: any[][]; |
||||
|
} |
||||
|
|
||||
|
export interface Statement { |
||||
|
bind(params: any[]): void; |
||||
|
step(): boolean; |
||||
|
get(): any[]; |
||||
|
getColumnNames(): string[]; |
||||
|
reset(): void; |
||||
|
free(): void; |
||||
|
} |
||||
|
|
||||
|
export interface InitSqlJsStatic { |
||||
|
(config?: { |
||||
|
locateFile?: (file: string) => string; |
||||
|
wasmBinary?: ArrayBuffer; |
||||
|
}): Promise<{ |
||||
|
Database: new (path?: string | Uint8Array, opts?: { filename?: boolean }) => Database; |
||||
|
FS: FileSystem; |
||||
|
register_for_idb: (fs: any) => void; |
||||
|
}>; |
||||
|
} |
||||
|
|
||||
|
const initSqlJs: InitSqlJsStatic; |
||||
|
export default initSqlJs; |
||||
|
} |
Loading…
Reference in new issue