Skip to content

Commit d103a72

Browse files
committed
feat(dialect-wasqlite-worker): minimum version check function
1 parent e03faa2 commit d103a72

File tree

10 files changed

+296
-227
lines changed

10 files changed

+296
-227
lines changed

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@
3333
"@commitlint/cli": "^17.8.1",
3434
"@commitlint/config-conventional": "^17.8.1",
3535
"@sqlite.org/sqlite-wasm": "3.43.2-prebuild1",
36-
"@subframe7536/eslint-config": "^0.4.0",
37-
"@types/better-sqlite3": "^7.6.6",
38-
"@types/node": "^18.18.8",
39-
"@types/sql.js": "^1.4.8",
36+
"@subframe7536/eslint-config": "^0.4.2",
37+
"@types/better-sqlite3": "^7.6.7",
38+
"@types/node": "^18.18.9",
39+
"@types/sql.js": "^1.4.9",
4040
"@vlcn.io/crsqlite-wasm": "^0.15.2",
41-
"better-sqlite3": "^9.0.0",
41+
"better-sqlite3": "^9.1.1",
4242
"bumpp": "^9.2.0",
4343
"cz-git": "^1.7.1",
4444
"czg": "^1.7.1",

packages/dialect-wasqlite-worker/README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ export default defineConfig({
5656

5757
## limitation
5858

59-
only worked in secure environment, like:
60-
61-
- localhost
62-
- https
59+
- [minimal IndexedDB backend browser version](https://caniuse.com/mdn-api_lockmanager)
60+
- [minimal OPFS backend browser version](https://caniuse.com/mdn-api_filesystemsyncaccesshandle)
61+
- only worked in secure environment, like:
62+
- localhost
63+
- https

packages/dialect-wasqlite-worker/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@
4343
"zen-mitt": "^0.3.0"
4444
},
4545
"devDependencies": {
46-
"@subframe7536/sqlite-wasm": "^0.1.2"
46+
"@subframe7536/sqlite-wasm": "^0.1.4"
4747
}
4848
}

packages/dialect-wasqlite-worker/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler } from 'kysely'
33
import { WaSqliteWorkerDriver } from './driver'
44
import type { Promisable } from './type'
55

6+
export { isIdbSupported as isSupported } from '@subframe7536/sqlite-wasm'
67
export interface WaSqliteWorkerDialectConfig {
78
/**
89
* db file name

packages/dialect-wasqlite-worker/src/worker.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ import type { InitMsg, MainMsg, RunMsg, WorkerMsg } from './type'
66
let db: SQLiteDB
77

88
async function init({ fileName, preferOPFS, url }: InitMsg) {
9-
let storage
10-
if (await isOpfsSupported() && preferOPFS) {
11-
storage = (await import('@subframe7536/sqlite-wasm/opfs')).useOpfsStorage(fileName, { url })
12-
} else {
13-
storage = (await import('@subframe7536/sqlite-wasm/idb')).useIdbStorage(fileName, { url })
14-
}
15-
16-
db = await initSQLite(storage)
9+
db = await initSQLite(
10+
(
11+
await isOpfsSupported() && preferOPFS
12+
? (await import('@subframe7536/sqlite-wasm/opfs')).useOpfsStorage
13+
: (await import('@subframe7536/sqlite-wasm/idb')).useIdbStorage
14+
)(
15+
fileName,
16+
{ url },
17+
),
18+
)
1719
}
1820
async function exec({ isSelect, sql, parameters }: RunMsg): Promise<QueryResult<any>> {
1921
const rows = await db.run(sql, parameters)

packages/sqlite-builder/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"kysely": "^0.26"
3939
},
4040
"dependencies": {
41-
"@subframe7536/type-utils": "^0.1.3",
41+
"@subframe7536/type-utils": "^0.1.4",
4242
"kysely-plugin-serialize": "workspace:*",
4343
"kysely-sqlite-utils": "workspace:*"
4444
}

playground/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
"preview": "pnpm build && vite preview"
66
},
77
"dependencies": {
8-
"@subframe7536/sqlite-wasm": "^0.1.1",
8+
"@subframe7536/sqlite-wasm": "^0.1.2",
99
"kysely-sqlite-builder": "workspace:*",
1010
"kysely-wasm": "workspace:*",
1111
"kysely-wasqlite-worker": "workspace:*",
12-
"vue": "^3.3.7"
12+
"vue": "^3.3.8"
1313
},
1414
"devDependencies": {
15-
"@vitejs/plugin-vue": "^4.4.0"
15+
"@vitejs/plugin-vue": "^4.4.1"
1616
}
1717
}

playground/src/modules/wasqliteWorker.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { WaSqliteWorkerDialect } from 'kysely-wasqlite-worker'
1+
import { WaSqliteWorkerDialect, isSupported } from 'kysely-wasqlite-worker'
22

33
// import Worker from 'kysely-wasqlite-worker/dist/worker?worker'
44
// import url from 'kysely-wasqlite-worker/dist/wa-sqlite-async.wasm?url'
@@ -13,7 +13,12 @@ const dialect = new WaSqliteWorkerDialect({
1313

1414
export function useWaSqliteWorker() {
1515
console.log('start wa-sqlite-worker test')
16-
testDB(dialect).then((data) => {
17-
data?.forEach(e => console.log('[wa-sqlite-worker]', e))
18-
})
16+
if (!isSupported()) {
17+
console.error('[wa-sqlite-worker]: unsupported browser')
18+
return
19+
}
20+
testDB(dialect)
21+
.then((data) => {
22+
data?.forEach(e => console.log('[wa-sqlite-worker]', e))
23+
})
1924
}

playground/vite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default defineConfig({
55
plugins: [vue()],
66
base: './',
77
build: {
8-
minify: true,
8+
minify: false,
99
target: 'es2020',
1010
rollupOptions: {
1111
treeshake: true,

0 commit comments

Comments
 (0)