drizzle-orm 1.0.0-beta.1-fd8bfcc → 1.0.0-beta.1-17c242e

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 (170) hide show
  1. package/bun-sql/driver.cjs +35 -75
  2. package/bun-sql/driver.cjs.map +1 -1
  3. package/bun-sql/driver.d.cts +69 -10
  4. package/bun-sql/driver.d.ts +69 -10
  5. package/bun-sql/driver.js +35 -64
  6. package/bun-sql/driver.js.map +1 -1
  7. package/bun-sql/migrator.cjs +18 -3
  8. package/bun-sql/migrator.cjs.map +1 -1
  9. package/bun-sql/migrator.d.cts +8 -1
  10. package/bun-sql/migrator.d.ts +8 -1
  11. package/bun-sql/migrator.js +18 -3
  12. package/bun-sql/migrator.js.map +1 -1
  13. package/bun-sql/mysql/driver.cjs +117 -0
  14. package/bun-sql/mysql/driver.cjs.map +1 -0
  15. package/bun-sql/mysql/driver.d.cts +38 -0
  16. package/bun-sql/mysql/driver.d.ts +38 -0
  17. package/bun-sql/mysql/driver.js +82 -0
  18. package/bun-sql/mysql/driver.js.map +1 -0
  19. package/bun-sql/mysql/index.cjs +25 -0
  20. package/bun-sql/mysql/index.cjs.map +1 -0
  21. package/bun-sql/mysql/index.d.cts +2 -0
  22. package/bun-sql/mysql/index.d.ts +2 -0
  23. package/bun-sql/mysql/index.js +3 -0
  24. package/bun-sql/mysql/index.js.map +1 -0
  25. package/bun-sql/mysql/migrator.cjs +33 -0
  26. package/bun-sql/mysql/migrator.cjs.map +1 -0
  27. package/bun-sql/mysql/migrator.d.cts +4 -0
  28. package/bun-sql/mysql/migrator.d.ts +4 -0
  29. package/bun-sql/mysql/migrator.js +9 -0
  30. package/bun-sql/mysql/migrator.js.map +1 -0
  31. package/bun-sql/mysql/session.cjs +244 -0
  32. package/bun-sql/mysql/session.cjs.map +1 -0
  33. package/bun-sql/mysql/session.d.cts +65 -0
  34. package/bun-sql/mysql/session.d.ts +65 -0
  35. package/bun-sql/mysql/session.js +222 -0
  36. package/bun-sql/mysql/session.js.map +1 -0
  37. package/bun-sql/postgres/driver.cjs +110 -0
  38. package/bun-sql/postgres/driver.cjs.map +1 -0
  39. package/bun-sql/postgres/driver.d.cts +30 -0
  40. package/bun-sql/postgres/driver.d.ts +30 -0
  41. package/bun-sql/postgres/driver.js +75 -0
  42. package/bun-sql/postgres/driver.js.map +1 -0
  43. package/bun-sql/postgres/index.cjs +25 -0
  44. package/bun-sql/postgres/index.cjs.map +1 -0
  45. package/bun-sql/postgres/index.d.cts +2 -0
  46. package/bun-sql/postgres/index.d.ts +2 -0
  47. package/bun-sql/postgres/index.js +3 -0
  48. package/bun-sql/postgres/index.js.map +1 -0
  49. package/bun-sql/postgres/migrator.cjs +33 -0
  50. package/bun-sql/postgres/migrator.cjs.map +1 -0
  51. package/bun-sql/postgres/migrator.d.cts +4 -0
  52. package/bun-sql/postgres/migrator.d.ts +4 -0
  53. package/bun-sql/postgres/migrator.js +9 -0
  54. package/bun-sql/postgres/migrator.js.map +1 -0
  55. package/bun-sql/postgres/session.cjs +220 -0
  56. package/bun-sql/postgres/session.cjs.map +1 -0
  57. package/bun-sql/postgres/session.d.cts +65 -0
  58. package/bun-sql/postgres/session.d.ts +65 -0
  59. package/bun-sql/postgres/session.js +194 -0
  60. package/bun-sql/postgres/session.js.map +1 -0
  61. package/bun-sql/session.cjs +3 -200
  62. package/bun-sql/session.cjs.map +1 -1
  63. package/bun-sql/session.d.cts +1 -65
  64. package/bun-sql/session.d.ts +1 -65
  65. package/bun-sql/session.js +1 -193
  66. package/bun-sql/session.js.map +1 -1
  67. package/bun-sql/sqlite/driver.cjs +110 -0
  68. package/bun-sql/sqlite/driver.cjs.map +1 -0
  69. package/bun-sql/sqlite/driver.d.cts +30 -0
  70. package/bun-sql/sqlite/driver.d.ts +30 -0
  71. package/bun-sql/sqlite/driver.js +75 -0
  72. package/bun-sql/sqlite/driver.js.map +1 -0
  73. package/bun-sql/sqlite/index.cjs +25 -0
  74. package/bun-sql/sqlite/index.cjs.map +1 -0
  75. package/bun-sql/sqlite/index.d.cts +2 -0
  76. package/bun-sql/sqlite/index.d.ts +2 -0
  77. package/bun-sql/sqlite/index.js +3 -0
  78. package/bun-sql/sqlite/index.js.map +1 -0
  79. package/bun-sql/sqlite/migrator.cjs +33 -0
  80. package/bun-sql/sqlite/migrator.cjs.map +1 -0
  81. package/bun-sql/sqlite/migrator.d.cts +4 -0
  82. package/bun-sql/sqlite/migrator.d.ts +4 -0
  83. package/bun-sql/sqlite/migrator.js +9 -0
  84. package/bun-sql/sqlite/migrator.js.map +1 -0
  85. package/bun-sql/sqlite/session.cjs +225 -0
  86. package/bun-sql/sqlite/session.cjs.map +1 -0
  87. package/bun-sql/sqlite/session.d.cts +67 -0
  88. package/bun-sql/sqlite/session.d.ts +67 -0
  89. package/bun-sql/sqlite/session.js +199 -0
  90. package/bun-sql/sqlite/session.js.map +1 -0
  91. package/bun-sqlite/driver.cjs +5 -5
  92. package/bun-sqlite/driver.cjs.map +1 -1
  93. package/bun-sqlite/driver.d.cts +5 -5
  94. package/bun-sqlite/driver.d.ts +5 -5
  95. package/bun-sqlite/driver.js +4 -4
  96. package/bun-sqlite/driver.js.map +1 -1
  97. package/bun-sqlite/migrator.cjs.map +1 -1
  98. package/bun-sqlite/migrator.d.cts +2 -2
  99. package/bun-sqlite/migrator.d.ts +2 -2
  100. package/bun-sqlite/migrator.js.map +1 -1
  101. package/cache/core/cache.cjs.map +1 -1
  102. package/cache/core/cache.d.cts +1 -1
  103. package/cache/core/cache.d.ts +1 -1
  104. package/cache/core/cache.js.map +1 -1
  105. package/cache/upstash/cache.cjs +2 -2
  106. package/cache/upstash/cache.cjs.map +1 -1
  107. package/cache/upstash/cache.js +1 -1
  108. package/cache/upstash/cache.js.map +1 -1
  109. package/mysql-core/columns/bigint.cjs +4 -0
  110. package/mysql-core/columns/bigint.cjs.map +1 -1
  111. package/mysql-core/columns/bigint.d.cts +2 -1
  112. package/mysql-core/columns/bigint.d.ts +2 -1
  113. package/mysql-core/columns/bigint.js +4 -0
  114. package/mysql-core/columns/bigint.js.map +1 -1
  115. package/mysql-core/columns/custom.cjs +1 -3
  116. package/mysql-core/columns/custom.cjs.map +1 -1
  117. package/mysql-core/columns/custom.js +1 -3
  118. package/mysql-core/columns/custom.js.map +1 -1
  119. package/mysql-core/columns/date.cjs +4 -0
  120. package/mysql-core/columns/date.cjs.map +1 -1
  121. package/mysql-core/columns/date.d.cts +1 -0
  122. package/mysql-core/columns/date.d.ts +1 -0
  123. package/mysql-core/columns/date.js +4 -0
  124. package/mysql-core/columns/date.js.map +1 -1
  125. package/mysql-core/columns/datetime.cjs +6 -1
  126. package/mysql-core/columns/datetime.cjs.map +1 -1
  127. package/mysql-core/columns/datetime.d.cts +2 -1
  128. package/mysql-core/columns/datetime.d.ts +2 -1
  129. package/mysql-core/columns/datetime.js +6 -1
  130. package/mysql-core/columns/datetime.js.map +1 -1
  131. package/mysql-core/columns/time.cjs +4 -0
  132. package/mysql-core/columns/time.cjs.map +1 -1
  133. package/mysql-core/columns/time.d.cts +1 -0
  134. package/mysql-core/columns/time.d.ts +1 -0
  135. package/mysql-core/columns/time.js +4 -0
  136. package/mysql-core/columns/time.js.map +1 -1
  137. package/mysql-core/columns/timestamp.cjs +8 -1
  138. package/mysql-core/columns/timestamp.cjs.map +1 -1
  139. package/mysql-core/columns/timestamp.d.cts +2 -1
  140. package/mysql-core/columns/timestamp.d.ts +2 -1
  141. package/mysql-core/columns/timestamp.js +8 -1
  142. package/mysql-core/columns/timestamp.js.map +1 -1
  143. package/mysql-core/columns/varchar.cjs.map +1 -1
  144. package/mysql-core/columns/varchar.js.map +1 -1
  145. package/mysql-core/columns/year.cjs +4 -0
  146. package/mysql-core/columns/year.cjs.map +1 -1
  147. package/mysql-core/columns/year.d.cts +1 -0
  148. package/mysql-core/columns/year.d.ts +1 -0
  149. package/mysql-core/columns/year.js +4 -0
  150. package/mysql-core/columns/year.js.map +1 -1
  151. package/mysql-core/utils.cjs +2 -2
  152. package/mysql-core/utils.cjs.map +1 -1
  153. package/mysql-core/utils.d.cts +2 -2
  154. package/mysql-core/utils.d.ts +2 -2
  155. package/mysql-core/utils.js +1 -1
  156. package/mysql-core/utils.js.map +1 -1
  157. package/package.json +149 -5
  158. package/relations.cjs +4 -1
  159. package/relations.cjs.map +1 -1
  160. package/relations.js +4 -1
  161. package/relations.js.map +1 -1
  162. package/session.cjs.map +1 -1
  163. package/session.d.cts +1 -1
  164. package/session.d.ts +1 -1
  165. package/sqlite-core/columns/blob.cjs.map +1 -1
  166. package/sqlite-core/columns/blob.js.map +1 -1
  167. package/version.cjs +1 -1
  168. package/version.d.cts +1 -1
  169. package/version.d.ts +1 -1
  170. package/version.js +1 -1
@@ -1,65 +1 @@
1
- import type { SavepointSQL, SQL, TransactionSQL } from 'bun';
2
- import type * as V1 from "../_relations.cjs";
3
- import { type Cache } from "../cache/core/index.cjs";
4
- import type { WithCacheConfig } from "../cache/core/types.cjs";
5
- import { entityKind } from "../entity.cjs";
6
- import type { Logger } from "../logger.cjs";
7
- import type { PgDialect } from "../pg-core/dialect.cjs";
8
- import { PgTransaction } from "../pg-core/index.cjs";
9
- import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.cjs";
10
- import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.cjs";
11
- import { PgPreparedQuery, PgSession } from "../pg-core/session.cjs";
12
- import type { AnyRelations } from "../relations.cjs";
13
- import { type Query } from "../sql/sql.cjs";
14
- import { type Assume } from "../utils.cjs";
15
- export declare class BunSQLPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
16
- private client;
17
- private queryString;
18
- private params;
19
- private logger;
20
- private fields;
21
- private _isResponseInArrayMode;
22
- private customResultMapper?;
23
- private isRqbV2Query?;
24
- static readonly [entityKind]: string;
25
- constructor(client: SQL, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
26
- type: 'select' | 'update' | 'delete' | 'insert';
27
- tables: string[];
28
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
29
- execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
30
- executeRqbV2(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
31
- all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
32
- }
33
- export interface BunSQLSessionOptions {
34
- logger?: Logger;
35
- cache?: Cache;
36
- }
37
- export declare class BunSQLSession<TSQL extends SQL, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgSession<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {
38
- client: TSQL;
39
- private relations;
40
- private schema;
41
- static readonly [entityKind]: string;
42
- logger: Logger;
43
- private cache;
44
- constructor(client: TSQL, dialect: PgDialect, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined,
45
- /** @internal */
46
- options?: BunSQLSessionOptions);
47
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
48
- type: 'select' | 'update' | 'delete' | 'insert';
49
- tables: string[];
50
- }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
51
- prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper?: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
52
- query(query: string, params: unknown[]): Promise<any>;
53
- queryObjects(query: string, params: unknown[]): Promise<any>;
54
- transaction<T>(transaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
55
- }
56
- export declare class BunSQLTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {
57
- static readonly [entityKind]: string;
58
- constructor(dialect: PgDialect,
59
- /** @internal */
60
- session: BunSQLSession<TransactionSQL | SavepointSQL, TFullSchema, TRelations, TSchema>, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
61
- transaction<T>(transaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
62
- }
63
- export interface BunSQLQueryResultHKT extends PgQueryResultHKT {
64
- type: Assume<this['row'], Record<string, any>[]>;
65
- }
1
+ export * from "./postgres/session.cjs";
@@ -1,65 +1 @@
1
- import type { SavepointSQL, SQL, TransactionSQL } from 'bun';
2
- import type * as V1 from "../_relations.js";
3
- import { type Cache } from "../cache/core/index.js";
4
- import type { WithCacheConfig } from "../cache/core/types.js";
5
- import { entityKind } from "../entity.js";
6
- import type { Logger } from "../logger.js";
7
- import type { PgDialect } from "../pg-core/dialect.js";
8
- import { PgTransaction } from "../pg-core/index.js";
9
- import type { SelectedFieldsOrdered } from "../pg-core/query-builders/select.types.js";
10
- import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../pg-core/session.js";
11
- import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
12
- import type { AnyRelations } from "../relations.js";
13
- import { type Query } from "../sql/sql.js";
14
- import { type Assume } from "../utils.js";
15
- export declare class BunSQLPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false> extends PgPreparedQuery<T> {
16
- private client;
17
- private queryString;
18
- private params;
19
- private logger;
20
- private fields;
21
- private _isResponseInArrayMode;
22
- private customResultMapper?;
23
- private isRqbV2Query?;
24
- static readonly [entityKind]: string;
25
- constructor(client: SQL, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
26
- type: 'select' | 'update' | 'delete' | 'insert';
27
- tables: string[];
28
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, _isResponseInArrayMode: boolean, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, isRqbV2Query?: TIsRqbV2 | undefined);
29
- execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
30
- executeRqbV2(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
31
- all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
32
- }
33
- export interface BunSQLSessionOptions {
34
- logger?: Logger;
35
- cache?: Cache;
36
- }
37
- export declare class BunSQLSession<TSQL extends SQL, TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgSession<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {
38
- client: TSQL;
39
- private relations;
40
- private schema;
41
- static readonly [entityKind]: string;
42
- logger: Logger;
43
- private cache;
44
- constructor(client: TSQL, dialect: PgDialect, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined,
45
- /** @internal */
46
- options?: BunSQLSessionOptions);
47
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][]) => T['execute'], queryMetadata?: {
48
- type: 'select' | 'update' | 'delete' | 'insert';
49
- tables: string[];
50
- }, cacheConfig?: WithCacheConfig): PgPreparedQuery<T>;
51
- prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper?: (rows: Record<string, unknown>[]) => T['execute']): PgPreparedQuery<T>;
52
- query(query: string, params: unknown[]): Promise<any>;
53
- queryObjects(query: string, params: unknown[]): Promise<any>;
54
- transaction<T>(transaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
55
- }
56
- export declare class BunSQLTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgTransaction<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {
57
- static readonly [entityKind]: string;
58
- constructor(dialect: PgDialect,
59
- /** @internal */
60
- session: BunSQLSession<TransactionSQL | SavepointSQL, TFullSchema, TRelations, TSchema>, relations: TRelations, schema: V1.RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
61
- transaction<T>(transaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
62
- }
63
- export interface BunSQLQueryResultHKT extends PgQueryResultHKT {
64
- type: Assume<this['row'], Record<string, any>[]>;
65
- }
1
+ export * from "./postgres/session.js";
@@ -1,194 +1,2 @@
1
- import { NoopCache } from "../cache/core/index.js";
2
- import { entityKind } from "../entity.js";
3
- import { NoopLogger } from "../logger.js";
4
- import { PgTransaction } from "../pg-core/index.js";
5
- import { PgPreparedQuery, PgSession } from "../pg-core/session.js";
6
- import { fillPlaceholders } from "../sql/sql.js";
7
- import { tracer } from "../tracing.js";
8
- import { mapResultRow } from "../utils.js";
9
- class BunSQLPreparedQuery extends PgPreparedQuery {
10
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
11
- super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
12
- this.client = client;
13
- this.queryString = queryString;
14
- this.params = params;
15
- this.logger = logger;
16
- this.fields = fields;
17
- this._isResponseInArrayMode = _isResponseInArrayMode;
18
- this.customResultMapper = customResultMapper;
19
- this.isRqbV2Query = isRqbV2Query;
20
- }
21
- static [entityKind] = "BunSQLPreparedQuery";
22
- async execute(placeholderValues = {}) {
23
- if (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);
24
- return tracer.startActiveSpan("drizzle.execute", async (span) => {
25
- const params = fillPlaceholders(this.params, placeholderValues);
26
- span?.setAttributes({
27
- "drizzle.query.text": this.queryString,
28
- "drizzle.query.params": JSON.stringify(params)
29
- });
30
- this.logger.logQuery(this.queryString, params);
31
- const { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;
32
- if (!fields && !customResultMapper) {
33
- return tracer.startActiveSpan("drizzle.driver.execute", async () => {
34
- return await this.queryWithCache(query, params, async () => {
35
- return await client.unsafe(query, params);
36
- });
37
- });
38
- }
39
- const rows = await tracer.startActiveSpan("drizzle.driver.execute", async () => {
40
- span?.setAttributes({
41
- "drizzle.query.text": query,
42
- "drizzle.query.params": JSON.stringify(params)
43
- });
44
- return await this.queryWithCache(query, params, async () => {
45
- return client.unsafe(query, params).values();
46
- });
47
- });
48
- return tracer.startActiveSpan("drizzle.mapResponse", () => {
49
- return customResultMapper ? customResultMapper(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
50
- });
51
- });
52
- }
53
- async executeRqbV2(placeholderValues = {}) {
54
- return tracer.startActiveSpan("drizzle.execute", async (span) => {
55
- const params = fillPlaceholders(this.params, placeholderValues);
56
- span?.setAttributes({
57
- "drizzle.query.text": this.queryString,
58
- "drizzle.query.params": JSON.stringify(params)
59
- });
60
- this.logger.logQuery(this.queryString, params);
61
- const { queryString: query, client, customResultMapper } = this;
62
- const rows = await tracer.startActiveSpan("drizzle.driver.execute", () => {
63
- span?.setAttributes({
64
- "drizzle.query.text": query,
65
- "drizzle.query.params": JSON.stringify(params)
66
- });
67
- return client.unsafe(query, params);
68
- });
69
- return tracer.startActiveSpan("drizzle.mapResponse", () => {
70
- return customResultMapper(rows);
71
- });
72
- });
73
- }
74
- all(placeholderValues = {}) {
75
- return tracer.startActiveSpan("drizzle.execute", async (span) => {
76
- const params = fillPlaceholders(this.params, placeholderValues);
77
- span?.setAttributes({
78
- "drizzle.query.text": this.queryString,
79
- "drizzle.query.params": JSON.stringify(params)
80
- });
81
- this.logger.logQuery(this.queryString, params);
82
- return tracer.startActiveSpan("drizzle.driver.execute", async () => {
83
- span?.setAttributes({
84
- "drizzle.query.text": this.queryString,
85
- "drizzle.query.params": JSON.stringify(params)
86
- });
87
- return await this.queryWithCache(this.queryString, params, async () => {
88
- return await this.client.unsafe(this.queryString, params);
89
- });
90
- });
91
- });
92
- }
93
- /** @internal */
94
- isResponseInArrayMode() {
95
- return this._isResponseInArrayMode;
96
- }
97
- }
98
- class BunSQLSession extends PgSession {
99
- constructor(client, dialect, relations, schema, options = {}) {
100
- super(dialect);
101
- this.client = client;
102
- this.relations = relations;
103
- this.schema = schema;
104
- this.options = options;
105
- this.logger = options.logger ?? new NoopLogger();
106
- this.cache = options.cache ?? new NoopCache();
107
- }
108
- static [entityKind] = "BunSQLSession";
109
- logger;
110
- cache;
111
- prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
112
- return new BunSQLPreparedQuery(
113
- this.client,
114
- query.sql,
115
- query.params,
116
- this.logger,
117
- this.cache,
118
- queryMetadata,
119
- cacheConfig,
120
- fields,
121
- isResponseInArrayMode,
122
- customResultMapper
123
- );
124
- }
125
- prepareRelationalQuery(query, fields, name, customResultMapper) {
126
- return new BunSQLPreparedQuery(
127
- this.client,
128
- query.sql,
129
- query.params,
130
- this.logger,
131
- this.cache,
132
- void 0,
133
- void 0,
134
- fields,
135
- true,
136
- customResultMapper,
137
- true
138
- );
139
- }
140
- query(query, params) {
141
- this.logger.logQuery(query, params);
142
- return this.client.unsafe(query, params).values();
143
- }
144
- queryObjects(query, params) {
145
- return this.client.unsafe(query, params);
146
- }
147
- transaction(transaction, config) {
148
- return this.client.begin(async (client) => {
149
- const session = new BunSQLSession(
150
- client,
151
- this.dialect,
152
- this.relations,
153
- this.schema,
154
- this.options
155
- );
156
- const tx = new BunSQLTransaction(this.dialect, session, this.relations, this.schema);
157
- if (config) {
158
- await tx.setTransaction(config);
159
- }
160
- return transaction(tx);
161
- });
162
- }
163
- }
164
- class BunSQLTransaction extends PgTransaction {
165
- constructor(dialect, session, relations, schema, nestedIndex = 0) {
166
- super(dialect, session, relations, schema, nestedIndex);
167
- this.session = session;
168
- }
169
- static [entityKind] = "BunSQLTransaction";
170
- transaction(transaction) {
171
- return this.session.client.savepoint((client) => {
172
- const session = new BunSQLSession(
173
- client,
174
- this.dialect,
175
- this.relations,
176
- this.schema,
177
- this.session.options
178
- );
179
- const tx = new BunSQLTransaction(
180
- this.dialect,
181
- session,
182
- this.relations,
183
- this.schema
184
- );
185
- return transaction(tx);
186
- });
187
- }
188
- }
189
- export {
190
- BunSQLPreparedQuery,
191
- BunSQLSession,
192
- BunSQLTransaction
193
- };
1
+ export * from "./postgres/session.js";
194
2
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bun-sql/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { SavepointSQL, SQL, TransactionSQL } from 'bun';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport { PgTransaction } from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport { PgPreparedQuery, PgSession } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class BunSQLPreparedQuery<T extends PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PgPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'BunSQLPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: SQL,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\t\treturn await client.unsafe(query, params as any[]);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst rows: any[] = await tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn await this.queryWithCache(query, params, async () => {\n\t\t\t\t\treturn client.unsafe(query, params as any[]).values();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn customResultMapper\n\t\t\t\t\t? customResultMapper(rows)\n\t\t\t\t\t: rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\t\tconst { queryString: query, client, customResultMapper } = this;\n\n\t\t\tconst rows = await tracer.startActiveSpan('drizzle.driver.execute', () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': query,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\n\t\t\t\treturn client.unsafe(query, params as any[]);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async (span) => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t});\n\t\t\tthis.logger.logQuery(this.queryString, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async () => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.text': this.queryString,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn await this.queryWithCache(this.queryString, params, async () => {\n\t\t\t\t\treturn await this.client.unsafe(this.queryString, params as any[]);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface BunSQLSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n}\n\nexport class BunSQLSession<\n\tTSQL extends SQL,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunSQLSession';\n\n\tlogger: Logger;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tpublic client: TSQL,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\t/** @internal */\n\t\treadonly options: BunSQLSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PgPreparedQuery<T> {\n\t\treturn new BunSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: Record<string, unknown>[]) => T['execute'],\n\t): PgPreparedQuery<T> {\n\t\treturn new BunSQLPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\ttrue,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\tquery(query: string, params: unknown[]): Promise<any> {\n\t\tthis.logger.logQuery(query, params);\n\t\treturn this.client.unsafe(query, params as any[]).values();\n\t}\n\n\tqueryObjects(\n\t\tquery: string,\n\t\tparams: unknown[],\n\t): Promise<any> {\n\t\treturn this.client.unsafe(query, params as any[]);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T> {\n\t\treturn this.client.begin(async (client) => {\n\t\t\tconst session = new BunSQLSession<TransactionSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new BunSQLTransaction(this.dialect, session, this.relations, this.schema);\n\t\t\tif (config) {\n\t\t\t\tawait tx.setTransaction(config);\n\t\t\t}\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class BunSQLTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<BunSQLQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunSQLTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\t/** @internal */\n\t\toverride readonly session: BunSQLSession<\n\t\t\tTransactionSQL | SavepointSQL,\n\t\t\tTFullSchema,\n\t\t\tTRelations,\n\t\t\tTSchema\n\t\t>,\n\t\trelations: TRelations,\n\t\tschema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, relations, schema, nestedIndex);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: BunSQLTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn (this.session.client as TransactionSQL).savepoint((client) => {\n\t\t\tconst session = new BunSQLSession<SavepointSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.session.options,\n\t\t\t);\n\t\t\tconst tx = new BunSQLTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface BunSQLQueryResultHKT extends PgQueryResultHKT {\n\ttype: Assume<this['row'], Record<string, any>[]>;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/bun-sql/session.ts"],"sourcesContent":["export * from './postgres/session.ts';\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,110 @@
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
+ BunSQLiteDatabase: () => BunSQLiteDatabase,
32
+ drizzle: () => drizzle
33
+ });
34
+ module.exports = __toCommonJS(driver_exports);
35
+ var import_bun = require("bun");
36
+ var V1 = __toESM(require("../../_relations.cjs"), 1);
37
+ var import_entity = require("../../entity.cjs");
38
+ var import_logger = require("../../logger.cjs");
39
+ var import_db = require("../../sqlite-core/db.cjs");
40
+ var import_dialect = require("../../sqlite-core/dialect.cjs");
41
+ var import_utils = require("../../utils.cjs");
42
+ var import_session = require("./session.cjs");
43
+ class BunSQLiteDatabase extends import_db.BaseSQLiteDatabase {
44
+ static [import_entity.entityKind] = "BunSQLiteDatabase";
45
+ }
46
+ function construct(client, config = {}) {
47
+ const dialect = new import_dialect.SQLiteAsyncDialect({ casing: config.casing });
48
+ let logger;
49
+ if (config.logger === true) {
50
+ logger = new import_logger.DefaultLogger();
51
+ } else if (config.logger !== false) {
52
+ logger = config.logger;
53
+ }
54
+ let schema;
55
+ if (config.schema) {
56
+ const tablesConfig = V1.extractTablesRelationalConfig(
57
+ config.schema,
58
+ V1.createTableRelationsHelpers
59
+ );
60
+ schema = {
61
+ fullSchema: config.schema,
62
+ schema: tablesConfig.tables,
63
+ tableNamesMap: tablesConfig.tableNamesMap
64
+ };
65
+ }
66
+ const relations = config.relations ?? {};
67
+ const session = new import_session.BunSQLiteSession(client, dialect, relations, schema, { logger, cache: config.cache });
68
+ const db = new BunSQLiteDatabase("async", dialect, session, relations, schema);
69
+ db.$client = client;
70
+ db.$cache = config.cache;
71
+ if (db.$cache) {
72
+ db.$cache["invalidate"] = config.cache?.onMutate;
73
+ }
74
+ return db;
75
+ }
76
+ function drizzle(...params) {
77
+ if (typeof params[0] === "string") {
78
+ const instance = new import_bun.SQL(params[0]);
79
+ return construct(instance, params[1]);
80
+ }
81
+ if ((0, import_utils.isConfig)(params[0])) {
82
+ const { connection, client, ...drizzleConfig } = params[0];
83
+ if (client) return construct(client, drizzleConfig);
84
+ if (typeof connection === "object" && connection.url !== void 0) {
85
+ const { url, ...config } = connection;
86
+ const instance2 = new import_bun.SQL({ url, ...config });
87
+ return construct(instance2, drizzleConfig);
88
+ }
89
+ const instance = new import_bun.SQL(connection);
90
+ return construct(instance, drizzleConfig);
91
+ }
92
+ return construct(params[0], params[1]);
93
+ }
94
+ ((drizzle2) => {
95
+ function mock(config) {
96
+ return construct({
97
+ options: {
98
+ parsers: {},
99
+ serializers: {}
100
+ }
101
+ }, config);
102
+ }
103
+ drizzle2.mock = mock;
104
+ })(drizzle || (drizzle = {}));
105
+ // Annotate the CommonJS export names for ESM import in node:
106
+ 0 && (module.exports = {
107
+ BunSQLiteDatabase,
108
+ drizzle
109
+ });
110
+ //# sourceMappingURL=driver.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/bun-sql/sqlite/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport { SQL } from 'bun';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { BunSQLiteRunResult } from './session.ts';\nimport { BunSQLiteSession } from './session.ts';\n\nexport class BunSQLiteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', BunSQLiteRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'BunSQLiteDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQL,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): BunSQLiteDatabase<TSchema, TRelations> & {\n\t$client: SQL;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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 BunSQLiteSession(client, dialect, relations, schema, { logger, cache: config.cache });\n\tconst db = new BunSQLiteDatabase('async', dialect, session, relations, schema as any) as BunSQLiteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLiteDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new SQL(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & SQL.Options;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, TRelations>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = new SQL({ url, ...config });\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new SQL(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): BunSQLiteDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAAoB;AACpB,SAAoB;AACpB,oBAA2B;AAC3B,oBAA8B;AAE9B,gBAAmC;AACnC,qBAAmC;AACnC,mBAA6C;AAE7C,qBAAiC;AAE1B,MAAM,0BAGH,6BAAqE;AAAA,EAC9E,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,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,gCAAiB,QAAQ,SAAS,WAAW,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AACxG,QAAM,KAAK,IAAI,kBAAkB,SAAS,SAAS,SAAS,WAAW,MAAa;AAIpF,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,eAAI,OAAO,CAAC,CAAC;AAElC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,IAAI,eAAI,EAAE,KAAK,GAAG,OAAO,CAAC;AAC3C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,eAAI,UAAU;AACnC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
@@ -0,0 +1,30 @@
1
+ import { SQL } from 'bun';
2
+ import { entityKind } from "../../entity.cjs";
3
+ import type { AnyRelations, EmptyRelations } from "../../relations.cjs";
4
+ import { BaseSQLiteDatabase } from "../../sqlite-core/db.cjs";
5
+ import { type DrizzleConfig } from "../../utils.cjs";
6
+ import type { BunSQLiteRunResult } from "./session.cjs";
7
+ export declare class BunSQLiteDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', BunSQLiteRunResult, TSchema, TRelations> {
8
+ static readonly [entityKind]: string;
9
+ }
10
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends SQL = SQL>(...params: [
11
+ TClient | string
12
+ ] | [
13
+ TClient | string,
14
+ DrizzleConfig<TSchema, TRelations>
15
+ ] | [
16
+ (DrizzleConfig<TSchema, TRelations> & ({
17
+ connection: string | ({
18
+ url?: string;
19
+ } & SQL.Options);
20
+ } | {
21
+ client: TClient;
22
+ }))
23
+ ]): BunSQLiteDatabase<TSchema, TRelations> & {
24
+ $client: TClient;
25
+ };
26
+ export declare namespace drizzle {
27
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLiteDatabase<TSchema, TRelations> & {
28
+ $client: '$client is not available on drizzle.mock()';
29
+ };
30
+ }
@@ -0,0 +1,30 @@
1
+ import { SQL } from 'bun';
2
+ import { entityKind } from "../../entity.js";
3
+ import type { AnyRelations, EmptyRelations } from "../../relations.js";
4
+ import { BaseSQLiteDatabase } from "../../sqlite-core/db.js";
5
+ import { type DrizzleConfig } from "../../utils.js";
6
+ import type { BunSQLiteRunResult } from "./session.js";
7
+ export declare class BunSQLiteDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends BaseSQLiteDatabase<'async', BunSQLiteRunResult, TSchema, TRelations> {
8
+ static readonly [entityKind]: string;
9
+ }
10
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends SQL = SQL>(...params: [
11
+ TClient | string
12
+ ] | [
13
+ TClient | string,
14
+ DrizzleConfig<TSchema, TRelations>
15
+ ] | [
16
+ (DrizzleConfig<TSchema, TRelations> & ({
17
+ connection: string | ({
18
+ url?: string;
19
+ } & SQL.Options);
20
+ } | {
21
+ client: TClient;
22
+ }))
23
+ ]): BunSQLiteDatabase<TSchema, TRelations> & {
24
+ $client: TClient;
25
+ };
26
+ export declare namespace drizzle {
27
+ function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLiteDatabase<TSchema, TRelations> & {
28
+ $client: '$client is not available on drizzle.mock()';
29
+ };
30
+ }
@@ -0,0 +1,75 @@
1
+ import { SQL } from "bun";
2
+ import * as V1 from "../../_relations.js";
3
+ import { entityKind } from "../../entity.js";
4
+ import { DefaultLogger } from "../../logger.js";
5
+ import { BaseSQLiteDatabase } from "../../sqlite-core/db.js";
6
+ import { SQLiteAsyncDialect } from "../../sqlite-core/dialect.js";
7
+ import { isConfig } from "../../utils.js";
8
+ import { BunSQLiteSession } from "./session.js";
9
+ class BunSQLiteDatabase extends BaseSQLiteDatabase {
10
+ static [entityKind] = "BunSQLiteDatabase";
11
+ }
12
+ function construct(client, config = {}) {
13
+ const dialect = new SQLiteAsyncDialect({ casing: config.casing });
14
+ let logger;
15
+ if (config.logger === true) {
16
+ logger = new DefaultLogger();
17
+ } else if (config.logger !== false) {
18
+ logger = config.logger;
19
+ }
20
+ let schema;
21
+ if (config.schema) {
22
+ const tablesConfig = V1.extractTablesRelationalConfig(
23
+ config.schema,
24
+ V1.createTableRelationsHelpers
25
+ );
26
+ schema = {
27
+ fullSchema: config.schema,
28
+ schema: tablesConfig.tables,
29
+ tableNamesMap: tablesConfig.tableNamesMap
30
+ };
31
+ }
32
+ const relations = config.relations ?? {};
33
+ const session = new BunSQLiteSession(client, dialect, relations, schema, { logger, cache: config.cache });
34
+ const db = new BunSQLiteDatabase("async", dialect, session, relations, schema);
35
+ db.$client = client;
36
+ db.$cache = config.cache;
37
+ if (db.$cache) {
38
+ db.$cache["invalidate"] = config.cache?.onMutate;
39
+ }
40
+ return db;
41
+ }
42
+ function drizzle(...params) {
43
+ if (typeof params[0] === "string") {
44
+ const instance = new SQL(params[0]);
45
+ return construct(instance, params[1]);
46
+ }
47
+ if (isConfig(params[0])) {
48
+ const { connection, client, ...drizzleConfig } = params[0];
49
+ if (client) return construct(client, drizzleConfig);
50
+ if (typeof connection === "object" && connection.url !== void 0) {
51
+ const { url, ...config } = connection;
52
+ const instance2 = new SQL({ url, ...config });
53
+ return construct(instance2, drizzleConfig);
54
+ }
55
+ const instance = new SQL(connection);
56
+ return construct(instance, drizzleConfig);
57
+ }
58
+ return construct(params[0], params[1]);
59
+ }
60
+ ((drizzle2) => {
61
+ function mock(config) {
62
+ return construct({
63
+ options: {
64
+ parsers: {},
65
+ serializers: {}
66
+ }
67
+ }, config);
68
+ }
69
+ drizzle2.mock = mock;
70
+ })(drizzle || (drizzle = {}));
71
+ export {
72
+ BunSQLiteDatabase,
73
+ drizzle
74
+ };
75
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/bun-sql/sqlite/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport { SQL } from 'bun';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { BunSQLiteRunResult } from './session.ts';\nimport { BunSQLiteSession } from './session.ts';\n\nexport class BunSQLiteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', BunSQLiteRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'BunSQLiteDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQL,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): BunSQLiteDatabase<TSchema, TRelations> & {\n\t$client: SQL;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ 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 BunSQLiteSession(client, dialect, relations, schema, { logger, cache: config.cache });\n\tconst db = new BunSQLiteDatabase('async', dialect, session, relations, schema as any) as BunSQLiteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLiteDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new SQL(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & SQL.Options;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, TRelations>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = new SQL({ url, ...config });\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new SQL(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): BunSQLiteDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":"AAEA,SAAS,WAAW;AACpB,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAE9B,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AACnC,SAA6B,gBAAgB;AAE7C,SAAS,wBAAwB;AAE1B,MAAM,0BAGH,mBAAqE;AAAA,EAC9E,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,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,iBAAiB,QAAQ,SAAS,WAAW,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AACxG,QAAM,KAAK,IAAI,kBAAkB,SAAS,SAAS,SAAS,WAAW,MAAa;AAIpF,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,IAAI,OAAO,CAAC,CAAC;AAElC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,IAAI,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;AAC3C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,IAAI,UAAU;AACnC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}