Skip to content

Commit 39a4136

Browse files
committed
fix: type correct and bundle #1
1 parent 95982e7 commit 39a4136

File tree

6 files changed

+57
-21
lines changed

6 files changed

+57
-21
lines changed

package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,9 @@
6161
"access": "public",
6262
"registry": "https://registry.npmjs.org/"
6363
},
64-
"dependencies": {
65-
"@subframe7536/type-utils": "^0.1.6"
66-
},
6764
"devDependencies": {
6865
"@subframe7536/eslint-config": "^0.9.4",
66+
"@subframe7536/type-utils": "^0.1.6",
6967
"@types/node": "^20.16.13",
7068
"bumpp": "^9.7.1",
7169
"eslint": "^9.13.0",

pnpm-lock.yaml

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import type { Promisable } from '@subframe7536/type-utils'
2-
import type { Options, SQLiteDB, SQLiteDBCore } from './types'
1+
import type { Options, Promisable, SQLiteDB, SQLiteDBCore } from './types'
32
import { Factory, SQLITE_OPEN_CREATE, SQLITE_OPEN_READONLY, SQLITE_OPEN_READWRITE, SQLITE_ROW } from 'wa-sqlite'
43

54
/**
@@ -31,7 +30,7 @@ export async function initSQLiteCore(
3130
const { path, sqliteModule, vfsFn, vfsOptions, readonly } = await options
3231
const sqlite = Factory(sqliteModule)
3332
const vfs = await vfsFn(path, sqliteModule, vfsOptions)
34-
sqlite.vfs_register(vfs, true)
33+
sqlite.vfs_register(vfs as unknown as SQLiteVFS, true)
3534
const db = await sqlite.open_v2(
3635
path,
3736
readonly ? SQLITE_OPEN_READONLY : SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,

src/types/index.ts

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,49 @@
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'
32

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>
747
}
848

949
export type IDBBatchAtomicVFSOptions = {
@@ -22,7 +62,7 @@ export type IDBBatchAtomicVFSOptions = {
2262
export type Options = {
2363
path: string
2464
sqliteModule: any
25-
vfsFn: typeof ISQLiteVFS['create']
65+
vfsFn: (name: string, module: any, options?: any) => Promisable<FacadeVFS>
2666
vfsOptions?: any
2767
readonly?: boolean
2868
}
@@ -47,7 +87,7 @@ export type SQLiteDBCore = {
4787
/**
4888
* SQLite vfs
4989
*/
50-
vfs: SQLiteVFS
90+
vfs: FacadeVFS
5191
}
5292

5393
export type SQLiteDB = SQLiteDBCore & {

src/types/wa-sqlite.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
declare module 'wa-sqlite/src/examples/IDBBatchAtomicVFS.js' {
22
export class IDBBatchAtomicVFS {
3-
static create(name: string, module: any, options: any): Promise<SQLiteVFS>
3+
static create(name: string, module: any, options: any): Promise<any>
44
}
55
}
66

77
declare module 'wa-sqlite/src/examples/IDBMirrorVFS.js' {
88
export class IDBMirrorVFS {
9-
static create(name: string, module: any): Promise<SQLiteVFS>
9+
static create(name: string, module: any): Promise<any>
1010
}
1111
}
1212

1313
declare module 'wa-sqlite/src/examples/OPFSCoopSyncVFS.js' {
1414
export class OPFSCoopSyncVFS {
15-
static create(name: string, module: any): Promise<SQLiteVFS>
15+
static create(name: string, module: any): Promise<any>
1616
}
1717
}

tsup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default defineConfig({
1010
constant: 'src/constant.ts',
1111
},
1212
format: ['esm', 'cjs'],
13-
dts: true,
13+
dts: { resolve: true },
1414
treeshake: true,
1515
tsconfig: './tsconfig.json',
1616
noExternal: ['wa-sqlite'],

0 commit comments

Comments
 (0)