@ereo/db-drizzle 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1401 -0
- package/dist/adapter.d.ts +23 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/config.d.ts +108 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +653 -0
- package/dist/types.d.ts +188 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +68 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ereo/db-drizzle - Type definitions
|
|
3
|
+
*
|
|
4
|
+
* Drizzle-specific types and driver configurations.
|
|
5
|
+
*/
|
|
6
|
+
import type { AdapterConfig, PoolConfig } from '@ereo/db';
|
|
7
|
+
/**
|
|
8
|
+
* Supported database drivers for the Drizzle adapter.
|
|
9
|
+
*/
|
|
10
|
+
export type DrizzleDriver = 'postgres-js' | 'neon-http' | 'neon-websocket' | 'planetscale' | 'libsql' | 'bun-sqlite' | 'better-sqlite3' | 'd1';
|
|
11
|
+
/**
|
|
12
|
+
* Map of drivers to their edge compatibility.
|
|
13
|
+
*/
|
|
14
|
+
export declare const EDGE_COMPATIBLE_DRIVERS: Record<DrizzleDriver, boolean>;
|
|
15
|
+
/**
|
|
16
|
+
* Base configuration for all Drizzle adapters.
|
|
17
|
+
*/
|
|
18
|
+
export interface DrizzleBaseConfig extends AdapterConfig {
|
|
19
|
+
/**
|
|
20
|
+
* The database driver to use.
|
|
21
|
+
*/
|
|
22
|
+
driver: DrizzleDriver;
|
|
23
|
+
/**
|
|
24
|
+
* The Drizzle schema object.
|
|
25
|
+
* Pass your schema for type inference.
|
|
26
|
+
*/
|
|
27
|
+
schema?: Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Enable Drizzle logger.
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
logger?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* PostgreSQL-specific configuration (postgres-js driver).
|
|
36
|
+
*/
|
|
37
|
+
export interface PostgresConfig extends DrizzleBaseConfig {
|
|
38
|
+
driver: 'postgres-js';
|
|
39
|
+
/**
|
|
40
|
+
* Additional postgres.js connection options.
|
|
41
|
+
*/
|
|
42
|
+
connection?: {
|
|
43
|
+
/** SSL mode */
|
|
44
|
+
ssl?: boolean | 'require' | 'prefer' | 'allow';
|
|
45
|
+
/** Maximum connections */
|
|
46
|
+
max?: number;
|
|
47
|
+
/** Idle timeout in seconds */
|
|
48
|
+
idle_timeout?: number;
|
|
49
|
+
/** Connection timeout in seconds */
|
|
50
|
+
connect_timeout?: number;
|
|
51
|
+
/** Prepare statements */
|
|
52
|
+
prepare?: boolean;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Neon HTTP configuration.
|
|
57
|
+
*/
|
|
58
|
+
export interface NeonHttpConfig extends DrizzleBaseConfig {
|
|
59
|
+
driver: 'neon-http';
|
|
60
|
+
/**
|
|
61
|
+
* Neon-specific options.
|
|
62
|
+
*/
|
|
63
|
+
neon?: {
|
|
64
|
+
/** Fetch function to use (for custom fetch implementations) */
|
|
65
|
+
fetchOptions?: RequestInit;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Neon WebSocket configuration.
|
|
70
|
+
*/
|
|
71
|
+
export interface NeonWebSocketConfig extends DrizzleBaseConfig {
|
|
72
|
+
driver: 'neon-websocket';
|
|
73
|
+
/**
|
|
74
|
+
* Neon pool configuration.
|
|
75
|
+
*/
|
|
76
|
+
pool?: PoolConfig;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* PlanetScale configuration.
|
|
80
|
+
*/
|
|
81
|
+
export interface PlanetScaleConfig extends DrizzleBaseConfig {
|
|
82
|
+
driver: 'planetscale';
|
|
83
|
+
/**
|
|
84
|
+
* PlanetScale-specific options.
|
|
85
|
+
*/
|
|
86
|
+
planetscale?: {
|
|
87
|
+
/** Fetch function to use */
|
|
88
|
+
fetch?: typeof fetch;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* LibSQL/Turso configuration.
|
|
93
|
+
*/
|
|
94
|
+
export interface LibSQLConfig extends DrizzleBaseConfig {
|
|
95
|
+
driver: 'libsql';
|
|
96
|
+
/**
|
|
97
|
+
* Authentication token for Turso.
|
|
98
|
+
*/
|
|
99
|
+
authToken?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Sync URL for embedded replicas.
|
|
102
|
+
*/
|
|
103
|
+
syncUrl?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Bun SQLite configuration.
|
|
107
|
+
*/
|
|
108
|
+
export interface BunSQLiteConfig extends DrizzleBaseConfig {
|
|
109
|
+
driver: 'bun-sqlite';
|
|
110
|
+
/**
|
|
111
|
+
* SQLite PRAGMA settings.
|
|
112
|
+
*/
|
|
113
|
+
pragma?: {
|
|
114
|
+
journal_mode?: 'DELETE' | 'TRUNCATE' | 'PERSIST' | 'MEMORY' | 'WAL' | 'OFF';
|
|
115
|
+
synchronous?: 'OFF' | 'NORMAL' | 'FULL' | 'EXTRA';
|
|
116
|
+
foreign_keys?: boolean;
|
|
117
|
+
cache_size?: number;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* better-sqlite3 configuration.
|
|
122
|
+
*/
|
|
123
|
+
export interface BetterSQLite3Config extends DrizzleBaseConfig {
|
|
124
|
+
driver: 'better-sqlite3';
|
|
125
|
+
/**
|
|
126
|
+
* SQLite options.
|
|
127
|
+
*/
|
|
128
|
+
options?: {
|
|
129
|
+
readonly?: boolean;
|
|
130
|
+
fileMustExist?: boolean;
|
|
131
|
+
timeout?: number;
|
|
132
|
+
verbose?: (message: string) => void;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Cloudflare D1 configuration.
|
|
137
|
+
*/
|
|
138
|
+
export interface D1Config extends DrizzleBaseConfig {
|
|
139
|
+
driver: 'd1';
|
|
140
|
+
/**
|
|
141
|
+
* The D1 database binding.
|
|
142
|
+
* This is provided by Cloudflare Workers runtime.
|
|
143
|
+
*/
|
|
144
|
+
d1?: D1Database;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Union of all Drizzle configuration types.
|
|
148
|
+
*/
|
|
149
|
+
export type DrizzleConfig = PostgresConfig | NeonHttpConfig | NeonWebSocketConfig | PlanetScaleConfig | LibSQLConfig | BunSQLiteConfig | BetterSQLite3Config | D1Config;
|
|
150
|
+
/**
|
|
151
|
+
* Generic Drizzle client type.
|
|
152
|
+
* This is a placeholder - actual type comes from drizzle-orm.
|
|
153
|
+
*/
|
|
154
|
+
export type DrizzleClient = unknown;
|
|
155
|
+
/**
|
|
156
|
+
* D1Database interface (from Cloudflare Workers types).
|
|
157
|
+
*/
|
|
158
|
+
export interface D1Database {
|
|
159
|
+
prepare(query: string): D1PreparedStatement;
|
|
160
|
+
dump(): Promise<ArrayBuffer>;
|
|
161
|
+
batch<T = unknown>(statements: D1PreparedStatement[]): Promise<D1Result<T>[]>;
|
|
162
|
+
exec(query: string): Promise<D1ExecResult>;
|
|
163
|
+
}
|
|
164
|
+
export interface D1PreparedStatement {
|
|
165
|
+
bind(...values: unknown[]): D1PreparedStatement;
|
|
166
|
+
first<T = unknown>(colName?: string): Promise<T>;
|
|
167
|
+
run(): Promise<D1Result>;
|
|
168
|
+
all<T = unknown>(): Promise<D1Result<T>>;
|
|
169
|
+
raw<T = unknown>(): Promise<T[]>;
|
|
170
|
+
}
|
|
171
|
+
export interface D1Result<T = unknown> {
|
|
172
|
+
results?: T[];
|
|
173
|
+
success: boolean;
|
|
174
|
+
error?: string;
|
|
175
|
+
meta: {
|
|
176
|
+
changed_db?: boolean;
|
|
177
|
+
changes?: number;
|
|
178
|
+
last_row_id?: number;
|
|
179
|
+
duration?: number;
|
|
180
|
+
rows_read?: number;
|
|
181
|
+
rows_written?: number;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export interface D1ExecResult {
|
|
185
|
+
count: number;
|
|
186
|
+
duration: number;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ereo/db-drizzle",
|
|
3
|
+
"version": "0.1.6",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"author": "Ereo Team",
|
|
6
|
+
"homepage": "https://ereo.dev",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/ereojs/ereo.git",
|
|
10
|
+
"directory": "packages/db-drizzle"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/ereojs/ereo/issues"
|
|
14
|
+
},
|
|
15
|
+
"description": "Drizzle ORM adapter for EreoJS database abstraction",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"import": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun --external @ereo/db --external drizzle-orm --external postgres --external @neondatabase/serverless --external @planetscale/database --external @libsql/client --external better-sqlite3 && bun run build:types",
|
|
30
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
31
|
+
"dev": "bun build ./src/index.ts --outdir ./dist --target bun --watch",
|
|
32
|
+
"test": "bun test",
|
|
33
|
+
"typecheck": "tsc --noEmit"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@ereo/db": "workspace:*",
|
|
37
|
+
"drizzle-orm": "^0.30.0"
|
|
38
|
+
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"postgres": "^3.4.0",
|
|
41
|
+
"@neondatabase/serverless": "^0.9.0",
|
|
42
|
+
"@planetscale/database": "^1.16.0",
|
|
43
|
+
"@libsql/client": "^0.5.0",
|
|
44
|
+
"better-sqlite3": "^9.0.0"
|
|
45
|
+
},
|
|
46
|
+
"peerDependenciesMeta": {
|
|
47
|
+
"postgres": {
|
|
48
|
+
"optional": true
|
|
49
|
+
},
|
|
50
|
+
"@neondatabase/serverless": {
|
|
51
|
+
"optional": true
|
|
52
|
+
},
|
|
53
|
+
"@planetscale/database": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"@libsql/client": {
|
|
57
|
+
"optional": true
|
|
58
|
+
},
|
|
59
|
+
"better-sqlite3": {
|
|
60
|
+
"optional": true
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/bun": "^1.1.0",
|
|
65
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
66
|
+
"typescript": "^5.4.0"
|
|
67
|
+
}
|
|
68
|
+
}
|