drizzle-orm 0.29.3 → 0.29.4

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 (180) hide show
  1. package/README.md +29 -141
  2. package/alias.cjs.map +1 -1
  3. package/alias.js.map +1 -1
  4. package/aws-data-api/pg/session.cjs +2 -2
  5. package/aws-data-api/pg/session.cjs.map +1 -1
  6. package/aws-data-api/pg/session.d.cts +3 -3
  7. package/aws-data-api/pg/session.d.ts +3 -3
  8. package/aws-data-api/pg/session.js +4 -4
  9. package/aws-data-api/pg/session.js.map +1 -1
  10. package/d1/session.cjs +3 -3
  11. package/d1/session.cjs.map +1 -1
  12. package/d1/session.d.cts +1 -1
  13. package/d1/session.d.ts +1 -1
  14. package/d1/session.js +4 -4
  15. package/d1/session.js.map +1 -1
  16. package/libsql/session.cjs +1 -1
  17. package/libsql/session.cjs.map +1 -1
  18. package/libsql/session.js +1 -1
  19. package/libsql/session.js.map +1 -1
  20. package/neon-http/driver.cjs +13 -1
  21. package/neon-http/driver.cjs.map +1 -1
  22. package/neon-http/driver.d.cts +8 -3
  23. package/neon-http/driver.d.ts +8 -3
  24. package/neon-http/driver.js +13 -5
  25. package/neon-http/driver.js.map +1 -1
  26. package/neon-http/session.cjs +46 -28
  27. package/neon-http/session.cjs.map +1 -1
  28. package/neon-http/session.d.cts +16 -12
  29. package/neon-http/session.d.ts +16 -12
  30. package/neon-http/session.js +47 -29
  31. package/neon-http/session.js.map +1 -1
  32. package/neon-serverless/session.cjs +12 -12
  33. package/neon-serverless/session.cjs.map +1 -1
  34. package/neon-serverless/session.d.cts +5 -5
  35. package/neon-serverless/session.d.ts +5 -5
  36. package/neon-serverless/session.js +13 -13
  37. package/neon-serverless/session.js.map +1 -1
  38. package/node-postgres/session.cjs +12 -12
  39. package/node-postgres/session.cjs.map +1 -1
  40. package/node-postgres/session.d.cts +5 -5
  41. package/node-postgres/session.d.ts +5 -5
  42. package/node-postgres/session.js +13 -13
  43. package/node-postgres/session.js.map +1 -1
  44. package/package.json +14 -2
  45. package/pg-core/db.cjs +14 -1
  46. package/pg-core/db.cjs.map +1 -1
  47. package/pg-core/db.js +14 -1
  48. package/pg-core/db.js.map +1 -1
  49. package/pg-core/query-builders/delete.cjs +11 -10
  50. package/pg-core/query-builders/delete.cjs.map +1 -1
  51. package/pg-core/query-builders/delete.d.cts +8 -6
  52. package/pg-core/query-builders/delete.d.ts +8 -6
  53. package/pg-core/query-builders/delete.js +11 -10
  54. package/pg-core/query-builders/delete.js.map +1 -1
  55. package/pg-core/query-builders/insert.cjs +15 -14
  56. package/pg-core/query-builders/insert.cjs.map +1 -1
  57. package/pg-core/query-builders/insert.d.cts +8 -6
  58. package/pg-core/query-builders/insert.d.ts +8 -6
  59. package/pg-core/query-builders/insert.js +15 -14
  60. package/pg-core/query-builders/insert.js.map +1 -1
  61. package/pg-core/query-builders/query.cjs +1 -0
  62. package/pg-core/query-builders/query.cjs.map +1 -1
  63. package/pg-core/query-builders/query.d.cts +9 -6
  64. package/pg-core/query-builders/query.d.ts +9 -6
  65. package/pg-core/query-builders/query.js +1 -0
  66. package/pg-core/query-builders/query.js.map +1 -1
  67. package/pg-core/query-builders/raw.cjs +53 -0
  68. package/pg-core/query-builders/raw.cjs.map +1 -0
  69. package/pg-core/query-builders/raw.d.cts +22 -0
  70. package/pg-core/query-builders/raw.d.ts +22 -0
  71. package/pg-core/query-builders/raw.js +29 -0
  72. package/pg-core/query-builders/raw.js.map +1 -0
  73. package/pg-core/query-builders/refresh-materialized-view.cjs +1 -0
  74. package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
  75. package/pg-core/query-builders/refresh-materialized-view.d.cts +10 -6
  76. package/pg-core/query-builders/refresh-materialized-view.d.ts +10 -6
  77. package/pg-core/query-builders/refresh-materialized-view.js +1 -0
  78. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  79. package/pg-core/query-builders/select.cjs +86 -85
  80. package/pg-core/query-builders/select.cjs.map +1 -1
  81. package/pg-core/query-builders/select.d.cts +5 -4
  82. package/pg-core/query-builders/select.d.ts +5 -4
  83. package/pg-core/query-builders/select.js +86 -85
  84. package/pg-core/query-builders/select.js.map +1 -1
  85. package/pg-core/query-builders/select.types.cjs.map +1 -1
  86. package/pg-core/query-builders/select.types.d.cts +2 -2
  87. package/pg-core/query-builders/select.types.d.ts +2 -2
  88. package/pg-core/query-builders/update.cjs +9 -8
  89. package/pg-core/query-builders/update.cjs.map +1 -1
  90. package/pg-core/query-builders/update.d.cts +7 -5
  91. package/pg-core/query-builders/update.d.ts +7 -5
  92. package/pg-core/query-builders/update.js +9 -8
  93. package/pg-core/query-builders/update.js.map +1 -1
  94. package/pg-core/session.cjs +14 -5
  95. package/pg-core/session.cjs.map +1 -1
  96. package/pg-core/session.d.cts +7 -2
  97. package/pg-core/session.d.ts +7 -2
  98. package/pg-core/session.js +12 -3
  99. package/pg-core/session.js.map +1 -1
  100. package/pg-proxy/session.cjs +2 -2
  101. package/pg-proxy/session.cjs.map +1 -1
  102. package/pg-proxy/session.d.cts +1 -1
  103. package/pg-proxy/session.d.ts +1 -1
  104. package/pg-proxy/session.js +2 -2
  105. package/pg-proxy/session.js.map +1 -1
  106. package/planetscale-serverless/driver.cjs +18 -0
  107. package/planetscale-serverless/driver.cjs.map +1 -1
  108. package/planetscale-serverless/driver.d.cts +2 -1
  109. package/planetscale-serverless/driver.d.ts +2 -1
  110. package/planetscale-serverless/driver.js +18 -0
  111. package/planetscale-serverless/driver.js.map +1 -1
  112. package/planetscale-serverless/session.cjs.map +1 -1
  113. package/planetscale-serverless/session.d.cts +3 -4
  114. package/planetscale-serverless/session.d.ts +3 -4
  115. package/planetscale-serverless/session.js.map +1 -1
  116. package/postgres-js/session.cjs +11 -11
  117. package/postgres-js/session.cjs.map +1 -1
  118. package/postgres-js/session.d.cts +5 -5
  119. package/postgres-js/session.d.ts +5 -5
  120. package/postgres-js/session.js +12 -12
  121. package/postgres-js/session.js.map +1 -1
  122. package/runnable-query.cjs.map +1 -1
  123. package/runnable-query.d.cts +0 -2
  124. package/runnable-query.d.ts +0 -2
  125. package/sql/sql.cjs +0 -8
  126. package/sql/sql.cjs.map +1 -1
  127. package/sql/sql.d.cts +1 -1
  128. package/sql/sql.d.ts +1 -1
  129. package/sql/sql.js +0 -8
  130. package/sql/sql.js.map +1 -1
  131. package/sqlite-core/db.cjs +53 -43
  132. package/sqlite-core/db.cjs.map +1 -1
  133. package/sqlite-core/db.d.cts +3 -0
  134. package/sqlite-core/db.d.ts +3 -0
  135. package/sqlite-core/db.js +53 -43
  136. package/sqlite-core/db.js.map +1 -1
  137. package/sqlite-core/query-builders/delete.cjs +20 -16
  138. package/sqlite-core/query-builders/delete.cjs.map +1 -1
  139. package/sqlite-core/query-builders/delete.d.cts +3 -3
  140. package/sqlite-core/query-builders/delete.d.ts +3 -3
  141. package/sqlite-core/query-builders/delete.js +20 -16
  142. package/sqlite-core/query-builders/delete.js.map +1 -1
  143. package/sqlite-core/query-builders/insert.cjs +23 -19
  144. package/sqlite-core/query-builders/insert.cjs.map +1 -1
  145. package/sqlite-core/query-builders/insert.d.cts +1 -1
  146. package/sqlite-core/query-builders/insert.d.ts +1 -1
  147. package/sqlite-core/query-builders/insert.js +23 -19
  148. package/sqlite-core/query-builders/insert.js.map +1 -1
  149. package/sqlite-core/query-builders/query.cjs +8 -4
  150. package/sqlite-core/query-builders/query.cjs.map +1 -1
  151. package/sqlite-core/query-builders/query.js +8 -4
  152. package/sqlite-core/query-builders/query.js.map +1 -1
  153. package/sqlite-core/query-builders/raw.cjs +9 -17
  154. package/sqlite-core/query-builders/raw.cjs.map +1 -1
  155. package/sqlite-core/query-builders/raw.d.cts +10 -6
  156. package/sqlite-core/query-builders/raw.d.ts +10 -6
  157. package/sqlite-core/query-builders/raw.js +9 -17
  158. package/sqlite-core/query-builders/raw.js.map +1 -1
  159. package/sqlite-core/query-builders/select.cjs +78 -74
  160. package/sqlite-core/query-builders/select.cjs.map +1 -1
  161. package/sqlite-core/query-builders/select.d.cts +7 -7
  162. package/sqlite-core/query-builders/select.d.ts +7 -7
  163. package/sqlite-core/query-builders/select.js +78 -74
  164. package/sqlite-core/query-builders/select.js.map +1 -1
  165. package/sqlite-core/query-builders/update.cjs +17 -13
  166. package/sqlite-core/query-builders/update.cjs.map +1 -1
  167. package/sqlite-core/query-builders/update.d.cts +1 -1
  168. package/sqlite-core/query-builders/update.d.ts +1 -1
  169. package/sqlite-core/query-builders/update.js +17 -13
  170. package/sqlite-core/query-builders/update.js.map +1 -1
  171. package/vercel-postgres/session.cjs +6 -6
  172. package/vercel-postgres/session.cjs.map +1 -1
  173. package/vercel-postgres/session.d.cts +4 -4
  174. package/vercel-postgres/session.d.ts +4 -4
  175. package/vercel-postgres/session.js +7 -7
  176. package/vercel-postgres/session.js.map +1 -1
  177. package/version.cjs +1 -1
  178. package/version.d.cts +1 -1
  179. package/version.d.ts +1 -1
  180. package/version.js +1 -1
@@ -24,10 +24,10 @@ module.exports = __toCommonJS(raw_exports);
24
24
  var import_entity = require("../../entity.cjs");
25
25
  var import_query_promise = require("../../query-promise.cjs");
26
26
  class SQLiteRaw extends import_query_promise.QueryPromise {
27
- constructor(cb, getSQLCb, action, dialect, mapBatchResult) {
27
+ constructor(execute, getSQL, action, dialect, mapBatchResult) {
28
28
  super();
29
- this.cb = cb;
30
- this.getSQLCb = getSQLCb;
29
+ this.execute = execute;
30
+ this.getSQL = getSQL;
31
31
  this.dialect = dialect;
32
32
  this.mapBatchResult = mapBatchResult;
33
33
  this.config = { action };
@@ -35,22 +35,14 @@ class SQLiteRaw extends import_query_promise.QueryPromise {
35
35
  static [import_entity.entityKind] = "SQLiteRaw";
36
36
  /** @internal */
37
37
  config;
38
- /** @internal */
39
- getSQL() {
40
- return this.getSQLCb();
38
+ getQuery() {
39
+ return this.dialect.sqlToQuery(this.getSQL());
41
40
  }
42
- async execute() {
43
- return this.cb();
41
+ mapResult(result, isFromBatch) {
42
+ return isFromBatch ? this.mapBatchResult(result) : result;
44
43
  }
45
- prepare() {
46
- return {
47
- getQuery: () => {
48
- return this.dialect.sqlToQuery(this.getSQL());
49
- },
50
- mapResult: (result, isFromBatch) => {
51
- return isFromBatch ? this.mapBatchResult(result) : result;
52
- }
53
- };
44
+ _prepare() {
45
+ return this;
54
46
  }
55
47
  }
56
48
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/raw.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tprivate cb: () => Promise<TResult>,\n\t\tprivate getSQLCb: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.getSQLCb();\n\t}\n\n\toverride async execute(): Promise<TResult> {\n\t\treturn this.cb();\n\t}\n\n\tprepare(): PreparedQuery {\n\t\treturn {\n\t\t\tgetQuery: () => {\n\t\t\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t\t\t},\n\t\t\tmapResult: (result: unknown, isFromBatch?: boolean) => {\n\t\t\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAE3B,2BAA6B;AAUtB,MAAM,kBAA2B,kCAA8E;AAAA,EAWrH,YACS,IACA,UACR,QACQ,SACA,gBACP;AACD,UAAM;AANE;AACA;AAEA;AACA;AAGR,SAAK,SAAS,EAAE,OAAO;AAAA,EACxB;AAAA,EAnBA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAQvC;AAAA;AAAA,EAcA,SAAc;AACb,WAAO,KAAK,SAAS;AAAA,EACtB;AAAA,EAEA,MAAe,UAA4B;AAC1C,WAAO,KAAK,GAAG;AAAA,EAChB;AAAA,EAEA,UAAyB;AACxB,WAAO;AAAA,MACN,UAAU,MAAM;AACf,eAAO,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MAC7C;AAAA,MACA,WAAW,CAAC,QAAiB,gBAA0B;AACtD,eAAO,cAAc,KAAK,eAAe,MAAM,IAAI;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/raw.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport interface SQLiteRaw<TResult>\n\textends QueryPromise<TResult>, RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery\n{}\n\nexport class SQLiteRaw<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery\n{\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tpublic execute: () => Promise<TResult>,\n\t\t/** @internal */\n\t\tpublic getSQL: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\tgetQuery() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\n\tmapResult(result: unknown, isFromBatch?: boolean) {\n\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t}\n\n\t_prepare(): PreparedQuery {\n\t\treturn this;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAE3B,2BAA6B;AActB,MAAM,kBAA2B,kCAExC;AAAA,EAWC,YACQ,SAEA,QACP,QACQ,SACA,gBACP;AACD,UAAM;AAPC;AAEA;AAEC;AACA;AAGR,SAAK,SAAS,EAAE,OAAO;AAAA,EACxB;AAAA,EApBA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAQvC;AAAA,EAcA,WAAW;AACV,WAAO,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,EAC7C;AAAA,EAEA,UAAU,QAAiB,aAAuB;AACjD,WAAO,cAAc,KAAK,eAAe,MAAM,IAAI;AAAA,EACpD;AAAA,EAEA,WAA0B;AACzB,WAAO;AAAA,EACR;AACD;","names":[]}
@@ -8,9 +8,10 @@ type SQLiteRawAction = 'all' | 'get' | 'values' | 'run';
8
8
  export interface SQLiteRawConfig {
9
9
  action: SQLiteRawAction;
10
10
  }
11
- export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper {
12
- private cb;
13
- private getSQLCb;
11
+ export interface SQLiteRaw<TResult> extends QueryPromise<TResult>, RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery {
12
+ }
13
+ export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery {
14
+ execute: () => Promise<TResult>;
14
15
  private dialect;
15
16
  private mapBatchResult;
16
17
  static readonly [entityKind]: string;
@@ -18,8 +19,11 @@ export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements
18
19
  readonly dialect: 'sqlite';
19
20
  readonly result: TResult;
20
21
  };
21
- constructor(cb: () => Promise<TResult>, getSQLCb: () => SQL, action: SQLiteRawAction, dialect: SQLiteAsyncDialect, mapBatchResult: (result: unknown) => unknown);
22
- execute(): Promise<TResult>;
23
- prepare(): PreparedQuery;
22
+ constructor(execute: () => Promise<TResult>,
23
+ /** @internal */
24
+ getSQL: () => SQL, action: SQLiteRawAction, dialect: SQLiteAsyncDialect, mapBatchResult: (result: unknown) => unknown);
25
+ getQuery(): import("../../index.ts").QueryWithTypings;
26
+ mapResult(result: unknown, isFromBatch?: boolean): unknown;
27
+ _prepare(): PreparedQuery;
24
28
  }
25
29
  export {};
@@ -8,9 +8,10 @@ type SQLiteRawAction = 'all' | 'get' | 'values' | 'run';
8
8
  export interface SQLiteRawConfig {
9
9
  action: SQLiteRawAction;
10
10
  }
11
- export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper {
12
- private cb;
13
- private getSQLCb;
11
+ export interface SQLiteRaw<TResult> extends QueryPromise<TResult>, RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery {
12
+ }
13
+ export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery {
14
+ execute: () => Promise<TResult>;
14
15
  private dialect;
15
16
  private mapBatchResult;
16
17
  static readonly [entityKind]: string;
@@ -18,8 +19,11 @@ export declare class SQLiteRaw<TResult> extends QueryPromise<TResult> implements
18
19
  readonly dialect: 'sqlite';
19
20
  readonly result: TResult;
20
21
  };
21
- constructor(cb: () => Promise<TResult>, getSQLCb: () => SQL, action: SQLiteRawAction, dialect: SQLiteAsyncDialect, mapBatchResult: (result: unknown) => unknown);
22
- execute(): Promise<TResult>;
23
- prepare(): PreparedQuery;
22
+ constructor(execute: () => Promise<TResult>,
23
+ /** @internal */
24
+ getSQL: () => SQL, action: SQLiteRawAction, dialect: SQLiteAsyncDialect, mapBatchResult: (result: unknown) => unknown);
25
+ getQuery(): import("../../index.js").QueryWithTypings;
26
+ mapResult(result: unknown, isFromBatch?: boolean): unknown;
27
+ _prepare(): PreparedQuery;
24
28
  }
25
29
  export {};
@@ -1,10 +1,10 @@
1
1
  import { entityKind } from "../../entity.js";
2
2
  import { QueryPromise } from "../../query-promise.js";
3
3
  class SQLiteRaw extends QueryPromise {
4
- constructor(cb, getSQLCb, action, dialect, mapBatchResult) {
4
+ constructor(execute, getSQL, action, dialect, mapBatchResult) {
5
5
  super();
6
- this.cb = cb;
7
- this.getSQLCb = getSQLCb;
6
+ this.execute = execute;
7
+ this.getSQL = getSQL;
8
8
  this.dialect = dialect;
9
9
  this.mapBatchResult = mapBatchResult;
10
10
  this.config = { action };
@@ -12,22 +12,14 @@ class SQLiteRaw extends QueryPromise {
12
12
  static [entityKind] = "SQLiteRaw";
13
13
  /** @internal */
14
14
  config;
15
- /** @internal */
16
- getSQL() {
17
- return this.getSQLCb();
15
+ getQuery() {
16
+ return this.dialect.sqlToQuery(this.getSQL());
18
17
  }
19
- async execute() {
20
- return this.cb();
18
+ mapResult(result, isFromBatch) {
19
+ return isFromBatch ? this.mapBatchResult(result) : result;
21
20
  }
22
- prepare() {
23
- return {
24
- getQuery: () => {
25
- return this.dialect.sqlToQuery(this.getSQL());
26
- },
27
- mapResult: (result, isFromBatch) => {
28
- return isFromBatch ? this.mapBatchResult(result) : result;
29
- }
30
- };
21
+ _prepare() {
22
+ return this;
31
23
  }
32
24
  }
33
25
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/query-builders/raw.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport class SQLiteRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'sqlite'>, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tprivate cb: () => Promise<TResult>,\n\t\tprivate getSQLCb: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.getSQLCb();\n\t}\n\n\toverride async execute(): Promise<TResult> {\n\t\treturn this.cb();\n\t}\n\n\tprepare(): PreparedQuery {\n\t\treturn {\n\t\t\tgetQuery: () => {\n\t\t\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t\t\t},\n\t\t\tmapResult: (result: unknown, isFromBatch?: boolean) => {\n\t\t\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AAUtB,MAAM,kBAA2B,aAA8E;AAAA,EAWrH,YACS,IACA,UACR,QACQ,SACA,gBACP;AACD,UAAM;AANE;AACA;AAEA;AACA;AAGR,SAAK,SAAS,EAAE,OAAO;AAAA,EACxB;AAAA,EAnBA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAQvC;AAAA;AAAA,EAcA,SAAc;AACb,WAAO,KAAK,SAAS;AAAA,EACtB;AAAA,EAEA,MAAe,UAA4B;AAC1C,WAAO,KAAK,GAAG;AAAA,EAChB;AAAA,EAEA,UAAyB;AACxB,WAAO;AAAA,MACN,UAAU,MAAM;AACf,eAAO,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MAC7C;AAAA,MACA,WAAW,CAAC,QAAiB,gBAA0B;AACtD,eAAO,cAAc,KAAK,eAAe,MAAM,IAAI;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/query-builders/raw.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport interface SQLiteRaw<TResult>\n\textends QueryPromise<TResult>, RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery\n{}\n\nexport class SQLiteRaw<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'sqlite'>, SQLWrapper, PreparedQuery\n{\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tpublic execute: () => Promise<TResult>,\n\t\t/** @internal */\n\t\tpublic getSQL: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\tgetQuery() {\n\t\treturn this.dialect.sqlToQuery(this.getSQL());\n\t}\n\n\tmapResult(result: unknown, isFromBatch?: boolean) {\n\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t}\n\n\t_prepare(): PreparedQuery {\n\t\treturn this;\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,oBAAoB;AActB,MAAM,kBAA2B,aAExC;AAAA,EAWC,YACQ,SAEA,QACP,QACQ,SACA,gBACP;AACD,UAAM;AAPC;AAEA;AAEC;AACA;AAGR,SAAK,SAAS,EAAE,OAAO;AAAA,EACxB;AAAA,EApBA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAQvC;AAAA,EAcA,WAAW;AACV,WAAO,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,EAC7C;AAAA,EAEA,UAAU,QAAiB,aAAuB;AACjD,WAAO,cAAc,KAAK,eAAe,MAAM,IAAI;AAAA,EACpD;AAAA,EAEA,WAA0B;AACzB,WAAO;AAAA,EACR;AACD;","names":[]}
@@ -30,13 +30,13 @@ module.exports = __toCommonJS(select_exports);
30
30
  var import_entity = require("../../entity.cjs");
31
31
  var import_query_builder = require("../../query-builders/query-builder.cjs");
32
32
  var import_query_promise = require("../../query-promise.cjs");
33
+ var import_selection_proxy = require("../../selection-proxy.cjs");
33
34
  var import_sql = require("../../sql/sql.cjs");
35
+ var import_subquery = require("../../subquery.cjs");
34
36
  var import_table = require("../../table.cjs");
35
37
  var import_utils = require("../../utils.cjs");
36
38
  var import_view_common = require("../../view-common.cjs");
37
- var import_subquery = require("../../subquery.cjs");
38
39
  var import_view_base = require("../view-base.cjs");
39
- var import_selection_proxy = require("../../selection-proxy.cjs");
40
40
  class SQLiteSelectBuilder {
41
41
  static [import_entity.entityKind] = "SQLiteSelectBuilder";
42
42
  fields;
@@ -167,22 +167,22 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
167
167
  }
168
168
  /**
169
169
  * Executes a `left join` operation by adding another table to the current query.
170
- *
170
+ *
171
171
  * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.
172
- *
172
+ *
173
173
  * See docs: {@link https://orm.drizzle.team/docs/joins#left-join}
174
- *
174
+ *
175
175
  * @param table the table to join.
176
176
  * @param on the `on` clause.
177
- *
177
+ *
178
178
  * @example
179
- *
179
+ *
180
180
  * ```ts
181
181
  * // Select all users and their pets
182
182
  * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
183
183
  * .from(users)
184
184
  * .leftJoin(pets, eq(users.id, pets.ownerId))
185
- *
185
+ *
186
186
  * // Select userId and petId
187
187
  * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
188
188
  * userId: users.id,
@@ -195,22 +195,22 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
195
195
  leftJoin = this.createJoin("left");
196
196
  /**
197
197
  * Executes a `right join` operation by adding another table to the current query.
198
- *
198
+ *
199
199
  * Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.
200
- *
200
+ *
201
201
  * See docs: {@link https://orm.drizzle.team/docs/joins#right-join}
202
- *
202
+ *
203
203
  * @param table the table to join.
204
204
  * @param on the `on` clause.
205
- *
205
+ *
206
206
  * @example
207
- *
207
+ *
208
208
  * ```ts
209
209
  * // Select all users and their pets
210
210
  * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
211
211
  * .from(users)
212
212
  * .rightJoin(pets, eq(users.id, pets.ownerId))
213
- *
213
+ *
214
214
  * // Select userId and petId
215
215
  * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
216
216
  * userId: users.id,
@@ -223,22 +223,22 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
223
223
  rightJoin = this.createJoin("right");
224
224
  /**
225
225
  * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
226
- *
226
+ *
227
227
  * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.
228
- *
228
+ *
229
229
  * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}
230
- *
230
+ *
231
231
  * @param table the table to join.
232
232
  * @param on the `on` clause.
233
- *
233
+ *
234
234
  * @example
235
- *
235
+ *
236
236
  * ```ts
237
237
  * // Select all users and their pets
238
238
  * const usersWithPets: { user: User; pets: Pet }[] = await db.select()
239
239
  * .from(users)
240
240
  * .innerJoin(pets, eq(users.id, pets.ownerId))
241
- *
241
+ *
242
242
  * // Select userId and petId
243
243
  * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
244
244
  * userId: users.id,
@@ -251,22 +251,22 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
251
251
  innerJoin = this.createJoin("inner");
252
252
  /**
253
253
  * Executes a `full join` operation by combining rows from two tables into a new table.
254
- *
254
+ *
255
255
  * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.
256
- *
256
+ *
257
257
  * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}
258
- *
258
+ *
259
259
  * @param table the table to join.
260
260
  * @param on the `on` clause.
261
- *
261
+ *
262
262
  * @example
263
- *
263
+ *
264
264
  * ```ts
265
265
  * // Select all users and their pets
266
266
  * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
267
267
  * .from(users)
268
268
  * .fullJoin(pets, eq(users.id, pets.ownerId))
269
- *
269
+ *
270
270
  * // Select userId and petId
271
271
  * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
272
272
  * userId: users.id,
@@ -291,13 +291,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
291
291
  }
292
292
  /**
293
293
  * Adds `union` set operator to the query.
294
- *
294
+ *
295
295
  * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.
296
- *
296
+ *
297
297
  * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}
298
- *
298
+ *
299
299
  * @example
300
- *
300
+ *
301
301
  * ```ts
302
302
  * // Select all unique names from customers and users tables
303
303
  * await db.select({ name: users.name })
@@ -307,9 +307,9 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
307
307
  * );
308
308
  * // or
309
309
  * import { union } from 'drizzle-orm/sqlite-core'
310
- *
310
+ *
311
311
  * await union(
312
- * db.select({ name: users.name }).from(users),
312
+ * db.select({ name: users.name }).from(users),
313
313
  * db.select({ name: customers.name }).from(customers)
314
314
  * );
315
315
  * ```
@@ -317,13 +317,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
317
317
  union = this.createSetOperator("union", false);
318
318
  /**
319
319
  * Adds `union all` set operator to the query.
320
- *
320
+ *
321
321
  * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.
322
- *
322
+ *
323
323
  * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}
324
- *
324
+ *
325
325
  * @example
326
- *
326
+ *
327
327
  * ```ts
328
328
  * // Select all transaction ids from both online and in-store sales
329
329
  * await db.select({ transaction: onlineSales.transactionId })
@@ -333,7 +333,7 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
333
333
  * );
334
334
  * // or
335
335
  * import { unionAll } from 'drizzle-orm/sqlite-core'
336
- *
336
+ *
337
337
  * await unionAll(
338
338
  * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),
339
339
  * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)
@@ -343,13 +343,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
343
343
  unionAll = this.createSetOperator("union", true);
344
344
  /**
345
345
  * Adds `intersect` set operator to the query.
346
- *
346
+ *
347
347
  * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.
348
- *
348
+ *
349
349
  * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}
350
- *
350
+ *
351
351
  * @example
352
- *
352
+ *
353
353
  * ```ts
354
354
  * // Select course names that are offered in both departments A and B
355
355
  * await db.select({ courseName: depA.courseName })
@@ -359,7 +359,7 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
359
359
  * );
360
360
  * // or
361
361
  * import { intersect } from 'drizzle-orm/sqlite-core'
362
- *
362
+ *
363
363
  * await intersect(
364
364
  * db.select({ courseName: depA.courseName }).from(depA),
365
365
  * db.select({ courseName: depB.courseName }).from(depB)
@@ -369,13 +369,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
369
369
  intersect = this.createSetOperator("intersect", false);
370
370
  /**
371
371
  * Adds `except` set operator to the query.
372
- *
372
+ *
373
373
  * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.
374
- *
374
+ *
375
375
  * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}
376
- *
376
+ *
377
377
  * @example
378
- *
378
+ *
379
379
  * ```ts
380
380
  * // Select all courses offered in department A but not in department B
381
381
  * await db.select({ courseName: depA.courseName })
@@ -385,7 +385,7 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
385
385
  * );
386
386
  * // or
387
387
  * import { except } from 'drizzle-orm/sqlite-core'
388
- *
388
+ *
389
389
  * await except(
390
390
  * db.select({ courseName: depA.courseName }).from(depA),
391
391
  * db.select({ courseName: depB.courseName }).from(depB)
@@ -398,35 +398,35 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
398
398
  this.config.setOperators.push(...setOperators);
399
399
  return this;
400
400
  }
401
- /**
401
+ /**
402
402
  * Adds a `where` clause to the query.
403
- *
403
+ *
404
404
  * Calling this method will select only those rows that fulfill a specified condition.
405
- *
405
+ *
406
406
  * See docs: {@link https://orm.drizzle.team/docs/select#filtering}
407
- *
407
+ *
408
408
  * @param where the `where` clause.
409
- *
409
+ *
410
410
  * @example
411
411
  * You can use conditional operators and `sql function` to filter the rows to be selected.
412
- *
412
+ *
413
413
  * ```ts
414
414
  * // Select all cars with green color
415
415
  * await db.select().from(cars).where(eq(cars.color, 'green'));
416
416
  * // or
417
417
  * await db.select().from(cars).where(sql`${cars.color} = 'green'`)
418
418
  * ```
419
- *
419
+ *
420
420
  * You can logically combine conditional operators with `and()` and `or()` operators:
421
- *
421
+ *
422
422
  * ```ts
423
423
  * // Select all BMW cars with a green color
424
424
  * await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
425
- *
425
+ *
426
426
  * // Select all cars with the green or blue color
427
427
  * await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
428
428
  * ```
429
- */
429
+ */
430
430
  where(where) {
431
431
  if (typeof where === "function") {
432
432
  where = where(
@@ -441,15 +441,15 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
441
441
  }
442
442
  /**
443
443
  * Adds a `having` clause to the query.
444
- *
444
+ *
445
445
  * Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.
446
- *
446
+ *
447
447
  * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}
448
- *
448
+ *
449
449
  * @param having the `having` clause.
450
- *
450
+ *
451
451
  * @example
452
- *
452
+ *
453
453
  * ```ts
454
454
  * // Select all brands with more than one car
455
455
  * await db.select({
@@ -513,13 +513,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
513
513
  }
514
514
  /**
515
515
  * Adds a `limit` clause to the query.
516
- *
516
+ *
517
517
  * Calling this method will set the maximum number of rows that will be returned by this query.
518
518
  *
519
519
  * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}
520
- *
520
+ *
521
521
  * @param limit the `limit` clause.
522
- *
522
+ *
523
523
  * @example
524
524
  *
525
525
  * ```ts
@@ -537,13 +537,13 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
537
537
  }
538
538
  /**
539
539
  * Adds an `offset` clause to the query.
540
- *
540
+ *
541
541
  * Calling this method will skip a number of rows when returning results from this query.
542
- *
542
+ *
543
543
  * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}
544
- *
544
+ *
545
545
  * @param offset the `offset` clause.
546
- *
546
+ *
547
547
  * @example
548
548
  *
549
549
  * ```ts
@@ -586,7 +586,8 @@ class SQLiteSelectQueryBuilderBase extends import_query_builder.TypedQueryBuilde
586
586
  }
587
587
  class SQLiteSelectBase extends SQLiteSelectQueryBuilderBase {
588
588
  static [import_entity.entityKind] = "SQLiteSelect";
589
- prepare(isOneTimeQuery) {
589
+ /** @internal */
590
+ _prepare(isOneTimeQuery = true) {
590
591
  if (!this.session) {
591
592
  throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
592
593
  }
@@ -599,17 +600,20 @@ class SQLiteSelectBase extends SQLiteSelectQueryBuilderBase {
599
600
  query.joinsNotNullableMap = this.joinsNotNullableMap;
600
601
  return query;
601
602
  }
603
+ prepare() {
604
+ return this._prepare(false);
605
+ }
602
606
  run = (placeholderValues) => {
603
- return this.prepare(true).run(placeholderValues);
607
+ return this._prepare().run(placeholderValues);
604
608
  };
605
609
  all = (placeholderValues) => {
606
- return this.prepare(true).all(placeholderValues);
610
+ return this._prepare().all(placeholderValues);
607
611
  };
608
612
  get = (placeholderValues) => {
609
- return this.prepare(true).get(placeholderValues);
613
+ return this._prepare().get(placeholderValues);
610
614
  };
611
615
  values = (placeholderValues) => {
612
- return this.prepare(true).values(placeholderValues);
616
+ return this._prepare().values(placeholderValues);
613
617
  };
614
618
  async execute() {
615
619
  return this.all();