drizzle-orm 1.0.0-beta.1-f92627f → 1.0.0-beta.1-cdf226f

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.
Files changed (45) hide show
  1. package/effect/effect-wrapper.cjs +46 -0
  2. package/effect/effect-wrapper.cjs.map +1 -0
  3. package/effect/effect-wrapper.d.cts +8 -0
  4. package/effect/effect-wrapper.d.ts +8 -0
  5. package/effect/effect-wrapper.js +22 -0
  6. package/effect/effect-wrapper.js.map +1 -0
  7. package/effect/sqlite/db.cjs +371 -0
  8. package/effect/sqlite/db.cjs.map +1 -0
  9. package/effect/sqlite/db.d.cts +277 -0
  10. package/effect/sqlite/db.d.ts +277 -0
  11. package/effect/sqlite/db.js +351 -0
  12. package/effect/sqlite/db.js.map +1 -0
  13. package/effect/sqlite/driver.cjs +67 -0
  14. package/effect/sqlite/driver.cjs.map +1 -0
  15. package/effect/sqlite/driver.d.cts +4 -0
  16. package/effect/sqlite/driver.d.ts +4 -0
  17. package/effect/sqlite/driver.js +33 -0
  18. package/effect/sqlite/driver.js.map +1 -0
  19. package/effect/sqlite/index.cjs +25 -0
  20. package/effect/sqlite/index.cjs.map +1 -0
  21. package/effect/sqlite/index.d.cts +2 -0
  22. package/effect/sqlite/index.d.ts +2 -0
  23. package/effect/sqlite/index.js +3 -0
  24. package/effect/sqlite/index.js.map +1 -0
  25. package/effect/sqlite/query-builders/select.cjs +122 -0
  26. package/effect/sqlite/query-builders/select.cjs.map +1 -0
  27. package/effect/sqlite/query-builders/select.d.cts +62 -0
  28. package/effect/sqlite/query-builders/select.d.ts +62 -0
  29. package/effect/sqlite/query-builders/select.js +97 -0
  30. package/effect/sqlite/query-builders/select.js.map +1 -0
  31. package/effect/sqlite/session.cjs +237 -0
  32. package/effect/sqlite/session.cjs.map +1 -0
  33. package/effect/sqlite/session.d.cts +79 -0
  34. package/effect/sqlite/session.d.ts +79 -0
  35. package/effect/sqlite/session.js +212 -0
  36. package/effect/sqlite/session.js.map +1 -0
  37. package/package.json +139 -52
  38. package/sqlite-core/session.cjs.map +1 -1
  39. package/sqlite-core/session.d.cts +1 -1
  40. package/sqlite-core/session.d.ts +1 -1
  41. package/sqlite-core/session.js.map +1 -1
  42. package/version.cjs +1 -1
  43. package/version.d.cts +1 -1
  44. package/version.d.ts +1 -1
  45. package/version.js +1 -1
@@ -0,0 +1,351 @@
1
+ import { entityKind } from "../../entity.js";
2
+ import { SelectionProxyHandler } from "../../selection-proxy.js";
3
+ import { sql } from "../../sql/sql.js";
4
+ import { _RelationalQueryBuilder } from "../../sqlite-core/query-builders/_query.js";
5
+ import { SQLiteCountBuilder } from "../../sqlite-core/query-builders/count.js";
6
+ import {
7
+ QueryBuilder,
8
+ SQLiteDeleteBase,
9
+ SQLiteInsertBuilder,
10
+ SQLiteUpdateBuilder
11
+ } from "../../sqlite-core/query-builders/index.js";
12
+ import { RelationalQueryBuilder } from "../../sqlite-core/query-builders/query.js";
13
+ import { WithSubquery } from "../../subquery.js";
14
+ import { EffectSQLiteSelectBuilder } from "./query-builders/select.js";
15
+ class EffectSQLiteDatabase {
16
+ constructor(dialect, session, relations, _schema, rowModeRQB, forbidJsonb) {
17
+ this.dialect = dialect;
18
+ this.session = session;
19
+ this.rowModeRQB = rowModeRQB;
20
+ this.forbidJsonb = forbidJsonb;
21
+ this._ = _schema ? {
22
+ schema: _schema.schema,
23
+ fullSchema: _schema.fullSchema,
24
+ tableNamesMap: _schema.tableNamesMap,
25
+ relations
26
+ } : {
27
+ schema: void 0,
28
+ fullSchema: {},
29
+ tableNamesMap: {},
30
+ relations
31
+ };
32
+ this._query = {};
33
+ const query = this._query;
34
+ if (this._.schema) {
35
+ for (const [tableName, columns] of Object.entries(this._.schema)) {
36
+ query[tableName] = new _RelationalQueryBuilder(
37
+ "sync",
38
+ _schema.fullSchema,
39
+ this._.schema,
40
+ this._.tableNamesMap,
41
+ _schema.fullSchema[tableName],
42
+ columns,
43
+ dialect,
44
+ session
45
+ );
46
+ }
47
+ }
48
+ this.query = {};
49
+ for (const [tableName, relation] of Object.entries(relations)) {
50
+ this.query[tableName] = new RelationalQueryBuilder(
51
+ "sync",
52
+ relations,
53
+ relations[relation.name].table,
54
+ relation,
55
+ dialect,
56
+ session,
57
+ rowModeRQB,
58
+ forbidJsonb
59
+ );
60
+ }
61
+ this.$cache = { invalidate: async (_params) => {
62
+ } };
63
+ }
64
+ static [entityKind] = "EffectSQLiteDatabase";
65
+ /** @deprecated */
66
+ _query;
67
+ // TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas
68
+ query;
69
+ /**
70
+ * Creates a subquery that defines a temporary named result set as a CTE.
71
+ *
72
+ * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.
73
+ *
74
+ * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}
75
+ *
76
+ * @param alias The alias for the subquery.
77
+ *
78
+ * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.
79
+ *
80
+ * @example
81
+ *
82
+ * ```ts
83
+ * // Create a subquery with alias 'sq' and use it in the select query
84
+ * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));
85
+ *
86
+ * const result = yield* db.with(sq).select().from(sq);
87
+ * ```
88
+ *
89
+ * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:
90
+ *
91
+ * ```ts
92
+ * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query
93
+ * const sq = db.$with('sq').as(db.select({
94
+ * name: sql<string>`upper(${users.name})`.as('name'),
95
+ * })
96
+ * .from(users));
97
+ *
98
+ * const result = yield* db.with(sq).select({ name: sq.name }).from(sq);
99
+ * ```
100
+ */
101
+ $with = (alias, selection) => {
102
+ const self = this;
103
+ const as = (qb) => {
104
+ if (typeof qb === "function") {
105
+ qb = qb(new QueryBuilder(self.dialect));
106
+ }
107
+ return new Proxy(
108
+ new WithSubquery(
109
+ qb.getSQL(),
110
+ selection ?? ("getSelectedFields" in qb ? qb.getSelectedFields() ?? {} : {}),
111
+ alias,
112
+ true
113
+ ),
114
+ new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
115
+ );
116
+ };
117
+ return { as };
118
+ };
119
+ $count(source, filters) {
120
+ return new SQLiteCountBuilder({ source, filters, session: this.session });
121
+ }
122
+ /**
123
+ * Incorporates a previously defined CTE (using `$with`) into the main query.
124
+ *
125
+ * This method allows the main query to reference a temporary named result set.
126
+ *
127
+ * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}
128
+ *
129
+ * @param queries The CTEs to incorporate into the main query.
130
+ *
131
+ * @example
132
+ *
133
+ * ```ts
134
+ * // Define a subquery 'sq' as a CTE using $with
135
+ * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));
136
+ *
137
+ * // Incorporate the CTE 'sq' into the main query and select from it
138
+ * const result = yield* db.with(sq).select().from(sq);
139
+ * ```
140
+ */
141
+ with(...queries) {
142
+ const self = this;
143
+ function select(fields) {
144
+ return new EffectSQLiteSelectBuilder({
145
+ fields: fields ?? void 0,
146
+ session: self.session,
147
+ dialect: self.dialect,
148
+ withList: queries
149
+ });
150
+ }
151
+ function selectDistinct(fields) {
152
+ return new EffectSQLiteSelectBuilder({
153
+ fields: fields ?? void 0,
154
+ session: self.session,
155
+ dialect: self.dialect,
156
+ withList: queries,
157
+ distinct: true
158
+ });
159
+ }
160
+ function update(table) {
161
+ return new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);
162
+ }
163
+ function insert(into) {
164
+ return new SQLiteInsertBuilder(into, self.session, self.dialect, queries);
165
+ }
166
+ function delete_(from) {
167
+ return new SQLiteDeleteBase(from, self.session, self.dialect, queries);
168
+ }
169
+ return { select, selectDistinct, update, insert, delete: delete_ };
170
+ }
171
+ select(fields) {
172
+ return new EffectSQLiteSelectBuilder({ fields: fields ?? void 0, session: this.session, dialect: this.dialect });
173
+ }
174
+ selectDistinct(fields) {
175
+ return new EffectSQLiteSelectBuilder({
176
+ fields: fields ?? void 0,
177
+ session: this.session,
178
+ dialect: this.dialect,
179
+ distinct: true
180
+ });
181
+ }
182
+ /**
183
+ * Creates an update query.
184
+ *
185
+ * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.
186
+ *
187
+ * Use `.set()` method to specify which values to update.
188
+ *
189
+ * See docs: {@link https://orm.drizzle.team/docs/update}
190
+ *
191
+ * @param table The table to update.
192
+ *
193
+ * @example
194
+ *
195
+ * ```ts
196
+ * // Update all rows in the 'cars' table
197
+ * yield* db.update(cars).set({ color: 'red' });
198
+ *
199
+ * // Update rows with filters and conditions
200
+ * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));
201
+ *
202
+ * // Update with returning clause
203
+ * const updatedCar: Car[] = yield* db.update(cars)
204
+ * .set({ color: 'red' })
205
+ * .where(eq(cars.id, 1))
206
+ * .returning();
207
+ * ```
208
+ */
209
+ update(table) {
210
+ return new SQLiteUpdateBuilder(table, this.session, this.dialect);
211
+ }
212
+ $cache;
213
+ /**
214
+ * Creates an insert query.
215
+ *
216
+ * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.
217
+ *
218
+ * See docs: {@link https://orm.drizzle.team/docs/insert}
219
+ *
220
+ * @param table The table to insert into.
221
+ *
222
+ * @example
223
+ *
224
+ * ```ts
225
+ * // Insert one row
226
+ * yield* db.insert(cars).values({ brand: 'BMW' });
227
+ *
228
+ * // Insert multiple rows
229
+ * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);
230
+ *
231
+ * // Insert with returning clause
232
+ * const insertedCar: Car[] = yield* db.insert(cars)
233
+ * .values({ brand: 'BMW' })
234
+ * .returning();
235
+ * ```
236
+ */
237
+ insert(into) {
238
+ return new SQLiteInsertBuilder(into, this.session, this.dialect);
239
+ }
240
+ /**
241
+ * Creates a delete query.
242
+ *
243
+ * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.
244
+ *
245
+ * See docs: {@link https://orm.drizzle.team/docs/delete}
246
+ *
247
+ * @param table The table to delete from.
248
+ *
249
+ * @example
250
+ *
251
+ * ```ts
252
+ * // Delete all rows in the 'cars' table
253
+ * yield* db.delete(cars);
254
+ *
255
+ * // Delete rows with filters and conditions
256
+ * yield* db.delete(cars).where(eq(cars.color, 'green'));
257
+ *
258
+ * // Delete with returning clause
259
+ * const deletedCar: Car[] = yield* db.delete(cars)
260
+ * .where(eq(cars.id, 1))
261
+ * .returning();
262
+ * ```
263
+ */
264
+ delete(from) {
265
+ return new SQLiteDeleteBase(from, this.session, this.dialect);
266
+ }
267
+ /** @deprecated Use `.effectRun()` for `Effect` compatibility */
268
+ run = () => {
269
+ throw new Error("Use `.effectRun()` for `Effect` compatibility");
270
+ };
271
+ /** @deprecated Use `.effectAll()` for `Effect` compatibility */
272
+ all = () => {
273
+ throw new Error("Use `.effectAll()` for `Effect` compatibility");
274
+ };
275
+ /** @deprecated Use `.effectGet()` for `Effect` compatibility */
276
+ get = () => {
277
+ throw new Error("Use `.effectGet()` for `Effect` compatibility");
278
+ };
279
+ /** @deprecated Use `.effectValues()` for `Effect` compatibility */
280
+ values = () => {
281
+ throw new Error("Use `.effectValues()` for `Effect` compatibility");
282
+ };
283
+ effectRun(query) {
284
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
285
+ return this.session.effectRun(sequel);
286
+ }
287
+ effectAll(query) {
288
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
289
+ return this.session.effectAll(sequel);
290
+ }
291
+ effectGet(query) {
292
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
293
+ return this.session.effectGet(sequel);
294
+ }
295
+ effectValues(query) {
296
+ const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL();
297
+ return this.session.effectValues(sequel);
298
+ }
299
+ transaction(transaction, config) {
300
+ return this.session.transaction(transaction, config);
301
+ }
302
+ }
303
+ const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => {
304
+ const select = (...args) => getReplica(replicas).select(...args);
305
+ const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args);
306
+ const $count = (...args) => getReplica(replicas).$count(...args);
307
+ const $with = (...args) => getReplica(replicas).with(...args);
308
+ const update = (...args) => primary.update(...args);
309
+ const insert = (...args) => primary.insert(...args);
310
+ const $delete = (...args) => primary.delete(...args);
311
+ const run = (...args) => primary.run(...args);
312
+ const all = (...args) => primary.all(...args);
313
+ const get = (...args) => primary.get(...args);
314
+ const values = (...args) => primary.values(...args);
315
+ const effectRun = (...args) => primary.effectRun(...args);
316
+ const effectAll = (...args) => primary.effectAll(...args);
317
+ const effectGet = (...args) => primary.effectGet(...args);
318
+ const effectValues = (...args) => primary.effectValues(...args);
319
+ const transaction = (...args) => primary.transaction(...args);
320
+ return {
321
+ ...primary,
322
+ update,
323
+ insert,
324
+ delete: $delete,
325
+ run,
326
+ all,
327
+ get,
328
+ values,
329
+ effectRun,
330
+ effectAll,
331
+ effectGet,
332
+ effectValues,
333
+ transaction,
334
+ $primary: primary,
335
+ select,
336
+ selectDistinct,
337
+ $count,
338
+ with: $with,
339
+ get _query() {
340
+ return getReplica(replicas)._query;
341
+ },
342
+ get query() {
343
+ return getReplica(replicas).query;
344
+ }
345
+ };
346
+ };
347
+ export {
348
+ EffectSQLiteDatabase,
349
+ withReplicas
350
+ };
351
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/sqlite/db.ts"],"sourcesContent":["import type { SqliteClient } from '@effect/sql-sqlite-node/SqliteClient';\nimport type { SqlError } from '@effect/sql/SqlError';\nimport type { Effect } from 'effect/Effect';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { type ColumnsSelection, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { _RelationalQueryBuilder } from '~/sqlite-core/query-builders/_query.ts';\nimport { SQLiteCountBuilder } from '~/sqlite-core/query-builders/count.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport { RelationalQueryBuilder } from '~/sqlite-core/query-builders/query.ts';\nimport type { SelectedFields } from '~/sqlite-core/query-builders/select.types.ts';\nimport type { Result, SQLiteTransaction, SQLiteTransactionConfig } from '~/sqlite-core/session.ts';\nimport type { WithBuilder } from '~/sqlite-core/subquery.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { SQLiteViewBase } from '~/sqlite-core/view-base.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { EffectSQLiteSelectBuilder } from './query-builders/select.ts';\nimport type { EffectSQLiteSession } from './session.ts';\n\nexport class EffectSQLiteDatabase<\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTSchema extends V1.TablesRelationalConfig = V1.ExtractTablesWithRelations<TFullSchema>,\n> {\n\tstatic readonly [entityKind]: string = 'EffectSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly fullSchema: TFullSchema;\n\t\treadonly tableNamesMap: Record<string, string>;\n\t\treadonly relations: TRelations;\n\t};\n\n\t/** @deprecated */\n\t_query: TFullSchema extends Record<string, never>\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\n\t// TO-DO: Figure out how to pass DrizzleTypeError without breaking withReplicas\n\tquery: {\n\t\t[K in keyof TRelations]: RelationalQueryBuilder<\n\t\t\t'sync',\n\t\t\tTRelations,\n\t\t\tTRelations[K]\n\t\t>;\n\t};\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }['sync'],\n\t\t/** @internal */\n\t\treadonly session: EffectSQLiteSession<TFullSchema, TRelations, TSchema>,\n\t\trelations: TRelations,\n\t\t_schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly rowModeRQB?: boolean,\n\t\treadonly forbidJsonb?: boolean,\n\t) {\n\t\tthis._ = _schema\n\t\t\t? {\n\t\t\t\tschema: _schema.schema,\n\t\t\t\tfullSchema: _schema.fullSchema as TFullSchema,\n\t\t\t\ttableNamesMap: _schema.tableNamesMap,\n\t\t\t\trelations,\n\t\t\t}\n\t\t\t: {\n\t\t\t\tschema: undefined,\n\t\t\t\tfullSchema: {} as TFullSchema,\n\t\t\t\ttableNamesMap: {},\n\t\t\t\trelations,\n\t\t\t};\n\n\t\tthis._query = {} as typeof this['_query'];\n\t\tconst query = this._query as {\n\t\t\t[K in keyof TSchema]: _RelationalQueryBuilder<'sync', TFullSchema, TSchema, TSchema[K]>;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new _RelationalQueryBuilder(\n\t\t\t\t\t'sync',\n\t\t\t\t\t_schema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\t_schema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t\tthis.query = {} as typeof this['query'];\n\t\tfor (const [tableName, relation] of Object.entries(relations)) {\n\t\t\t(this.query as EffectSQLiteDatabase<\n\t\t\t\tTSchema,\n\t\t\t\tAnyRelations,\n\t\t\t\tV1.TablesRelationalConfig\n\t\t\t>['query'])[tableName] = new RelationalQueryBuilder(\n\t\t\t\t'sync',\n\t\t\t\trelations,\n\t\t\t\trelations[relation.name]!.table as SQLiteTable,\n\t\t\t\trelation,\n\t\t\t\tdialect,\n\t\t\t\tsession as EffectSQLiteSession<any, any, any>,\n\t\t\t\trowModeRQB,\n\t\t\t\tforbidJsonb,\n\t\t\t);\n\t\t}\n\t\tthis.$cache = { invalidate: async (_params: any) => {} };\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql<string>`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = yield* db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with: WithBuilder = (alias: string, selection?: ColumnsSelection) => {\n\t\tconst self = this;\n\t\tconst as = (\n\t\t\tqb:\n\t\t\t\t| TypedQueryBuilder<ColumnsSelection | undefined>\n\t\t\t\t| SQL\n\t\t\t\t| ((qb: QueryBuilder) => TypedQueryBuilder<ColumnsSelection | undefined> | SQL),\n\t\t) => {\n\t\t\tif (typeof qb === 'function') {\n\t\t\t\tqb = qb(new QueryBuilder(self.dialect));\n\t\t\t}\n\n\t\t\treturn new Proxy(\n\t\t\t\tnew WithSubquery(\n\t\t\t\t\tqb.getSQL(),\n\t\t\t\t\tselection ?? ('getSelectedFields' in qb ? qb.getSelectedFields() ?? {} : {}) as SelectedFields,\n\t\t\t\t\talias,\n\t\t\t\t\ttrue,\n\t\t\t\t),\n\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t);\n\t\t};\n\t\treturn { as };\n\t};\n\n\t$count(\n\t\tsource: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper,\n\t\tfilters?: SQL<unknown>,\n\t) {\n\t\treturn new SQLiteCountBuilder({ source, filters, session: this.session });\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = yield* db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = yield* db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * yield* db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * yield* db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(\n\t\t\tfields: TSelection,\n\t\t): EffectSQLiteSelectBuilder<TSelection>;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * yield* db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = yield* db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * yield* db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = yield* db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = yield* db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql<string>`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): EffectSQLiteSelectBuilder<undefined>;\n\tselect<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselect(fields?: SelectedFields): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * yield* db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * yield* db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): EffectSQLiteSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(\n\t\tfields: TSelection,\n\t): EffectSQLiteSelectBuilder<TSelection>;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): EffectSQLiteSelectBuilder<SelectedFields | undefined> {\n\t\treturn new EffectSQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * yield* db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * yield* db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = yield* db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate<TTable extends SQLiteTable>(table: TTable): SQLiteUpdateBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t$cache: { invalidate: Cache['onMutate'] };\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * yield* db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * yield* db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = yield* db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert<TTable extends SQLiteTable>(into: TTable): SQLiteInsertBuilder<TTable, 'sync', unknown> {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * yield* db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * yield* db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = yield* db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete<TTable extends SQLiteTable>(from: TTable): SQLiteDeleteBase<TTable, 'sync', unknown> {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\t/** @deprecated Use `.effectRun()` for `Effect` compatibility */\n\trun: any = () => {\n\t\tthrow new Error('Use `.effectRun()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectAll()` for `Effect` compatibility */\n\tall: any = () => {\n\t\tthrow new Error('Use `.effectAll()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectGet()` for `Effect` compatibility */\n\tget: any = () => {\n\t\tthrow new Error('Use `.effectGet()` for `Effect` compatibility');\n\t};\n\n\t/** @deprecated Use `.effectValues()` for `Effect` compatibility */\n\tvalues: any = () => {\n\t\tthrow new Error('Use `.effectValues()` for `Effect` compatibility');\n\t};\n\n\teffectRun(query: SQLWrapper | string): Effect<unknown, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectRun(sequel) as Effect<unknown, SqlError, SqliteClient>;\n\t}\n\n\teffectAll<T = unknown>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectAll(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\teffectGet<T = unknown>(query: SQLWrapper | string): Effect<T, SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectGet(sequel) as Effect<T, SqlError, SqliteClient>;\n\t}\n\n\teffectValues<T extends unknown[] = unknown[]>(query: SQLWrapper | string): Effect<T[], SqlError, SqliteClient> {\n\t\tconst sequel = typeof query === 'string' ? sql.raw(query) : query.getSQL();\n\t\treturn this.session.effectValues(sequel) as Effect<T[], SqlError, SqliteClient>;\n\t}\n\n\ttransaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<'sync', unknown, TFullSchema, TRelations, TSchema>,\n\t\t) => Result<'sync', T>,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result<'sync', T> {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas<Q> = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n\tQ extends EffectSQLiteDatabase<\n\t\tTFullSchema,\n\t\tTRelations,\n\t\tTSchema extends Record<string, unknown> ? V1.ExtractTablesWithRelations<TFullSchema> : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas<Q> => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst effectRun: Q['effectRun'] = (...args: [any]) => primary.effectRun(...args);\n\tconst effectAll: Q['effectAll'] = (...args: [any]) => primary.effectAll(...args);\n\tconst effectGet: Q['effectGet'] = (...args: [any]) => primary.effectGet(...args);\n\tconst effectValues: Q['effectValues'] = (...args: [any]) => primary.effectValues(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\teffectRun,\n\t\teffectAll,\n\t\teffectGet,\n\t\teffectValues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\t$count,\n\t\twith: $with,\n\t\tget _query() {\n\t\t\treturn getReplica(replicas)._query;\n\t\t},\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var driver_exports = {};
30
+ __export(driver_exports, {
31
+ drizzle: () => drizzle
32
+ });
33
+ module.exports = __toCommonJS(driver_exports);
34
+ var V1 = __toESM(require("../../_relations.cjs"), 1);
35
+ var import_logger = require("../../logger.cjs");
36
+ var import_dialect = require("../../sqlite-core/dialect.cjs");
37
+ var import_db = require("./db.cjs");
38
+ var import_session = require("./session.cjs");
39
+ function drizzle(config = {}) {
40
+ const dialect = new import_dialect.SQLiteSyncDialect({ casing: config.casing });
41
+ let logger;
42
+ if (config.logger === true) {
43
+ logger = new import_logger.DefaultLogger();
44
+ } else if (config.logger !== false) {
45
+ logger = config.logger;
46
+ }
47
+ let schema;
48
+ if (config.schema) {
49
+ const tablesConfig = V1.extractTablesRelationalConfig(
50
+ config.schema,
51
+ V1.createTableRelationsHelpers
52
+ );
53
+ schema = {
54
+ fullSchema: config.schema,
55
+ schema: tablesConfig.tables,
56
+ tableNamesMap: tablesConfig.tableNamesMap
57
+ };
58
+ }
59
+ const relations = config.relations ?? {};
60
+ const session = new import_session.EffectSQLiteSession(dialect, relations, schema, { logger });
61
+ return new import_db.EffectSQLiteDatabase(dialect, session, relations, schema);
62
+ }
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ drizzle
66
+ });
67
+ //# sourceMappingURL=driver.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/sqlite/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { EffectSQLiteDatabase } from './db.ts';\nimport { EffectSQLiteSession } from './session.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(config: DrizzleConfig<TSchema, TRelations> = {}): EffectSQLiteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new EffectSQLiteSession(dialect, relations, schema, { logger });\n\treturn new EffectSQLiteDatabase(dialect, session, relations, schema) as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,oBAA8B;AAE9B,qBAAkC;AAElC,gBAAqC;AACrC,qBAAoC;AAE7B,SAAS,QAGd,SAA6C,CAAC,GAA8C;AAC7F,QAAM,UAAU,IAAI,iCAAkB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC/D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,mCAAoB,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AAC9E,SAAO,IAAI,+BAAqB,SAAS,SAAS,WAAW,MAAM;AACpE;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { AnyRelations, EmptyRelations } from "../../relations.cjs";
2
+ import type { DrizzleConfig } from "../../utils.cjs";
3
+ import { EffectSQLiteDatabase } from "./db.cjs";
4
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): EffectSQLiteDatabase<TSchema, TRelations>;
@@ -0,0 +1,4 @@
1
+ import type { AnyRelations, EmptyRelations } from "../../relations.js";
2
+ import type { DrizzleConfig } from "../../utils.js";
3
+ import { EffectSQLiteDatabase } from "./db.js";
4
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): EffectSQLiteDatabase<TSchema, TRelations>;
@@ -0,0 +1,33 @@
1
+ import * as V1 from "../../_relations.js";
2
+ import { DefaultLogger } from "../../logger.js";
3
+ import { SQLiteSyncDialect } from "../../sqlite-core/dialect.js";
4
+ import { EffectSQLiteDatabase } from "./db.js";
5
+ import { EffectSQLiteSession } from "./session.js";
6
+ function drizzle(config = {}) {
7
+ const dialect = new SQLiteSyncDialect({ casing: config.casing });
8
+ let logger;
9
+ if (config.logger === true) {
10
+ logger = new DefaultLogger();
11
+ } else if (config.logger !== false) {
12
+ logger = config.logger;
13
+ }
14
+ let schema;
15
+ if (config.schema) {
16
+ const tablesConfig = V1.extractTablesRelationalConfig(
17
+ config.schema,
18
+ V1.createTableRelationsHelpers
19
+ );
20
+ schema = {
21
+ fullSchema: config.schema,
22
+ schema: tablesConfig.tables,
23
+ tableNamesMap: tablesConfig.tableNamesMap
24
+ };
25
+ }
26
+ const relations = config.relations ?? {};
27
+ const session = new EffectSQLiteSession(dialect, relations, schema, { logger });
28
+ return new EffectSQLiteDatabase(dialect, session, relations, schema);
29
+ }
30
+ export {
31
+ drizzle
32
+ };
33
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/sqlite/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { EffectSQLiteDatabase } from './db.ts';\nimport { EffectSQLiteSession } from './session.ts';\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(config: DrizzleConfig<TSchema, TRelations> = {}): EffectSQLiteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new EffectSQLiteSession(dialect, relations, schema, { logger });\n\treturn new EffectSQLiteDatabase(dialect, session, relations, schema) as any;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAElC,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;AAE7B,SAAS,QAGd,SAA6C,CAAC,GAA8C;AAC7F,QAAM,UAAU,IAAI,kBAAkB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC/D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,oBAAoB,SAAS,WAAW,QAAQ,EAAE,OAAO,CAAC;AAC9E,SAAO,IAAI,qBAAqB,SAAS,SAAS,WAAW,MAAM;AACpE;","names":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var sqlite_exports = {};
17
+ module.exports = __toCommonJS(sqlite_exports);
18
+ __reExport(sqlite_exports, require("./driver.cjs"), module.exports);
19
+ __reExport(sqlite_exports, require("./session.cjs"), module.exports);
20
+ // Annotate the CommonJS export names for ESM import in node:
21
+ 0 && (module.exports = {
22
+ ...require("./driver.cjs"),
23
+ ...require("./session.cjs")
24
+ });
25
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/sqlite/index.ts"],"sourcesContent":["export * from './driver.ts';\nexport * from './session.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,wBAAd;AACA,2BAAc,yBADd;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./driver.cjs";
2
+ export * from "./session.cjs";
@@ -0,0 +1,2 @@
1
+ export * from "./driver.js";
2
+ export * from "./session.js";
@@ -0,0 +1,3 @@
1
+ export * from "./driver.js";
2
+ export * from "./session.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/sqlite/index.ts"],"sourcesContent":["export * from './driver.ts';\nexport * from './session.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}