1
- import type { Promisable } from '@subframe7536/type-utils'
2
- import { Base } from 'wa-sqlite/src/VFS.js'
1
+ import type { Base } from 'wa-sqlite/src/VFS.js'
3
2
4
- // eslint-disable-next-line unused-imports/no-unused-vars
5
- declare class ISQLiteVFS extends Base {
6
- public static create ( name : string , module : any , options ?: any ) : Promisable < SQLiteVFS >
3
+ export type Promisable < T > = T | Promise < T >
4
+
5
+ export interface FacadeVFS extends Base {
6
+ close : ( ) => void | Promise < void >
7
+
8
+ isReady : ( ) => boolean | Promise < boolean >
9
+
10
+ hasAsyncMethod : ( methodName : string ) => boolean
11
+
12
+ getFilename : ( pFile : number ) => string
13
+
14
+ jOpen : ( filename : string , pFile : number , flags : number , pOutFlags : DataView ) => number | Promise < number >
15
+
16
+ jDelete : ( filename : string , syncDir : number ) => number | Promise < number >
17
+
18
+ jAccess : ( filename : string , flags : number , pResOut : DataView ) => number | Promise < number >
19
+
20
+ jFullPathname : ( filename : string , zOut : Uint8Array ) => number | Promise < number >
21
+
22
+ jGetLastError : ( zBuf : Uint8Array ) => number | Promise < number >
23
+
24
+ jClose : ( pFile : number ) => number | Promise < number >
25
+
26
+ jRead : ( pFile : number , pData : Uint8Array , iOffset : number ) => number | Promise < number >
27
+
28
+ jWrite : ( pFile : number , pData : Uint8Array , iOffset : number ) => number | Promise < number >
29
+
30
+ jTruncate : ( pFile : number , size : number ) => number | Promise < number >
31
+
32
+ jSync : ( pFile : number , flags : number ) => number | Promise < number >
33
+
34
+ jFileSize : ( pFile : number , pSize : DataView ) => number | Promise < number >
35
+
36
+ jLock : ( pFile : number , lockType : number ) => number | Promise < number >
37
+
38
+ jUnlock : ( pFile : number , lockType : number ) => number | Promise < number >
39
+
40
+ jCheckReservedLock : ( pFile : number , pResOut : DataView ) => number | Promise < number >
41
+
42
+ jFileControl : ( pFile : number , op : number , pArg : DataView ) => number | Promise < number >
43
+
44
+ jSectorSize : ( pFile : number ) => number | Promise < number >
45
+
46
+ jDeviceCharacteristics : ( pFile : number ) => number | Promise < number >
7
47
}
8
48
9
49
export type IDBBatchAtomicVFSOptions = {
@@ -22,7 +62,7 @@ export type IDBBatchAtomicVFSOptions = {
22
62
export type Options = {
23
63
path : string
24
64
sqliteModule : any
25
- vfsFn : typeof ISQLiteVFS [ 'create' ]
65
+ vfsFn : ( name : string , module : any , options ?: any ) => Promisable < FacadeVFS >
26
66
vfsOptions ?: any
27
67
readonly ?: boolean
28
68
}
@@ -47,7 +87,7 @@ export type SQLiteDBCore = {
47
87
/**
48
88
* SQLite vfs
49
89
*/
50
- vfs : SQLiteVFS
90
+ vfs : FacadeVFS
51
91
}
52
92
53
93
export type SQLiteDB = SQLiteDBCore & {
0 commit comments