drizzle-orm 0.33.0-87d7704 → 0.33.0-8944ef1

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 (262) hide show
  1. package/better-sqlite3/driver.cjs +7 -1
  2. package/better-sqlite3/driver.cjs.map +1 -1
  3. package/better-sqlite3/driver.d.cts +4 -1
  4. package/better-sqlite3/driver.d.ts +4 -1
  5. package/better-sqlite3/driver.js +6 -1
  6. package/better-sqlite3/driver.js.map +1 -1
  7. package/bun-sqlite/driver.cjs +7 -1
  8. package/bun-sqlite/driver.cjs.map +1 -1
  9. package/bun-sqlite/driver.d.cts +4 -1
  10. package/bun-sqlite/driver.d.ts +4 -1
  11. package/bun-sqlite/driver.js +6 -1
  12. package/bun-sqlite/driver.js.map +1 -1
  13. package/expo-sqlite/driver.cjs +7 -1
  14. package/expo-sqlite/driver.cjs.map +1 -1
  15. package/expo-sqlite/driver.d.cts +4 -1
  16. package/expo-sqlite/driver.d.ts +4 -1
  17. package/expo-sqlite/driver.js +6 -1
  18. package/expo-sqlite/driver.js.map +1 -1
  19. package/index.cjs +2 -0
  20. package/index.cjs.map +1 -1
  21. package/index.d.cts +1 -0
  22. package/index.d.ts +1 -0
  23. package/index.js +1 -0
  24. package/index.js.map +1 -1
  25. package/libsql/migrator.cjs +1 -1
  26. package/libsql/migrator.cjs.map +1 -1
  27. package/libsql/migrator.d.cts +1 -1
  28. package/libsql/migrator.d.ts +1 -1
  29. package/libsql/migrator.js +1 -1
  30. package/libsql/migrator.js.map +1 -1
  31. package/libsql/session.cjs +12 -0
  32. package/libsql/session.cjs.map +1 -1
  33. package/libsql/session.d.cts +1 -0
  34. package/libsql/session.d.ts +1 -0
  35. package/libsql/session.js +12 -0
  36. package/libsql/session.js.map +1 -1
  37. package/monodriver.cjs +123 -29
  38. package/monodriver.cjs.map +1 -1
  39. package/monodriver.d.cts +89 -47
  40. package/monodriver.d.ts +89 -47
  41. package/monodriver.js +123 -29
  42. package/monodriver.js.map +1 -1
  43. package/monomigrator.cjs +95 -0
  44. package/monomigrator.cjs.map +1 -0
  45. package/monomigrator.d.cts +15 -0
  46. package/monomigrator.d.ts +15 -0
  47. package/monomigrator.js +61 -0
  48. package/monomigrator.js.map +1 -0
  49. package/mysql-core/db.cjs +4 -0
  50. package/mysql-core/db.cjs.map +1 -1
  51. package/mysql-core/db.d.cts +4 -1
  52. package/mysql-core/db.d.ts +4 -1
  53. package/mysql-core/db.js +4 -0
  54. package/mysql-core/db.js.map +1 -1
  55. package/mysql-core/query-builders/count.cjs +73 -0
  56. package/mysql-core/query-builders/count.cjs.map +1 -0
  57. package/mysql-core/query-builders/count.d.cts +27 -0
  58. package/mysql-core/query-builders/count.d.ts +27 -0
  59. package/mysql-core/query-builders/count.js +49 -0
  60. package/mysql-core/query-builders/count.js.map +1 -0
  61. package/mysql-core/session.cjs +6 -0
  62. package/mysql-core/session.cjs.map +1 -1
  63. package/mysql-core/session.d.cts +1 -0
  64. package/mysql-core/session.d.ts +1 -0
  65. package/mysql-core/session.js +6 -0
  66. package/mysql-core/session.js.map +1 -1
  67. package/mysql-proxy/driver.cjs +7 -1
  68. package/mysql-proxy/driver.cjs.map +1 -1
  69. package/mysql-proxy/driver.d.cts +4 -1
  70. package/mysql-proxy/driver.d.ts +4 -1
  71. package/mysql-proxy/driver.js +6 -1
  72. package/mysql-proxy/driver.js.map +1 -1
  73. package/mysql2/driver.cjs +6 -1
  74. package/mysql2/driver.cjs.map +1 -1
  75. package/mysql2/driver.d.cts +3 -1
  76. package/mysql2/driver.d.ts +3 -1
  77. package/mysql2/driver.js +5 -1
  78. package/mysql2/driver.js.map +1 -1
  79. package/mysql2/migrator.cjs +4 -1
  80. package/mysql2/migrator.cjs.map +1 -1
  81. package/mysql2/migrator.d.cts +1 -1
  82. package/mysql2/migrator.d.ts +1 -1
  83. package/mysql2/migrator.js +4 -1
  84. package/mysql2/migrator.js.map +1 -1
  85. package/neon/index.cjs +23 -0
  86. package/neon/index.cjs.map +1 -0
  87. package/neon/index.d.cts +1 -0
  88. package/neon/index.d.ts +1 -0
  89. package/neon/index.js +2 -0
  90. package/neon/index.js.map +1 -0
  91. package/neon/rls.cjs +81 -0
  92. package/neon/rls.cjs.map +1 -0
  93. package/neon/rls.d.cts +13 -0
  94. package/neon/rls.d.ts +13 -0
  95. package/neon/rls.js +54 -0
  96. package/neon/rls.js.map +1 -0
  97. package/neon-http/session.cjs +6 -0
  98. package/neon-http/session.cjs.map +1 -1
  99. package/neon-http/session.d.cts +2 -1
  100. package/neon-http/session.d.ts +2 -1
  101. package/neon-http/session.js +6 -0
  102. package/neon-http/session.js.map +1 -1
  103. package/neon-serverless/driver.cjs +6 -1
  104. package/neon-serverless/driver.cjs.map +1 -1
  105. package/neon-serverless/driver.d.cts +3 -1
  106. package/neon-serverless/driver.d.ts +3 -1
  107. package/neon-serverless/driver.js +5 -1
  108. package/neon-serverless/driver.js.map +1 -1
  109. package/node-postgres/driver.cjs +6 -1
  110. package/node-postgres/driver.cjs.map +1 -1
  111. package/node-postgres/driver.d.cts +3 -1
  112. package/node-postgres/driver.d.ts +3 -1
  113. package/node-postgres/driver.js +5 -1
  114. package/node-postgres/driver.js.map +1 -1
  115. package/node-postgres/session.cjs +6 -0
  116. package/node-postgres/session.cjs.map +1 -1
  117. package/node-postgres/session.d.cts +2 -1
  118. package/node-postgres/session.d.ts +2 -1
  119. package/node-postgres/session.js +6 -0
  120. package/node-postgres/session.js.map +1 -1
  121. package/op-sqlite/driver.cjs +7 -1
  122. package/op-sqlite/driver.cjs.map +1 -1
  123. package/op-sqlite/driver.d.cts +4 -1
  124. package/op-sqlite/driver.d.ts +4 -1
  125. package/op-sqlite/driver.js +6 -1
  126. package/op-sqlite/driver.js.map +1 -1
  127. package/operations.cjs.map +1 -1
  128. package/package.json +101 -5
  129. package/pg-core/db.cjs +4 -0
  130. package/pg-core/db.cjs.map +1 -1
  131. package/pg-core/db.d.cts +5 -2
  132. package/pg-core/db.d.ts +5 -2
  133. package/pg-core/db.js +4 -0
  134. package/pg-core/db.js.map +1 -1
  135. package/pg-core/index.cjs +4 -0
  136. package/pg-core/index.cjs.map +1 -1
  137. package/pg-core/index.d.cts +2 -0
  138. package/pg-core/index.d.ts +2 -0
  139. package/pg-core/index.js +2 -0
  140. package/pg-core/index.js.map +1 -1
  141. package/pg-core/policies.cjs +52 -0
  142. package/pg-core/policies.cjs.map +1 -0
  143. package/pg-core/policies.d.cts +22 -0
  144. package/pg-core/policies.d.ts +22 -0
  145. package/pg-core/policies.js +27 -0
  146. package/pg-core/policies.js.map +1 -0
  147. package/pg-core/query-builders/count.cjs +73 -0
  148. package/pg-core/query-builders/count.cjs.map +1 -0
  149. package/pg-core/query-builders/count.d.cts +26 -0
  150. package/pg-core/query-builders/count.d.ts +26 -0
  151. package/pg-core/query-builders/count.js +49 -0
  152. package/pg-core/query-builders/count.js.map +1 -0
  153. package/pg-core/roles.cjs +57 -0
  154. package/pg-core/roles.cjs.map +1 -0
  155. package/pg-core/roles.d.cts +13 -0
  156. package/pg-core/roles.d.ts +13 -0
  157. package/pg-core/roles.js +32 -0
  158. package/pg-core/roles.js.map +1 -0
  159. package/pg-core/session.cjs +6 -0
  160. package/pg-core/session.cjs.map +1 -1
  161. package/pg-core/session.d.cts +1 -0
  162. package/pg-core/session.d.ts +1 -0
  163. package/pg-core/session.js +6 -0
  164. package/pg-core/session.js.map +1 -1
  165. package/pg-core/table.cjs.map +1 -1
  166. package/pg-core/table.d.cts +2 -1
  167. package/pg-core/table.d.ts +2 -1
  168. package/pg-core/table.js.map +1 -1
  169. package/pg-core/utils.cjs +23 -2
  170. package/pg-core/utils.cjs.map +1 -1
  171. package/pg-core/utils.d.cts +2 -0
  172. package/pg-core/utils.d.ts +2 -0
  173. package/pg-core/utils.js +23 -2
  174. package/pg-core/utils.js.map +1 -1
  175. package/pg-proxy/driver.cjs +7 -1
  176. package/pg-proxy/driver.cjs.map +1 -1
  177. package/pg-proxy/driver.d.cts +4 -1
  178. package/pg-proxy/driver.d.ts +4 -1
  179. package/pg-proxy/driver.js +6 -1
  180. package/pg-proxy/driver.js.map +1 -1
  181. package/pg-proxy/session.cjs.map +1 -1
  182. package/pg-proxy/session.js.map +1 -1
  183. package/pglite/driver.cjs +6 -1
  184. package/pglite/driver.cjs.map +1 -1
  185. package/pglite/driver.d.cts +3 -1
  186. package/pglite/driver.d.ts +3 -1
  187. package/pglite/driver.js +5 -1
  188. package/pglite/driver.js.map +1 -1
  189. package/pglite/session.cjs +6 -0
  190. package/pglite/session.cjs.map +1 -1
  191. package/pglite/session.d.cts +2 -1
  192. package/pglite/session.d.ts +2 -1
  193. package/pglite/session.js +6 -0
  194. package/pglite/session.js.map +1 -1
  195. package/planetscale-serverless/driver.cjs +7 -1
  196. package/planetscale-serverless/driver.cjs.map +1 -1
  197. package/planetscale-serverless/driver.d.cts +4 -1
  198. package/planetscale-serverless/driver.d.ts +4 -1
  199. package/planetscale-serverless/driver.js +6 -1
  200. package/planetscale-serverless/driver.js.map +1 -1
  201. package/planetscale-serverless/migrator.cjs +4 -1
  202. package/planetscale-serverless/migrator.cjs.map +1 -1
  203. package/planetscale-serverless/migrator.d.cts +1 -1
  204. package/planetscale-serverless/migrator.d.ts +1 -1
  205. package/planetscale-serverless/migrator.js +4 -1
  206. package/planetscale-serverless/migrator.js.map +1 -1
  207. package/planetscale-serverless/session.cjs +6 -0
  208. package/planetscale-serverless/session.cjs.map +1 -1
  209. package/planetscale-serverless/session.d.cts +1 -0
  210. package/planetscale-serverless/session.d.ts +1 -0
  211. package/planetscale-serverless/session.js +6 -0
  212. package/planetscale-serverless/session.js.map +1 -1
  213. package/postgres-js/driver.cjs +7 -1
  214. package/postgres-js/driver.cjs.map +1 -1
  215. package/postgres-js/driver.d.cts +4 -1
  216. package/postgres-js/driver.d.ts +4 -1
  217. package/postgres-js/driver.js +6 -1
  218. package/postgres-js/driver.js.map +1 -1
  219. package/sqlite-core/columns/blob.d.cts +1 -1
  220. package/sqlite-core/columns/blob.d.ts +1 -1
  221. package/sqlite-core/db.cjs +4 -0
  222. package/sqlite-core/db.cjs.map +1 -1
  223. package/sqlite-core/db.d.cts +4 -1
  224. package/sqlite-core/db.d.ts +4 -1
  225. package/sqlite-core/db.js +4 -0
  226. package/sqlite-core/db.js.map +1 -1
  227. package/sqlite-core/query-builders/count.cjs +72 -0
  228. package/sqlite-core/query-builders/count.cjs.map +1 -0
  229. package/sqlite-core/query-builders/count.d.cts +27 -0
  230. package/sqlite-core/query-builders/count.d.ts +27 -0
  231. package/sqlite-core/query-builders/count.js +48 -0
  232. package/sqlite-core/query-builders/count.js.map +1 -0
  233. package/sqlite-core/session.cjs +4 -0
  234. package/sqlite-core/session.cjs.map +1 -1
  235. package/sqlite-core/session.d.cts +1 -0
  236. package/sqlite-core/session.d.ts +1 -0
  237. package/sqlite-core/session.js +4 -0
  238. package/sqlite-core/session.js.map +1 -1
  239. package/tidb-serverless/driver.cjs +7 -1
  240. package/tidb-serverless/driver.cjs.map +1 -1
  241. package/tidb-serverless/driver.d.cts +4 -1
  242. package/tidb-serverless/driver.d.ts +4 -1
  243. package/tidb-serverless/driver.js +6 -1
  244. package/tidb-serverless/driver.js.map +1 -1
  245. package/tidb-serverless/session.cjs +6 -0
  246. package/tidb-serverless/session.cjs.map +1 -1
  247. package/tidb-serverless/session.d.cts +1 -0
  248. package/tidb-serverless/session.d.ts +1 -0
  249. package/tidb-serverless/session.js +6 -0
  250. package/tidb-serverless/session.js.map +1 -1
  251. package/vercel-postgres/driver.cjs +6 -1
  252. package/vercel-postgres/driver.cjs.map +1 -1
  253. package/vercel-postgres/driver.d.cts +3 -1
  254. package/vercel-postgres/driver.d.ts +3 -1
  255. package/vercel-postgres/driver.js +5 -1
  256. package/vercel-postgres/driver.js.map +1 -1
  257. package/version.cjs +2 -2
  258. package/version.cjs.map +1 -1
  259. package/version.d.cts +2 -2
  260. package/version.d.ts +2 -2
  261. package/version.js +2 -2
  262. package/version.js.map +1 -1
@@ -0,0 +1,13 @@
1
+ import { entityKind } from "../entity.js";
2
+ export interface PgRoleConfig {
3
+ createDb?: boolean;
4
+ createRole?: boolean;
5
+ inherit?: boolean;
6
+ }
7
+ export declare class PgRole implements PgRoleConfig {
8
+ readonly name: string;
9
+ static readonly [entityKind]: string;
10
+ constructor(name: string, config?: PgRoleConfig);
11
+ existing(): this;
12
+ }
13
+ export declare function pgRole(name: string, config?: PgRoleConfig): PgRole;
@@ -0,0 +1,32 @@
1
+ import { entityKind } from "../entity.js";
2
+ class PgRole {
3
+ constructor(name, config) {
4
+ this.name = name;
5
+ if (config) {
6
+ this.createDb = config.createDb;
7
+ this.createRole = config.createRole;
8
+ this.inherit = config.inherit;
9
+ }
10
+ }
11
+ static [entityKind] = "PgRole";
12
+ /** @internal */
13
+ _existing;
14
+ /** @internal */
15
+ createDb;
16
+ /** @internal */
17
+ createRole;
18
+ /** @internal */
19
+ inherit;
20
+ existing() {
21
+ this._existing = true;
22
+ return this;
23
+ }
24
+ }
25
+ function pgRole(name, config) {
26
+ return new PgRole(name, config);
27
+ }
28
+ export {
29
+ PgRole,
30
+ pgRole
31
+ };
32
+ //# sourceMappingURL=roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/pg-core/roles.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\n\nexport interface PgRoleConfig {\n\tcreateDb?: boolean;\n\tcreateRole?: boolean;\n\tinherit?: boolean;\n}\n\nexport class PgRole implements PgRoleConfig {\n\tstatic readonly [entityKind]: string = 'PgRole';\n\n\t/** @internal */\n\t_existing?: boolean;\n\n\t/** @internal */\n\treadonly createDb: PgRoleConfig['createDb'];\n\t/** @internal */\n\treadonly createRole: PgRoleConfig['createRole'];\n\t/** @internal */\n\treadonly inherit: PgRoleConfig['inherit'];\n\n\tconstructor(\n\t\treadonly name: string,\n\t\tconfig?: PgRoleConfig,\n\t) {\n\t\tif (config) {\n\t\t\tthis.createDb = config.createDb;\n\t\t\tthis.createRole = config.createRole;\n\t\t\tthis.inherit = config.inherit;\n\t\t}\n\t}\n\n\texisting(): this {\n\t\tthis._existing = true;\n\t\treturn this;\n\t}\n}\n\nexport function pgRole(name: string, config?: PgRoleConfig) {\n\treturn new PgRole(name, config);\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAQpB,MAAM,OAA+B;AAAA,EAa3C,YACU,MACT,QACC;AAFQ;AAGT,QAAI,QAAQ;AACX,WAAK,WAAW,OAAO;AACvB,WAAK,aAAa,OAAO;AACzB,WAAK,UAAU,OAAO;AAAA,IACvB;AAAA,EACD;AAAA,EArBA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AAAA;AAAA,EAGS;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EAaT,WAAiB;AAChB,SAAK,YAAY;AACjB,WAAO;AAAA,EACR;AACD;AAEO,SAAS,OAAO,MAAc,QAAuB;AAC3D,SAAO,IAAI,OAAO,MAAM,MAAM;AAC/B;","names":[]}
@@ -68,6 +68,12 @@ class PgSession {
68
68
  false
69
69
  ).all();
70
70
  }
71
+ async count(sql2) {
72
+ const res = await this.execute(sql2);
73
+ return Number(
74
+ res[0]["count"]
75
+ );
76
+ }
71
77
  }
72
78
  class PgTransaction extends import_db.PgDatabase {
73
79
  constructor(dialect, session, schema, nestedIndex = 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAGzC,iBAA0C;AAC1C,qBAAuB;AACvB,gBAA2B;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,sBAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAMD;AAEO,MAAe,sBAIZ,qBAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,wBAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,eAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,iCAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAGzC,iBAA0C;AAC1C,qBAAuB;AACvB,gBAA2B;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,wBAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,sBAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6BA,IAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAMD;AAEO,MAAe,sBAIZ,qBAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,wBAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,eAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,iCAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":["sql"]}
@@ -30,6 +30,7 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
30
30
  abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
31
31
  execute<T>(query: SQL): Promise<T>;
32
32
  all<T = unknown>(query: SQL): Promise<T[]>;
33
+ count(sql: SQL): Promise<number>;
33
34
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
34
35
  }
35
36
  export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {
@@ -30,6 +30,7 @@ export declare abstract class PgSession<TQueryResult extends PgQueryResultHKT =
30
30
  abstract prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, isResponseInArrayMode: boolean, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => T['execute']): PgPreparedQuery<T>;
31
31
  execute<T>(query: SQL): Promise<T>;
32
32
  all<T = unknown>(query: SQL): Promise<T[]>;
33
+ count(sql: SQL): Promise<number>;
33
34
  abstract transaction<T>(transaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>, config?: PgTransactionConfig): Promise<T>;
34
35
  }
35
36
  export declare abstract class PgTransaction<TQueryResult extends PgQueryResultHKT, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {
@@ -43,6 +43,12 @@ class PgSession {
43
43
  false
44
44
  ).all();
45
45
  }
46
+ async count(sql2) {
47
+ const res = await this.execute(sql2);
48
+ return Number(
49
+ res[0]["count"]
50
+ );
51
+ }
46
52
  }
47
53
  class PgTransaction extends PgDatabase {
48
54
  constructor(dialect, session, schema, nestedIndex = 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAGzC,SAA+B,WAAW;AAC1C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,UAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,OAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAMD;AAEO,MAAe,sBAIZ,WAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,UAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,sBAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { type Query, type SQL, sql } from '~/sql/index.ts';\nimport { tracer } from '~/tracing.ts';\nimport { PgDatabase } from './db.ts';\nimport type { PgDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\tall: unknown;\n\tvalues: unknown;\n}\n\nexport abstract class PgPreparedQuery<T extends PreparedQueryConfig> implements PreparedQuery {\n\tconstructor(protected query: Query) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tmapResult(response: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn response;\n\t}\n\n\tstatic readonly [entityKind]: string = 'PgPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\t/** @internal */\n\tabstract all(placeholderValues?: Record<string, unknown>): Promise<T['all']>;\n\n\t/** @internal */\n\tabstract isResponseInArrayMode(): boolean;\n}\n\nexport interface PgTransactionConfig {\n\tisolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';\n\taccessMode?: 'read only' | 'read write';\n\tdeferrable?: boolean;\n}\n\nexport abstract class PgSession<\n\tTQueryResult extends PgQueryResultHKT = PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'PgSession';\n\n\tconstructor(protected dialect: PgDialect) {}\n\n\tabstract prepareQuery<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[][], mapColumnValue?: (value: unknown) => unknown) => T['execute'],\n\t): PgPreparedQuery<T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\tconst prepared = tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }>(\n\t\t\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn prepared.execute();\n\t\t});\n\t}\n\n\tall<T = unknown>(query: SQL): Promise<T[]> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { all: T[] }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t).all();\n\t}\n\n\tasync count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<[{ count: string }]>(sql);\n\n\t\treturn Number(\n\t\t\tres[0]['count'],\n\t\t);\n\t}\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig,\n\t): Promise<T>;\n}\n\nexport abstract class PgTransaction<\n\tTQueryResult extends PgQueryResultHKT,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends PgDatabase<TQueryResult, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgTransaction';\n\n\tconstructor(\n\t\tdialect: PgDialect,\n\t\tsession: PgSession<any, any, any>,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record<string, unknown>;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record<string, string>;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** @internal */\n\tgetTransactionConfigSQL(config: PgTransactionConfig): SQL {\n\t\tconst chunks: string[] = [];\n\t\tif (config.isolationLevel) {\n\t\t\tchunks.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\t\tif (config.accessMode) {\n\t\t\tchunks.push(config.accessMode);\n\t\t}\n\t\tif (typeof config.deferrable === 'boolean') {\n\t\t\tchunks.push(config.deferrable ? 'deferrable' : 'not deferrable');\n\t\t}\n\t\treturn sql.raw(chunks.join(' '));\n\t}\n\n\tsetTransaction(config: PgTransactionConfig): Promise<void> {\n\t\treturn this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(config)}`);\n\t}\n\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: PgTransaction<TQueryResult, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PgQueryResultHKT {\n\treadonly $brand: 'PgQueryResultHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport type PgQueryResultKind<TKind extends PgQueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC;AAGzC,SAA+B,WAAW;AAC1C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAUpB,MAAe,gBAAwE;AAAA,EAC7F,YAAsB,OAAc;AAAd;AAAA,EAAe;AAAA,EAErC,WAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,UAAmB,cAAiC;AAC7D,WAAO;AAAA,EACR;AAAA,EAEA,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC;AASD;AAQO,MAAe,UAIpB;AAAA,EAGD,YAAsB,SAAoB;AAApB;AAAA,EAAqB;AAAA,EAF3C,QAAiB,UAAU,IAAY;AAAA,EAYvC,QAAW,OAAwB;AAClC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,YAAM,WAAW,OAAO,gBAAgB,wBAAwB,MAAM;AACrE,eAAO,KAAK;AAAA,UACX,KAAK,QAAQ,WAAW,KAAK;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAED,aAAO,SAAS,QAAQ;AAAA,IACzB,CAAC;AAAA,EACF;AAAA,EAEA,IAAiB,OAA0B;AAC1C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE,IAAI;AAAA,EACP;AAAA,EAEA,MAAM,MAAMA,MAA2B;AACtC,UAAM,MAAM,MAAM,KAAK,QAA6BA,IAAG;AAEvD,WAAO;AAAA,MACN,IAAI,CAAC,EAAE,OAAO;AAAA,IACf;AAAA,EACD;AAMD;AAEO,MAAe,sBAIZ,WAA+C;AAAA,EAGxD,YACC,SACA,SACU,QAKS,cAAc,GAChC;AACD,UAAM,SAAS,SAAS,MAAM;AAPpB;AAKS;AAAA,EAGpB;AAAA,EAbA,QAAiB,UAAU,IAAY;AAAA,EAevC,WAAkB;AACjB,UAAM,IAAI,yBAAyB;AAAA,EACpC;AAAA;AAAA,EAGA,wBAAwB,QAAkC;AACzD,UAAM,SAAmB,CAAC;AAC1B,QAAI,OAAO,gBAAgB;AAC1B,aAAO,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACvD;AACA,QAAI,OAAO,YAAY;AACtB,aAAO,KAAK,OAAO,UAAU;AAAA,IAC9B;AACA,QAAI,OAAO,OAAO,eAAe,WAAW;AAC3C,aAAO,KAAK,OAAO,aAAa,eAAe,gBAAgB;AAAA,IAChE;AACA,WAAO,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAAA,EAChC;AAAA,EAEA,eAAe,QAA4C;AAC1D,WAAO,KAAK,QAAQ,QAAQ,sBAAsB,KAAK,wBAAwB,MAAM,CAAC,EAAE;AAAA,EACzF;AAKD;","names":["sql"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase<PgColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<T extends TableConfig> =\n\t& PgTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AAoB5E,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AACF;AAWO,SAAS,kBAKf,MACA,SACA,aACA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AAkBO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy\n>;\n\nexport type TableConfig = TableConfigBase<PgColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<T extends TableConfig> =\n\t& PgTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AAsB5E,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,gBAAqD,mBAAS;AAAA,EAC1E,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,mBAAM,OAAO,kBAAkB,IACxC;AACF;AAWO,SAAS,kBAKf,MACA,SACA,aACA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AAkBO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
@@ -5,9 +5,10 @@ import type { CheckBuilder } from "./checks.cjs";
5
5
  import type { PgColumn, PgColumnBuilderBase } from "./columns/common.cjs";
6
6
  import type { ForeignKeyBuilder } from "./foreign-keys.cjs";
7
7
  import type { AnyIndexBuilder } from "./indexes.cjs";
8
+ import type { PgPolicy } from "./policies.cjs";
8
9
  import type { PrimaryKeyBuilder } from "./primary-keys.cjs";
9
10
  import type { UniqueConstraintBuilder } from "./unique-constraint.cjs";
10
- export type PgTableExtraConfig = Record<string, AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder>;
11
+ export type PgTableExtraConfig = Record<string, AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder | PgPolicy>;
11
12
  export type TableConfig = TableConfigBase<PgColumn>;
12
13
  export declare class PgTable<T extends TableConfig = TableConfig> extends Table<T> {
13
14
  static readonly [entityKind]: string;
@@ -5,9 +5,10 @@ import type { CheckBuilder } from "./checks.js";
5
5
  import type { PgColumn, PgColumnBuilderBase } from "./columns/common.js";
6
6
  import type { ForeignKeyBuilder } from "./foreign-keys.js";
7
7
  import type { AnyIndexBuilder } from "./indexes.js";
8
+ import type { PgPolicy } from "./policies.js";
8
9
  import type { PrimaryKeyBuilder } from "./primary-keys.js";
9
10
  import type { UniqueConstraintBuilder } from "./unique-constraint.js";
10
- export type PgTableExtraConfig = Record<string, AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder>;
11
+ export type PgTableExtraConfig = Record<string, AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder | PgPolicy>;
11
12
  export type TableConfig = TableConfigBase<PgColumn>;
12
13
  export declare class PgTable<T extends TableConfig = TableConfig> extends Table<T> {
13
14
  static readonly [entityKind]: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase<PgColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<T extends TableConfig> =\n\t& PgTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,aAA0E;AAoB5E,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,gBAAqD,MAAS;AAAA,EAC1E,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,MAAM,OAAO,kBAAkB,IACxC;AACF;AAWO,SAAS,kBAKf,MACA,SACA,aACA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AAkBO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
1
+ {"version":3,"sources":["../../src/pg-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PgPolicy } from './policies.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n\t| PgPolicy\n>;\n\nexport type TableConfig = TableConfigBase<PgColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record<string, PgColumn>) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable<TPartial extends Partial<TableConfig> = {}> = PgTable<UpdateTableConfig<TableConfig, TPartial>>;\n\nexport type PgTableWithColumns<T extends TableConfig> =\n\t& PgTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst builtColumnsForExtraConfig = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.buildExtraConfigColumn(rawTable);\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumnsForExtraConfig;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn<TSchema extends string | undefined = undefined> {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, PgColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'pg'>) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'pg'>;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,aAA0E;AAsB5E,MAAM,oBAAoB,OAAO,IAAI,6BAA6B;AAElE,MAAM,gBAAqD,MAAS;AAAA,EAC1E,QAAiB,UAAU,IAAY;AAAA;AAAA,EAGvC,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,MAAM,OAAO,kBAAkB,IACxC;AACF;AAWO,SAAS,kBAKf,MACA,SACA,aACA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,QAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,6BAA6B,OAAO;AAAA,IACzC,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AACvD,YAAM,aAAa;AACnB,YAAM,SAAS,WAAW,uBAAuB,QAAQ;AACzD,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAEzC,MAAI,aAAa;AAChB,UAAM,QAAQ,OAAO,kBAAkB,IAAI;AAAA,EAC5C;AAEA,SAAO;AACR;AAkBO,MAAM,UAAqB,CAAC,MAAM,SAAS,gBAAgB;AACjE,SAAO,kBAAkB,MAAM,SAAS,aAAa,MAAS;AAC/D;AAEO,SAAS,eAAe,oBAAyD;AACvF,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,kBAAkB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EACxG;AACD;","names":["name"]}
package/pg-core/utils.cjs CHANGED
@@ -30,10 +30,27 @@ var import_view_common = require("../view-common.cjs");
30
30
  var import_checks = require("./checks.cjs");
31
31
  var import_foreign_keys = require("./foreign-keys.cjs");
32
32
  var import_indexes = require("./indexes.cjs");
33
+ var import_policies = require("./policies.cjs");
33
34
  var import_primary_keys = require("./primary-keys.cjs");
34
35
  var import_unique_constraint = require("./unique-constraint.cjs");
35
36
  var import_view_common2 = require("./view-common.cjs");
36
37
  var import_view = require("./view.cjs");
38
+ function flattenValues(obj) {
39
+ const values = [];
40
+ for (const key in obj) {
41
+ if (typeof obj[key] === "object" && obj[key] !== null) {
42
+ const internalNestedKeys = Object.keys(obj[key]).filter((it) => it.startsWith("_drizzle_internal"));
43
+ if (internalNestedKeys.length > 0) {
44
+ for (const nestedKey of internalNestedKeys) {
45
+ values.push(obj[key][nestedKey]);
46
+ }
47
+ } else {
48
+ values.push(obj[key]);
49
+ }
50
+ }
51
+ }
52
+ return values;
53
+ }
37
54
  function getTableConfig(table) {
38
55
  const columns = Object.values(table[import_table2.Table.Symbol.Columns]);
39
56
  const indexes = [];
@@ -43,10 +60,11 @@ function getTableConfig(table) {
43
60
  const uniqueConstraints = [];
44
61
  const name = table[import_table2.Table.Symbol.Name];
45
62
  const schema = table[import_table2.Table.Symbol.Schema];
63
+ const policies = [];
46
64
  const extraConfigBuilder = table[import_table.PgTable.Symbol.ExtraConfigBuilder];
47
65
  if (extraConfigBuilder !== void 0) {
48
66
  const extraConfig = extraConfigBuilder(table[import_table2.Table.Symbol.ExtraConfigColumns]);
49
- for (const builder of Object.values(extraConfig)) {
67
+ for (const builder of flattenValues(extraConfig)) {
50
68
  if ((0, import_entity.is)(builder, import_indexes.IndexBuilder)) {
51
69
  indexes.push(builder.build(table));
52
70
  } else if ((0, import_entity.is)(builder, import_checks.CheckBuilder)) {
@@ -57,6 +75,8 @@ function getTableConfig(table) {
57
75
  primaryKeys.push(builder.build(table));
58
76
  } else if ((0, import_entity.is)(builder, import_foreign_keys.ForeignKeyBuilder)) {
59
77
  foreignKeys.push(builder.build(table));
78
+ } else if ((0, import_entity.is)(builder, import_policies.PgPolicy)) {
79
+ policies.push(builder);
60
80
  }
61
81
  }
62
82
  }
@@ -68,7 +88,8 @@ function getTableConfig(table) {
68
88
  primaryKeys,
69
89
  uniqueConstraints,
70
90
  name,
71
- schema
91
+ schema,
92
+ policies
72
93
  };
73
94
  }
74
95
  function getViewConfig(view) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyPgColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { PgViewConfig } from './view-common.ts';\nimport { type PgMaterializedView, PgMaterializedViewConfig, type PgView } from './view.ts';\n\nexport function getTableConfig<TTable extends PgTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[PgTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\n\tconst extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tfor (const builder of Object.values(extraConfig)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TForeignTableName }> };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,mBAAwB;AACxB,IAAAA,gBAAsB;AACtB,yBAA+B;AAC/B,oBAAyC;AAEzC,0BAAmD;AAEnD,qBAA6B;AAC7B,0BAAmD;AACnD,+BAA+D;AAC/D,IAAAC,sBAA6B;AAC7B,kBAA+E;AAExE,SAAS,eAAuC,OAAe;AACrE,QAAM,UAAU,OAAO,OAAO,MAAM,oBAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,qBAAQ,OAAO,iBAAiB,CAAC;AACvF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,oBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,oBAAM,OAAO,MAAM;AAExC,QAAM,qBAAqB,MAAM,qBAAQ,OAAO,kBAAkB;AAElE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,oBAAM,OAAO,kBAAkB,CAAC;AAC7E,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAgC;AACjC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,gCAAY;AAAA,EACrB;AACD;AAEO,SAAS,0BAGd,MAA4C;AAC7C,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,oCAAwB;AAAA,EACjC;AACD;","names":["import_table","import_view_common"]}
1
+ {"version":3,"sources":["../../src/pg-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport type { PgTableExtraConfig } from '~/pg-core/table.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyPgColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { PgPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { PgViewConfig } from './view-common.ts';\nimport { type PgMaterializedView, PgMaterializedViewConfig, type PgView } from './view.ts';\n\nfunction flattenValues(obj: Record<string, any>): PgTableExtraConfig[string][] {\n\tconst values = [];\n\tfor (const key in obj) {\n\t\tif (typeof obj[key] === 'object' && obj[key] !== null) {\n\t\t\tconst internalNestedKeys = Object.keys(obj[key]).filter((it) => it.startsWith('_drizzle_internal'));\n\t\t\tif (internalNestedKeys.length > 0) {\n\t\t\t\tfor (const nestedKey of internalNestedKeys) {\n\t\t\t\t\tvalues.push(obj[key][nestedKey]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalues.push(obj[key]);\n\t\t\t}\n\t\t}\n\t}\n\treturn values;\n}\n\nexport function getTableConfig<TTable extends PgTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[PgTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: PgPolicy[] = [];\n\n\tconst extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tfor (const builder of flattenValues(extraConfig)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, PgPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TForeignTableName }> };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AAEnB,mBAAwB;AACxB,IAAAA,gBAAsB;AACtB,yBAA+B;AAC/B,oBAAyC;AAEzC,0BAAmD;AAEnD,qBAA6B;AAC7B,sBAAyB;AACzB,0BAAmD;AACnD,+BAA+D;AAC/D,IAAAC,sBAA6B;AAC7B,kBAA+E;AAE/E,SAAS,cAAc,KAAwD;AAC9E,QAAM,SAAS,CAAC;AAChB,aAAW,OAAO,KAAK;AACtB,QAAI,OAAO,IAAI,GAAG,MAAM,YAAY,IAAI,GAAG,MAAM,MAAM;AACtD,YAAM,qBAAqB,OAAO,KAAK,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,WAAW,mBAAmB,CAAC;AAClG,UAAI,mBAAmB,SAAS,GAAG;AAClC,mBAAW,aAAa,oBAAoB;AAC3C,iBAAO,KAAK,IAAI,GAAG,EAAE,SAAS,CAAC;AAAA,QAChC;AAAA,MACD,OAAO;AACN,eAAO,KAAK,IAAI,GAAG,CAAC;AAAA,MACrB;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,SAAS,eAAuC,OAAe;AACrE,QAAM,UAAU,OAAO,OAAO,MAAM,oBAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,qBAAQ,OAAO,iBAAiB,CAAC;AACvF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,oBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,oBAAM,OAAO,MAAM;AACxC,QAAM,WAAuB,CAAC;AAE9B,QAAM,qBAAqB,MAAM,qBAAQ,OAAO,kBAAkB;AAElE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,oBAAM,OAAO,kBAAkB,CAAC;AAC7E,eAAW,WAAW,cAAc,WAAW,GAAG;AACjD,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,wBAAQ,GAAG;AACjC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAgC;AACjC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,gCAAY;AAAA,EACrB;AACD;AAEO,SAAS,0BAGd,MAA4C;AAC7C,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,oCAAwB;AAAA,EACjC;AACD;","names":["import_table","import_view_common"]}
@@ -4,6 +4,7 @@ import { type Check } from "./checks.cjs";
4
4
  import type { AnyPgColumn } from "./columns/index.cjs";
5
5
  import { type ForeignKey } from "./foreign-keys.cjs";
6
6
  import type { Index } from "./indexes.cjs";
7
+ import { PgPolicy } from "./policies.cjs";
7
8
  import { type PrimaryKey } from "./primary-keys.cjs";
8
9
  import { type UniqueConstraint } from "./unique-constraint.cjs";
9
10
  import { type PgMaterializedView, type PgView } from "./view.cjs";
@@ -16,6 +17,7 @@ export declare function getTableConfig<TTable extends PgTable>(table: TTable): {
16
17
  uniqueConstraints: UniqueConstraint[];
17
18
  name: string;
18
19
  schema: string | undefined;
20
+ policies: PgPolicy[];
19
21
  };
20
22
  export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: PgView<TName, TExisting>): {
21
23
  with?: import("./view.ts").ViewWithConfig | undefined;
@@ -4,6 +4,7 @@ import { type Check } from "./checks.js";
4
4
  import type { AnyPgColumn } from "./columns/index.js";
5
5
  import { type ForeignKey } from "./foreign-keys.js";
6
6
  import type { Index } from "./indexes.js";
7
+ import { PgPolicy } from "./policies.js";
7
8
  import { type PrimaryKey } from "./primary-keys.js";
8
9
  import { type UniqueConstraint } from "./unique-constraint.js";
9
10
  import { type PgMaterializedView, type PgView } from "./view.js";
@@ -16,6 +17,7 @@ export declare function getTableConfig<TTable extends PgTable>(table: TTable): {
16
17
  uniqueConstraints: UniqueConstraint[];
17
18
  name: string;
18
19
  schema: string | undefined;
20
+ policies: PgPolicy[];
19
21
  };
20
22
  export declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: PgView<TName, TExisting>): {
21
23
  with?: import("./view.js").ViewWithConfig | undefined;
package/pg-core/utils.js CHANGED
@@ -5,10 +5,27 @@ import { ViewBaseConfig } from "../view-common.js";
5
5
  import { CheckBuilder } from "./checks.js";
6
6
  import { ForeignKeyBuilder } from "./foreign-keys.js";
7
7
  import { IndexBuilder } from "./indexes.js";
8
+ import { PgPolicy } from "./policies.js";
8
9
  import { PrimaryKeyBuilder } from "./primary-keys.js";
9
10
  import { UniqueConstraintBuilder } from "./unique-constraint.js";
10
11
  import { PgViewConfig } from "./view-common.js";
11
12
  import { PgMaterializedViewConfig } from "./view.js";
13
+ function flattenValues(obj) {
14
+ const values = [];
15
+ for (const key in obj) {
16
+ if (typeof obj[key] === "object" && obj[key] !== null) {
17
+ const internalNestedKeys = Object.keys(obj[key]).filter((it) => it.startsWith("_drizzle_internal"));
18
+ if (internalNestedKeys.length > 0) {
19
+ for (const nestedKey of internalNestedKeys) {
20
+ values.push(obj[key][nestedKey]);
21
+ }
22
+ } else {
23
+ values.push(obj[key]);
24
+ }
25
+ }
26
+ }
27
+ return values;
28
+ }
12
29
  function getTableConfig(table) {
13
30
  const columns = Object.values(table[Table.Symbol.Columns]);
14
31
  const indexes = [];
@@ -18,10 +35,11 @@ function getTableConfig(table) {
18
35
  const uniqueConstraints = [];
19
36
  const name = table[Table.Symbol.Name];
20
37
  const schema = table[Table.Symbol.Schema];
38
+ const policies = [];
21
39
  const extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];
22
40
  if (extraConfigBuilder !== void 0) {
23
41
  const extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);
24
- for (const builder of Object.values(extraConfig)) {
42
+ for (const builder of flattenValues(extraConfig)) {
25
43
  if (is(builder, IndexBuilder)) {
26
44
  indexes.push(builder.build(table));
27
45
  } else if (is(builder, CheckBuilder)) {
@@ -32,6 +50,8 @@ function getTableConfig(table) {
32
50
  primaryKeys.push(builder.build(table));
33
51
  } else if (is(builder, ForeignKeyBuilder)) {
34
52
  foreignKeys.push(builder.build(table));
53
+ } else if (is(builder, PgPolicy)) {
54
+ policies.push(builder);
35
55
  }
36
56
  }
37
57
  }
@@ -43,7 +63,8 @@ function getTableConfig(table) {
43
63
  primaryKeys,
44
64
  uniqueConstraints,
45
65
  name,
46
- schema
66
+ schema,
67
+ policies
47
68
  };
48
69
  }
49
70
  function getViewConfig(view) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyPgColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { PgViewConfig } from './view-common.ts';\nimport { type PgMaterializedView, PgMaterializedViewConfig, type PgView } from './view.ts';\n\nexport function getTableConfig<TTable extends PgTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[PgTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\n\tconst extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tfor (const builder of Object.values(extraConfig)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TForeignTableName }> };\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B,SAAqB,oBAAoB;AAEzC,SAA0B,yBAAyB;AAEnD,SAAS,oBAAoB;AAC7B,SAA0B,yBAAyB;AACnD,SAAgC,+BAA+B;AAC/D,SAAS,oBAAoB;AAC7B,SAAkC,gCAA6C;AAExE,SAAS,eAAuC,OAAe;AACrE,QAAM,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,QAAQ,OAAO,iBAAiB,CAAC;AACvF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AAExC,QAAM,qBAAqB,MAAM,QAAQ,OAAO,kBAAkB;AAElE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,MAAM,OAAO,kBAAkB,CAAC;AAC7E,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAgC;AACjC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,YAAY;AAAA,EACrB;AACD;AAEO,SAAS,0BAGd,MAA4C;AAC7C,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,wBAAwB;AAAA,EACjC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport type { PgTableExtraConfig } from '~/pg-core/table.ts';\nimport { PgTable } from '~/pg-core/table.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { type Check, CheckBuilder } from './checks.ts';\nimport type { AnyPgColumn } from './columns/index.ts';\nimport { type ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport { PgPolicy } from './policies.ts';\nimport { type PrimaryKey, PrimaryKeyBuilder } from './primary-keys.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { PgViewConfig } from './view-common.ts';\nimport { type PgMaterializedView, PgMaterializedViewConfig, type PgView } from './view.ts';\n\nfunction flattenValues(obj: Record<string, any>): PgTableExtraConfig[string][] {\n\tconst values = [];\n\tfor (const key in obj) {\n\t\tif (typeof obj[key] === 'object' && obj[key] !== null) {\n\t\t\tconst internalNestedKeys = Object.keys(obj[key]).filter((it) => it.startsWith('_drizzle_internal'));\n\t\t\tif (internalNestedKeys.length > 0) {\n\t\t\t\tfor (const nestedKey of internalNestedKeys) {\n\t\t\t\t\tvalues.push(obj[key][nestedKey]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalues.push(obj[key]);\n\t\t\t}\n\t\t}\n\t}\n\treturn values;\n}\n\nexport function getTableConfig<TTable extends PgTable>(table: TTable) {\n\tconst columns = Object.values(table[Table.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[PgTable.Symbol.InlineForeignKeys]);\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst policies: PgPolicy[] = [];\n\n\tconst extraConfigBuilder = table[PgTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[Table.Symbol.ExtraConfigColumns]);\n\t\tfor (const builder of flattenValues(extraConfig)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, PgPolicy)) {\n\t\t\t\tpolicies.push(builder);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tpolicies,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgViewConfig],\n\t};\n}\n\nexport function getMaterializedViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: PgMaterializedView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[PgMaterializedViewConfig],\n\t};\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TForeignTableName }> };\n"],"mappings":"AAAA,SAAS,UAAU;AAEnB,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B,SAAqB,oBAAoB;AAEzC,SAA0B,yBAAyB;AAEnD,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AACzB,SAA0B,yBAAyB;AACnD,SAAgC,+BAA+B;AAC/D,SAAS,oBAAoB;AAC7B,SAAkC,gCAA6C;AAE/E,SAAS,cAAc,KAAwD;AAC9E,QAAM,SAAS,CAAC;AAChB,aAAW,OAAO,KAAK;AACtB,QAAI,OAAO,IAAI,GAAG,MAAM,YAAY,IAAI,GAAG,MAAM,MAAM;AACtD,YAAM,qBAAqB,OAAO,KAAK,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,WAAW,mBAAmB,CAAC;AAClG,UAAI,mBAAmB,SAAS,GAAG;AAClC,mBAAW,aAAa,oBAAoB;AAC3C,iBAAO,KAAK,IAAI,GAAG,EAAE,SAAS,CAAC;AAAA,QAChC;AAAA,MACD,OAAO;AACN,eAAO,KAAK,IAAI,GAAG,CAAC;AAAA,MACrB;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,SAAS,eAAuC,OAAe;AACrE,QAAM,UAAU,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AACzD,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,cAA4B,OAAO,OAAO,MAAM,QAAQ,OAAO,iBAAiB,CAAC;AACvF,QAAM,oBAAwC,CAAC;AAC/C,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AACxC,QAAM,WAAuB,CAAC;AAE9B,QAAM,qBAAqB,MAAM,QAAQ,OAAO,kBAAkB;AAElE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,MAAM,OAAO,kBAAkB,CAAC;AAC7E,eAAW,WAAW,cAAc,WAAW,GAAG;AACjD,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,QAAQ,GAAG;AACjC,iBAAS,KAAK,OAAO;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAgC;AACjC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,YAAY;AAAA,EACrB;AACD;AAEO,SAAS,0BAGd,MAA4C;AAC7C,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,wBAAwB;AAAA,EACjC;AACD;","names":[]}
@@ -18,14 +18,19 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var driver_exports = {};
20
20
  __export(driver_exports, {
21
+ PgRemoteDatabase: () => PgRemoteDatabase,
21
22
  drizzle: () => drizzle
22
23
  });
23
24
  module.exports = __toCommonJS(driver_exports);
25
+ var import_entity = require("../entity.cjs");
24
26
  var import_logger = require("../logger.cjs");
25
27
  var import_db = require("../pg-core/db.cjs");
26
28
  var import_dialect = require("../pg-core/dialect.cjs");
27
29
  var import_relations = require("../relations.cjs");
28
30
  var import_session = require("./session.cjs");
31
+ class PgRemoteDatabase extends import_db.PgDatabase {
32
+ static [import_entity.entityKind] = "PgRemoteDatabase";
33
+ }
29
34
  function drizzle(callback, config = {}, _dialect = () => new import_dialect.PgDialect()) {
30
35
  const dialect = _dialect();
31
36
  let logger;
@@ -47,10 +52,11 @@ function drizzle(callback, config = {}, _dialect = () => new import_dialect.PgDi
47
52
  };
48
53
  }
49
54
  const session = new import_session.PgRemoteSession(callback, dialect, schema, { logger });
50
- return new import_db.PgDatabase(dialect, session, schema);
55
+ return new PgRemoteDatabase(dialect, session, schema);
51
56
  }
52
57
  // Annotate the CommonJS export names for ESM import in node:
53
58
  0 && (module.exports = {
59
+ PgRemoteDatabase,
54
60
  drizzle
55
61
  });
56
62
  //# sourceMappingURL=driver.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-proxy/driver.ts"],"sourcesContent":["import { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type PgRemoteQueryResultHKT, PgRemoteSession } from './session.ts';\n\nexport type PgRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = PgDatabase<PgRemoteQueryResultHKT, TSchema>;\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n\ttypings?: any[],\n) => Promise<{ rows: any[] }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n\t_dialect: () => PgDialect = () => new PgDialect(),\n): PgRemoteDatabase<TSchema> {\n\tconst dialect = _dialect();\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\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 session = new PgRemoteSession(callback, dialect, schema, { logger });\n\treturn new PgDatabase(dialect, session, schema) as PgRemoteDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAEP,qBAA6D;AAatD,SAAS,QACf,UACA,SAAiC,CAAC,GAClC,WAA4B,MAAM,IAAI,yBAAU,GACpB;AAC5B,QAAM,UAAU,SAAS;AACzB,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,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,+BAAgB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,qBAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-proxy/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type PgRemoteQueryResultHKT, PgRemoteSession } from './session.ts';\n\nexport class PgRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgRemoteQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n\ttypings?: any[],\n) => Promise<{ rows: any[] }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n\t_dialect: () => PgDialect = () => new PgDialect(),\n): PgRemoteDatabase<TSchema> {\n\tconst dialect = _dialect();\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\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 session = new PgRemoteSession(callback, dialect, schema, { logger });\n\treturn new PgRemoteDatabase(dialect, session, schema as any) as PgRemoteDatabase<TSchema>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAEP,qBAA6D;AAEtD,MAAM,yBAEH,qBAA4C;AAAA,EACrD,QAAiB,wBAAU,IAAY;AACxC;AASO,SAAS,QACf,UACA,SAAiC,CAAC,GAClC,WAA4B,MAAM,IAAI,yBAAU,GACpB;AAC5B,QAAM,UAAU,SAAS;AACzB,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,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,+BAAgB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,iBAAiB,SAAS,SAAS,MAAa;AAC5D;","names":[]}
@@ -1,8 +1,11 @@
1
+ import { entityKind } from "../entity.cjs";
1
2
  import { PgDatabase } from "../pg-core/db.cjs";
2
3
  import { PgDialect } from "../pg-core/dialect.cjs";
3
4
  import type { DrizzleConfig } from "../utils.cjs";
4
5
  import { type PgRemoteQueryResultHKT } from "./session.cjs";
5
- export type PgRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<PgRemoteQueryResultHKT, TSchema>;
6
+ export declare class PgRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PgRemoteQueryResultHKT, TSchema> {
7
+ static readonly [entityKind]: string;
8
+ }
6
9
  export type RemoteCallback = (sql: string, params: any[], method: 'all' | 'execute', typings?: any[]) => Promise<{
7
10
  rows: any[];
8
11
  }>;
@@ -1,8 +1,11 @@
1
+ import { entityKind } from "../entity.js";
1
2
  import { PgDatabase } from "../pg-core/db.js";
2
3
  import { PgDialect } from "../pg-core/dialect.js";
3
4
  import type { DrizzleConfig } from "../utils.js";
4
5
  import { type PgRemoteQueryResultHKT } from "./session.js";
5
- export type PgRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<PgRemoteQueryResultHKT, TSchema>;
6
+ export declare class PgRemoteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PgRemoteQueryResultHKT, TSchema> {
7
+ static readonly [entityKind]: string;
8
+ }
6
9
  export type RemoteCallback = (sql: string, params: any[], method: 'all' | 'execute', typings?: any[]) => Promise<{
7
10
  rows: any[];
8
11
  }>;
@@ -1,3 +1,4 @@
1
+ import { entityKind } from "../entity.js";
1
2
  import { DefaultLogger } from "../logger.js";
2
3
  import { PgDatabase } from "../pg-core/db.js";
3
4
  import { PgDialect } from "../pg-core/dialect.js";
@@ -6,6 +7,9 @@ import {
6
7
  extractTablesRelationalConfig
7
8
  } from "../relations.js";
8
9
  import { PgRemoteSession } from "./session.js";
10
+ class PgRemoteDatabase extends PgDatabase {
11
+ static [entityKind] = "PgRemoteDatabase";
12
+ }
9
13
  function drizzle(callback, config = {}, _dialect = () => new PgDialect()) {
10
14
  const dialect = _dialect();
11
15
  let logger;
@@ -27,9 +31,10 @@ function drizzle(callback, config = {}, _dialect = () => new PgDialect()) {
27
31
  };
28
32
  }
29
33
  const session = new PgRemoteSession(callback, dialect, schema, { logger });
30
- return new PgDatabase(dialect, session, schema);
34
+ return new PgRemoteDatabase(dialect, session, schema);
31
35
  }
32
36
  export {
37
+ PgRemoteDatabase,
33
38
  drizzle
34
39
  };
35
40
  //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/pg-proxy/driver.ts"],"sourcesContent":["import { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type PgRemoteQueryResultHKT, PgRemoteSession } from './session.ts';\n\nexport type PgRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> = PgDatabase<PgRemoteQueryResultHKT, TSchema>;\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n\ttypings?: any[],\n) => Promise<{ rows: any[] }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n\t_dialect: () => PgDialect = () => new PgDialect(),\n): PgRemoteDatabase<TSchema> {\n\tconst dialect = _dialect();\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\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 session = new PgRemoteSession(callback, dialect, schema, { logger });\n\treturn new PgDatabase(dialect, session, schema) as PgRemoteDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAAsC,uBAAuB;AAatD,SAAS,QACf,UACA,SAAiC,CAAC,GAClC,WAA4B,MAAM,IAAI,UAAU,GACpB;AAC5B,QAAM,UAAU,SAAS;AACzB,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;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,gBAAgB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,WAAW,SAAS,SAAS,MAAM;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../../src/pg-proxy/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type PgRemoteQueryResultHKT, PgRemoteSession } from './session.ts';\n\nexport class PgRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PgRemoteQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PgRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n\ttypings?: any[],\n) => Promise<{ rows: any[] }>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema> = {},\n\t_dialect: () => PgDialect = () => new PgDialect(),\n): PgRemoteDatabase<TSchema> {\n\tconst dialect = _dialect();\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\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 session = new PgRemoteSession(callback, dialect, schema, { logger });\n\treturn new PgRemoteDatabase(dialect, session, schema as any) as PgRemoteDatabase<TSchema>;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAAsC,uBAAuB;AAEtD,MAAM,yBAEH,WAA4C;AAAA,EACrD,QAAiB,UAAU,IAAY;AACxC;AASO,SAAS,QACf,UACA,SAAiC,CAAC,GAClC,WAA4B,MAAM,IAAI,UAAU,GACpB;AAC5B,QAAM,UAAU,SAAS;AACzB,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;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,gBAAgB,UAAU,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,SAAO,IAAI,iBAAiB,SAAS,SAAS,MAAa;AAC5D;","names":[]}