Skip to content

Commit 9f0712c

Browse files
Merge pull request #1132 from objectstack-ai/claude/fix-driver-turso-requirement
fix(driver-turso): make better-sqlite3 optional peer dependency for Vercel compatibility
2 parents 9d9fc88 + 5d59665 commit 9f0712c

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

packages/plugins/driver-turso/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,29 @@ TursoDriver extends SqlDriver (dual transport)
3838
pnpm add @objectstack/driver-turso
3939
```
4040

41+
### Dependencies by Mode
42+
43+
The `driver-turso` package has different dependency requirements based on the connection mode:
44+
45+
| Mode | Required Dependencies | Notes |
46+
|:---|:---|:---|
47+
| **Remote** | `@libsql/client` only | ✅ Vercel/Edge compatible — no native dependencies |
48+
| **Local** | `@libsql/client` + `better-sqlite3` | Requires `better-sqlite3` for local SQLite access |
49+
| **Replica** | `@libsql/client` + `better-sqlite3` | Requires `better-sqlite3` for local SQLite + sync |
50+
51+
**For Vercel/Edge deployments (remote mode only):**
52+
```bash
53+
pnpm add @objectstack/driver-turso
54+
# better-sqlite3 is NOT required
55+
```
56+
57+
**For local/replica modes:**
58+
```bash
59+
pnpm add @objectstack/driver-turso better-sqlite3
60+
```
61+
62+
The `better-sqlite3` package is an **optional peer dependency**. If you're only using remote mode (e.g., on Vercel), you don't need to install it. npm/pnpm will show a warning that can be safely ignored.
63+
4164
## Connection Modes
4265

4366
### Local File (Embedded SQLite)

packages/plugins/driver-turso/package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,19 @@
3333
"@objectstack/core": "workspace:*",
3434
"@objectstack/driver-sql": "workspace:*",
3535
"@objectstack/spec": "workspace:*",
36-
"better-sqlite3": "^12.9.0",
3736
"nanoid": "^5.1.7"
3837
},
38+
"peerDependencies": {
39+
"better-sqlite3": "^12.9.0"
40+
},
41+
"peerDependenciesMeta": {
42+
"better-sqlite3": {
43+
"optional": true
44+
}
45+
},
3946
"devDependencies": {
4047
"@types/node": "^25.6.0",
48+
"better-sqlite3": "^12.9.0",
4149
"typescript": "^6.0.2",
4250
"vitest": "^4.1.4"
4351
}

pnpm-lock.yaml

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

0 commit comments

Comments
 (0)