@xata.io/drizzle 0.0.0-alpha.v9b9dc7489ac0f2687c5e38432eee0508584862d5 → 0.0.0-alpha.v9c437d01e38be209775e0637bab48e12c0f21586

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.
@@ -1,14 +1,14 @@
1
1
 
2
- > @xata.io/drizzle@0.0.12 build /home/runner/work/client-ts/client-ts/packages/plugin-client-drizzle
2
+ > @xata.io/drizzle@0.0.16 build /home/runner/work/client-ts/client-ts/packages/plugin-client-drizzle
3
3
  > rimraf dist && rollup -c
4
4
 
5
5
  
6
6
  src/index.ts → dist/index.cjs, dist/index.mjs...
7
7
  (!) Unresolved dependencies
8
8
  https://rollupjs.org/troubleshooting/#warning-treating-module-as-external-dependency
9
- drizzle-orm (imported by "src/driver.ts", "src/session.ts" and "src/utils.ts")
10
- drizzle-orm/pg-core (imported by "src/driver.ts", "src/session.ts" and "src/generate.ts")
11
- created dist/index.cjs, dist/index.mjs in 536ms
9
+ drizzle-orm (imported by "src/http/session.ts", "src/http/driver.ts" and "src/shared/utils.ts")
10
+ drizzle-orm/pg-core (imported by "src/http/session.ts" and "src/http/driver.ts")
11
+ created dist/index.cjs, dist/index.mjs in 442ms
12
12
  
13
13
  src/index.ts → dist/index.d.ts...
14
- created dist/index.d.ts in 6.1s
14
+ created dist/index.d.ts in 5.9s
package/CHANGELOG.md CHANGED
@@ -1,11 +1,45 @@
1
1
  # @xata.io/drizzle
2
2
 
3
- ## 0.0.0-alpha.v9b9dc7489ac0f2687c5e38432eee0508584862d5
3
+ ## 0.0.0-alpha.v9c437d01e38be209775e0637bab48e12c0f21586
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Updated dependencies []:
8
- - @xata.io/client@0.0.0-alpha.v9b9dc7489ac0f2687c5e38432eee0508584862d5
7
+ - Force canary build
8
+
9
+ - Updated dependencies [[`212b53d`](https://github.com/xataio/client-ts/commit/212b53d07498def0d2ed8942691eff982e448969), [`9fd8c42`](https://github.com/xataio/client-ts/commit/9fd8c428d71b476f1951123c6cba5e803b983e54)]:
10
+ - @xata.io/client@0.0.0-alpha.v9c437d01e38be209775e0637bab48e12c0f21586
11
+
12
+ ## 0.0.16
13
+
14
+ ### Patch Changes
15
+
16
+ - [#1329](https://github.com/xataio/client-ts/pull/1329) [`0ec026a`](https://github.com/xataio/client-ts/commit/0ec026a92bdb1a405cb9d90cb1d506ff159f98e8) Thanks [@eemmiillyy](https://github.com/eemmiillyy)! - Remove object column type
17
+
18
+ - Updated dependencies [[`0ec026a`](https://github.com/xataio/client-ts/commit/0ec026a92bdb1a405cb9d90cb1d506ff159f98e8), [`6414bd3`](https://github.com/xataio/client-ts/commit/6414bd3d8bdb84961e68968df4b0b025503f0d72), [`27773df`](https://github.com/xataio/client-ts/commit/27773df5addf0013d1a7238ac490904e7aad2334)]:
19
+ - @xata.io/client@0.29.0
20
+
21
+ ## 0.0.15
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [[`adc961b`](https://github.com/xataio/client-ts/commit/adc961b886b789010e6512c17cb2377eceab665a), [`6031a9d`](https://github.com/xataio/client-ts/commit/6031a9de63c264b7db5b031bb1795258c2bf8150)]:
26
+ - @xata.io/client@0.28.4
27
+
28
+ ## 0.0.14
29
+
30
+ ### Patch Changes
31
+
32
+ - [#1302](https://github.com/xataio/client-ts/pull/1302) [`181e3e3`](https://github.com/xataio/client-ts/commit/181e3e3c578334351050ccfdc1d4d9134e2a859c) Thanks [@eemmiillyy](https://github.com/eemmiillyy)! - fix: drizzle internal columns
33
+
34
+ - Updated dependencies [[`b7f3ec9`](https://github.com/xataio/client-ts/commit/b7f3ec9eabe3642929131e244bd774f4d3134482)]:
35
+ - @xata.io/client@0.28.3
36
+
37
+ ## 0.0.13
38
+
39
+ ### Patch Changes
40
+
41
+ - Updated dependencies [[`c9178e1`](https://github.com/xataio/client-ts/commit/c9178e1e3f2268513e78dcfce396a99a8fca5dfb)]:
42
+ - @xata.io/client@0.28.2
9
43
 
10
44
  ## 0.0.12
11
45
 
package/dist/index.cjs CHANGED
@@ -45,73 +45,44 @@ function mapResultRow(columns, row, joinsNotNullableMap) {
45
45
  }
46
46
  return result;
47
47
  }
48
- const exhaustiveCheck = (x) => {
49
- throw new Error(`Unhandled discriminated union member: ${x}`);
50
- };
51
48
 
52
- var _a, _b;
53
- class XataPreparedQuery extends pgCore.PreparedQuery {
49
+ var _a$1, _b, _c;
50
+ class XataHttpPreparedQuery extends pgCore.PreparedQuery {
54
51
  constructor(client, queryString, params, logger, fields, name, customResultMapper) {
55
52
  super();
56
53
  this.client = client;
54
+ this.queryString = queryString;
57
55
  this.params = params;
58
56
  this.logger = logger;
59
57
  this.fields = fields;
58
+ this.name = name;
60
59
  this.customResultMapper = customResultMapper;
61
- this.query = {
62
- name,
63
- statement: queryString
64
- };
65
60
  }
66
61
  async execute(placeholderValues = {}) {
67
62
  const params = drizzleOrm.fillPlaceholders(this.params, placeholderValues);
68
- this.logger.logQuery(this.query.statement, params);
69
- const { records = [], warning } = await this.client.sql({
70
- statement: this.query.statement,
71
- params
72
- });
73
- const fields = this.fields ?? Object.keys(records[0]).map(
74
- (key) => ({
75
- path: [key],
76
- field: {
77
- sql: {
78
- decoder: {
79
- mapFromDriverValue: (value) => value
80
- }
81
- }
82
- }
83
- })
84
- );
85
- if (warning)
86
- console.warn(warning);
87
- const rows = records.map((record) => fields.map((field) => record[field.path.join(".")]));
88
- if (this.customResultMapper) {
89
- return this.customResultMapper(rows);
63
+ this.logger.logQuery(this.queryString, params);
64
+ const { fields, client, queryString, customResultMapper } = this;
65
+ if (!fields && !customResultMapper) {
66
+ return client.sql({ statement: queryString, params });
90
67
  }
91
- return rows.map((row) => mapResultRow(fields, row, void 0));
68
+ const result = await client.sql({ statement: queryString, params });
69
+ const joinsNotNullableMap = this.joinsNotNullableMap;
70
+ return customResultMapper ? customResultMapper(result.records) : result.records.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
92
71
  }
93
- async all(placeholderValues = {}) {
72
+ all(placeholderValues = {}) {
94
73
  const params = drizzleOrm.fillPlaceholders(this.params, placeholderValues);
95
- this.logger.logQuery(this.query.statement, params);
96
- const { records } = await this.client.sql({
97
- statement: this.query.statement,
98
- params
99
- });
100
- return records;
74
+ this.logger.logQuery(this.queryString, params);
75
+ return this.client.sql({ statement: this.queryString, params }).then((result) => result.records);
101
76
  }
102
- async values(placeholderValues = {}) {
77
+ values(placeholderValues = {}) {
103
78
  const params = drizzleOrm.fillPlaceholders(this.params, placeholderValues);
104
- this.logger.logQuery(this.query.statement, params);
105
- const { records } = await this.client.sql({
106
- statement: this.query.statement,
107
- params
108
- });
109
- return records;
79
+ this.logger.logQuery(this.queryString, params);
80
+ return this.client.sql({ statement: this.queryString, params }).then((result) => result.records);
110
81
  }
111
82
  }
112
- _a = drizzleOrm.entityKind;
113
- XataPreparedQuery[_a] = "VercelPgPreparedQuery";
114
- class XataSession extends pgCore.PgSession {
83
+ _a$1 = drizzleOrm.entityKind;
84
+ XataHttpPreparedQuery[_a$1] = "XataHttpPreparedQuery";
85
+ class XataHttpSession extends pgCore.PgSession {
115
86
  constructor(client, dialect, schema, options = {}) {
116
87
  super(dialect);
117
88
  this.client = client;
@@ -120,22 +91,56 @@ class XataSession extends pgCore.PgSession {
120
91
  this.logger = options.logger ?? new drizzleOrm.NoopLogger();
121
92
  }
122
93
  prepareQuery(query, fields, name, customResultMapper) {
123
- return new XataPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, customResultMapper);
94
+ return new XataHttpPreparedQuery(
95
+ this.client,
96
+ query.sql,
97
+ query.params,
98
+ this.logger,
99
+ fields,
100
+ name,
101
+ customResultMapper
102
+ );
124
103
  }
125
104
  async query(query, params) {
126
105
  this.logger.logQuery(query, params);
127
- return await this.client.sql({ statement: query, params });
106
+ const result = await this.client.sql({ statement: query, params });
107
+ return result;
128
108
  }
129
109
  async queryObjects(query, params) {
130
110
  return this.client.sql({ statement: query, params });
131
111
  }
132
- async transaction(_transaction, _config) {
133
- throw new Error("Transactions are not supported");
112
+ async transaction(_transaction, _config = {}) {
113
+ throw new Error("No transactions support in xata-http driver");
134
114
  }
135
115
  }
136
116
  _b = drizzleOrm.entityKind;
137
- XataSession[_b] = "VercelPgSession";
117
+ XataHttpSession[_b] = "XataHttpSession";
118
+ class XataTransaction extends pgCore.PgTransaction {
119
+ async transaction(_transaction) {
120
+ throw new Error("No transactions support in xata-http driver");
121
+ }
122
+ }
123
+ _c = drizzleOrm.entityKind;
124
+ XataTransaction[_c] = "XataHttpTransaction";
138
125
 
126
+ var _a;
127
+ class XataHttpDriver {
128
+ constructor(client, dialect, options = {}) {
129
+ this.client = client;
130
+ this.dialect = dialect;
131
+ this.options = options;
132
+ this.initMappers();
133
+ }
134
+ createSession(schema) {
135
+ return new XataHttpSession(this.client, this.dialect, schema, {
136
+ logger: this.options.logger
137
+ });
138
+ }
139
+ initMappers() {
140
+ }
141
+ }
142
+ _a = drizzleOrm.entityKind;
143
+ XataHttpDriver[_a] = "XataDriver";
139
144
  function drizzle(client, config = {}) {
140
145
  const dialect = new pgCore.PgDialect();
141
146
  let logger;
@@ -153,58 +158,14 @@ function drizzle(client, config = {}) {
153
158
  tableNamesMap: tablesConfig.tableNamesMap
154
159
  };
155
160
  }
156
- const session = new XataSession(client, dialect, schema, { logger });
161
+ const driver = new XataHttpDriver(client, dialect, { logger });
162
+ const session = driver.createSession(schema);
157
163
  return new pgCore.PgDatabase(dialect, session, schema);
158
164
  }
159
165
 
160
- function buildColumnType(column) {
161
- switch (column.type) {
162
- case "string":
163
- case "text":
164
- case "email":
165
- case "link":
166
- return pgCore.text(column.name);
167
- case "bool":
168
- return pgCore.boolean(column.name);
169
- case "int":
170
- return pgCore.integer(column.name);
171
- case "float":
172
- return pgCore.decimal(column.name);
173
- case "datetime":
174
- return pgCore.date(column.name);
175
- case "multiple":
176
- case "object":
177
- case "vector":
178
- case "file[]":
179
- case "file":
180
- case "json":
181
- throw new Error(`Unsupported column type: ${column.type}`);
182
- default:
183
- return exhaustiveCheck(column.type);
184
- }
185
- }
186
- function buildColumn(column) {
187
- let type = buildColumnType(column);
188
- if (column.notNull) {
189
- type = type.notNull();
190
- }
191
- if (column.unique) {
192
- type = type.unique();
193
- }
194
- return type;
195
- }
196
- function buildTable(schema) {
197
- const columns = schema.columns.map((column) => [column.name, buildColumn(column)]);
198
- const definition = { id: pgCore.text("id"), ...Object.fromEntries(columns) };
199
- return pgCore.pgTable(schema.name, definition);
200
- }
201
- function buildModels(tables) {
202
- const entries = tables.map((table) => [table.name, buildTable(table)]);
203
- return Object.fromEntries(entries);
204
- }
205
-
206
- exports.XataPreparedQuery = XataPreparedQuery;
207
- exports.XataSession = XataSession;
208
- exports.buildModels = buildModels;
166
+ exports.XataHttpDriver = XataHttpDriver;
167
+ exports.XataHttpPreparedQuery = XataHttpPreparedQuery;
168
+ exports.XataHttpSession = XataHttpSession;
169
+ exports.XataTransaction = XataTransaction;
209
170
  exports.drizzle = drizzle;
210
171
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/utils.ts","../src/session.ts","../src/driver.ts","../src/generate.ts"],"sourcesContent":["import { AnyColumn, Column, DriverValueDecoder, SQL, getTableName, is } from 'drizzle-orm';\n\ntype SelectedFieldsOrdered<TColumn extends Column> = {\n path: string[];\n field: TColumn | SQL | SQL.Aliased;\n}[];\n\nexport function mapResultRow<TResult>(\n columns: SelectedFieldsOrdered<AnyColumn>,\n row: unknown[],\n joinsNotNullableMap: Record<string, boolean> | undefined\n): TResult {\n // Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n const nullifyMap: Record<string, string | false> = {};\n\n const result = columns.reduce<Record<string, any>>((result, { path, field }, columnIndex) => {\n let decoder: DriverValueDecoder<unknown, unknown>;\n if (is(field, Column)) {\n decoder = field;\n } else if (is(field, SQL)) {\n decoder = (field as any).decoder;\n } else {\n decoder = (field as any).sql.decoder;\n }\n let node = result;\n for (const [pathChunkIndex, pathChunk] of path.entries()) {\n if (pathChunkIndex < path.length - 1) {\n if (!(pathChunk in node)) {\n node[pathChunk] = {};\n }\n node = node[pathChunk];\n } else {\n const rawValue = row[columnIndex]!;\n const value = (node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue));\n\n if (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n const objectName = path[0]!;\n if (!(objectName in nullifyMap)) {\n nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n } else if (\n typeof nullifyMap[objectName] === 'string' &&\n nullifyMap[objectName] !== getTableName(field.table)\n ) {\n nullifyMap[objectName] = false;\n }\n }\n }\n }\n return result;\n }, {});\n\n // Nullify all nested objects from nullifyMap that are nullable\n if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n for (const [objectName, tableName] of Object.entries(nullifyMap)) {\n if (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n result[objectName] = null;\n }\n }\n }\n\n return result as TResult;\n}\n\nexport const exhaustiveCheck = (x: never): never => {\n throw new Error(`Unhandled discriminated union member: ${x}`);\n};\n","import {\n Assume,\n Logger,\n NoopLogger,\n Query,\n RelationalSchemaConfig,\n TablesRelationalConfig,\n entityKind,\n fillPlaceholders\n} from 'drizzle-orm';\nimport {\n PgDialect,\n PgSession,\n PgTransactionConfig,\n PreparedQuery,\n PreparedQueryConfig,\n QueryResultHKT,\n SelectedFieldsOrdered\n} from 'drizzle-orm/pg-core';\nimport { XataClient } from './driver';\nimport { mapResultRow } from './utils';\n\ntype QueryResult<T = Record<string, unknown>> = {\n records: T[];\n warning?: string;\n};\n\nexport class XataPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {\n static readonly [entityKind]: string = 'VercelPgPreparedQuery';\n\n private query: {\n name: string | undefined;\n statement: string;\n };\n\n constructor(\n private client: XataClient,\n queryString: string,\n private params: unknown[],\n private logger: Logger,\n private fields: SelectedFieldsOrdered | undefined,\n name: string | undefined,\n private customResultMapper?: (rows: unknown[][]) => T['execute']\n ) {\n super();\n\n this.query = {\n name,\n statement: queryString\n };\n }\n\n async execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n\n this.logger.logQuery(this.query.statement, params);\n\n const { records = [], warning } = await this.client.sql<Record<string, unknown>>({\n statement: this.query.statement,\n params\n });\n\n // FIXME: This is a hack, we should be able to get the fields from the query but SELECT * fails\n const fields =\n this.fields ??\n Object.keys(records[0]!).map(\n (key) =>\n ({\n path: [key],\n field: {\n sql: {\n decoder: {\n mapFromDriverValue: (value: unknown) => value\n }\n }\n }\n } as any)\n );\n\n if (warning) console.warn(warning);\n\n const rows = records.map((record) => fields.map((field) => record[field.path.join('.')]));\n\n if (this.customResultMapper) {\n return this.customResultMapper(rows);\n }\n\n return rows.map((row) => mapResultRow<T['execute']>(fields, row, undefined));\n }\n\n async all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n this.logger.logQuery(this.query.statement, params);\n\n const { records } = await this.client.sql({\n statement: this.query.statement,\n params\n });\n\n return records;\n }\n\n async values(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n this.logger.logQuery(this.query.statement, params);\n\n const { records } = await this.client.sql({\n statement: this.query.statement,\n params\n });\n\n return records;\n }\n}\n\nexport interface XataSessionOptions {\n logger?: Logger;\n}\n\nexport class XataSession<\n TFullSchema extends Record<string, unknown>,\n TSchema extends TablesRelationalConfig\n> extends PgSession<XataQueryResultHKT, TFullSchema, TSchema> {\n static readonly [entityKind]: string = 'VercelPgSession';\n\n private logger: Logger;\n\n constructor(\n private client: XataClient,\n dialect: PgDialect,\n private schema: RelationalSchemaConfig<TSchema> | undefined,\n private options: XataSessionOptions = {}\n ) {\n super(dialect);\n this.logger = options.logger ?? new NoopLogger();\n }\n\n prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n query: Query,\n fields: SelectedFieldsOrdered | undefined,\n name: string | undefined,\n customResultMapper?: (rows: unknown[][]) => T['execute']\n ): PreparedQuery<T> {\n return new XataPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, customResultMapper);\n }\n\n async query(query: string, params: unknown[]): Promise<QueryResult> {\n this.logger.logQuery(query, params);\n return await this.client.sql({ statement: query, params });\n }\n\n async queryObjects<T extends Record<string, unknown>>(query: string, params: unknown[]): Promise<QueryResult<T>> {\n return this.client.sql({ statement: query, params });\n }\n\n override async transaction<T>(\n _transaction: (tx: any) => Promise<T>,\n _config?: PgTransactionConfig | undefined\n ): Promise<T> {\n throw new Error('Transactions are not supported');\n }\n}\n\nexport interface XataQueryResultHKT extends QueryResultHKT {\n type: QueryResult<Assume<this['row'], Record<string, unknown>>[]>;\n}\n","import { SQLPluginResult } from '@xata.io/client';\nimport {\n DefaultLogger,\n DrizzleConfig,\n RelationalSchemaConfig,\n TablesRelationalConfig,\n createTableRelationsHelpers,\n extractTablesRelationalConfig\n} from 'drizzle-orm';\nimport { PgDatabase, PgDialect } from 'drizzle-orm/pg-core';\nimport { XataQueryResultHKT, XataSession } from './session';\n\nexport type XataDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<\n XataQueryResultHKT,\n TSchema\n>;\n\nexport type XataClient = {\n sql: SQLPluginResult;\n};\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n client: XataClient,\n config: DrizzleConfig<TSchema> = {}\n): XataDatabase<TSchema> {\n const dialect = new PgDialect();\n let logger;\n if (config.logger === true) {\n logger = new DefaultLogger();\n } else if (config.logger !== false) {\n logger = config.logger;\n }\n\n let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n if (config.schema) {\n const tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n schema = {\n fullSchema: config.schema,\n schema: tablesConfig.tables,\n tableNamesMap: tablesConfig.tableNamesMap\n };\n }\n\n const session = new XataSession(client, dialect, schema, { logger });\n return new PgDatabase(dialect, session, schema) as XataDatabase<TSchema>;\n}\n","import { BaseSchema, Schemas } from '@xata.io/client';\nimport { boolean, date, decimal, integer, pgTable, text } from 'drizzle-orm/pg-core';\nimport { exhaustiveCheck } from './utils';\n\nfunction buildColumnType(column: Schemas.Column) {\n switch (column.type) {\n case 'string':\n case 'text':\n case 'email':\n case 'link':\n return text(column.name);\n case 'bool':\n return boolean(column.name);\n case 'int':\n return integer(column.name);\n case 'float':\n return decimal(column.name);\n case 'datetime':\n return date(column.name);\n case 'multiple':\n case 'object':\n case 'vector':\n case 'file[]':\n case 'file':\n case 'json':\n throw new Error(`Unsupported column type: ${column.type}`);\n default:\n return exhaustiveCheck(column.type);\n }\n}\n\nfunction buildColumn(column: Schemas.Column) {\n let type = buildColumnType(column);\n\n if (column.notNull) {\n type = type.notNull();\n }\n\n if (column.unique) {\n type = type.unique();\n }\n\n return type;\n}\n\nfunction buildTable(schema: Schemas.Table) {\n const columns = schema.columns.map((column) => [column.name, buildColumn(column)]);\n const definition = { id: text('id'), ...Object.fromEntries(columns) };\n return pgTable(schema.name, definition);\n}\n\nexport type DrizzleModels<T extends readonly BaseSchema[]> = T extends never[]\n ? Record<string, Record<string, any>>\n : T extends readonly unknown[]\n ? T[number] extends { name: string; columns: readonly unknown[] }\n ? {\n [K in T[number]['name']]: ReturnType<typeof buildTable>;\n }\n : never\n : never;\n\nexport function buildModels<T extends readonly BaseSchema[]>(tables: T): DrizzleModels<T> {\n const entries = tables.map((table) => [table.name, buildTable(table as Schemas.Table)]);\n return Object.fromEntries(entries);\n}\n"],"names":["result","is","Column","SQL","getTableName","PreparedQuery","fillPlaceholders","entityKind","PgSession","NoopLogger","PgDialect","DefaultLogger","extractTablesRelationalConfig","createTableRelationsHelpers","PgDatabase","text","boolean","integer","decimal","date","pgTable"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/shared/utils.ts","../src/http/session.ts","../src/http/driver.ts"],"sourcesContent":["import { AnyColumn, Column, DriverValueDecoder, SQL, SelectedFieldsOrdered, getTableName, is } from 'drizzle-orm';\n\nexport function mapResultRow<TResult>(\n columns: SelectedFieldsOrdered<AnyColumn>,\n row: unknown[],\n joinsNotNullableMap: Record<string, boolean> | undefined\n): TResult {\n // Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n const nullifyMap: Record<string, string | false> = {};\n\n const result = columns.reduce<Record<string, any>>((result, { path, field }, columnIndex) => {\n let decoder: DriverValueDecoder<unknown, unknown>;\n if (is(field, Column)) {\n decoder = field;\n } else if (is(field, SQL)) {\n decoder = (field as any).decoder;\n } else {\n decoder = (field.sql as any).decoder;\n }\n let node = result;\n for (const [pathChunkIndex, pathChunk] of path.entries()) {\n if (pathChunkIndex < path.length - 1) {\n if (!(pathChunk in node)) {\n node[pathChunk] = {};\n }\n node = node[pathChunk];\n } else {\n const rawValue = row[columnIndex]!;\n const value = (node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue));\n\n if (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n const objectName = path[0]!;\n if (!(objectName in nullifyMap)) {\n nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n } else if (\n typeof nullifyMap[objectName] === 'string' &&\n nullifyMap[objectName] !== getTableName(field.table)\n ) {\n nullifyMap[objectName] = false;\n }\n }\n }\n }\n return result;\n }, {});\n\n // Nullify all nested objects from nullifyMap that are nullable\n if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n for (const [objectName, tableName] of Object.entries(nullifyMap)) {\n if (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n result[objectName] = null;\n }\n }\n }\n\n return result as TResult;\n}\n","import { SQLPluginResult, SQLQueryResult } from '@xata.io/client';\nimport {\n Logger,\n NoopLogger,\n Query,\n RelationalSchemaConfig,\n SelectedFieldsOrdered,\n TablesRelationalConfig,\n entityKind,\n fillPlaceholders\n} from 'drizzle-orm';\nimport {\n PgColumn,\n PgDialect,\n PgSession,\n PgTransaction,\n PgTransactionConfig,\n PreparedQuery,\n PreparedQueryConfig,\n QueryResultHKT\n} from 'drizzle-orm/pg-core';\nimport { mapResultRow } from '../shared/utils';\n\nexport type XataHttpClient = {\n sql: SQLPluginResult;\n};\n\nexport class XataHttpPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {\n static readonly [entityKind]: string = 'XataHttpPreparedQuery';\n\n constructor(\n private client: XataHttpClient,\n private queryString: string,\n private params: unknown[],\n private logger: Logger,\n private fields: SelectedFieldsOrdered<PgColumn> | undefined,\n private name: string | undefined,\n private customResultMapper?: (rows: unknown[][]) => T['execute']\n ) {\n super();\n }\n\n async execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n\n this.logger.logQuery(this.queryString, params);\n\n const { fields, client, queryString, customResultMapper } = this;\n if (!fields && !customResultMapper) {\n return client.sql({ statement: queryString, params });\n }\n\n const result = await client.sql({ statement: queryString, params });\n\n // @ts-expect-error joinsNotNullableMap is internal\n const joinsNotNullableMap = this.joinsNotNullableMap;\n\n return customResultMapper\n ? customResultMapper(result.records as unknown[][])\n : result.records.map((row) => mapResultRow<T['execute']>(fields!, row as unknown[], joinsNotNullableMap));\n }\n\n all(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n this.logger.logQuery(this.queryString, params);\n return this.client.sql({ statement: this.queryString, params }).then((result) => result.records);\n }\n\n values(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['values']> {\n const params = fillPlaceholders(this.params, placeholderValues);\n this.logger.logQuery(this.queryString, params);\n return this.client.sql({ statement: this.queryString, params }).then((result) => result.records);\n }\n}\n\nexport interface XataHttpSessionOptions {\n logger?: Logger;\n}\n\nexport class XataHttpSession<\n TFullSchema extends Record<string, unknown>,\n TSchema extends TablesRelationalConfig\n> extends PgSession<XataHttpQueryResultHKT, TFullSchema, TSchema> {\n static readonly [entityKind]: string = 'XataHttpSession';\n\n private logger: Logger;\n\n constructor(\n private client: XataHttpClient,\n dialect: PgDialect,\n private schema: RelationalSchemaConfig<TSchema> | undefined,\n private options: XataHttpSessionOptions = {}\n ) {\n super(dialect);\n this.logger = options.logger ?? new NoopLogger();\n }\n\n prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n query: Query,\n fields: SelectedFieldsOrdered<PgColumn> | undefined,\n name: string | undefined,\n customResultMapper?: (rows: unknown[][]) => T['execute']\n ): PreparedQuery<T> {\n return new XataHttpPreparedQuery(\n this.client,\n query.sql,\n query.params,\n this.logger,\n fields,\n name,\n customResultMapper\n );\n }\n\n async query(query: string, params: unknown[]): Promise<SQLQueryResult<unknown>> {\n this.logger.logQuery(query, params);\n const result = await this.client.sql({ statement: query, params });\n return result;\n }\n\n async queryObjects(query: string, params: unknown[]): Promise<SQLQueryResult<unknown>> {\n return this.client.sql({ statement: query, params });\n }\n\n override async transaction<T>(\n _transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _config: PgTransactionConfig = {}\n ): Promise<T> {\n throw new Error('No transactions support in xata-http driver');\n }\n}\n\nexport class XataTransaction<\n TFullSchema extends Record<string, unknown>,\n TSchema extends TablesRelationalConfig\n> extends PgTransaction<XataHttpQueryResultHKT, TFullSchema, TSchema> {\n static readonly [entityKind]: string = 'XataHttpTransaction';\n\n override async transaction<T>(_transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T> {\n throw new Error('No transactions support in xata-http driver');\n }\n}\n\nexport interface XataHttpQueryResultHKT extends QueryResultHKT {\n type: SQLQueryResult<unknown>;\n}\n","import {\n DefaultLogger,\n DrizzleConfig,\n Logger,\n RelationalSchemaConfig,\n TablesRelationalConfig,\n createTableRelationsHelpers,\n entityKind,\n extractTablesRelationalConfig\n} from 'drizzle-orm';\nimport { XataHttpSession, type XataHttpClient, type XataHttpQueryResultHKT } from './session.js';\nimport { PgDatabase, PgDialect } from 'drizzle-orm/pg-core';\n\nexport interface XataDriverOptions {\n logger?: Logger;\n}\n\nexport class XataHttpDriver {\n static readonly [entityKind]: string = 'XataDriver';\n\n constructor(private client: XataHttpClient, private dialect: PgDialect, private options: XataDriverOptions = {}) {\n this.initMappers();\n }\n\n createSession(\n schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined\n ): XataHttpSession<Record<string, unknown>, TablesRelationalConfig> {\n return new XataHttpSession(this.client, this.dialect, schema, {\n logger: this.options.logger\n });\n }\n\n initMappers() {\n // TODO: Add custom type parsers\n }\n}\n\nexport type XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<\n XataHttpQueryResultHKT,\n TSchema\n>;\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n client: XataHttpClient,\n config: DrizzleConfig<TSchema> = {}\n): XataHttpDatabase<TSchema> {\n const dialect = new PgDialect();\n let logger;\n if (config.logger === true) {\n logger = new DefaultLogger();\n } else if (config.logger !== false) {\n logger = config.logger;\n }\n\n let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n if (config.schema) {\n const tablesConfig = extractTablesRelationalConfig(config.schema, createTableRelationsHelpers);\n schema = {\n fullSchema: config.schema,\n schema: tablesConfig.tables,\n tableNamesMap: tablesConfig.tableNamesMap\n };\n }\n\n const driver = new XataHttpDriver(client, dialect, { logger });\n const session = driver.createSession(schema);\n\n return new PgDatabase(dialect, session, schema) as XataHttpDatabase<TSchema>;\n}\n"],"names":["result","is","Column","SQL","getTableName","_a","PreparedQuery","fillPlaceholders","entityKind","PgSession","NoopLogger","PgTransaction","PgDialect","DefaultLogger","extractTablesRelationalConfig","createTableRelationsHelpers","PgDatabase"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,87 +1,60 @@
1
- import { SQLPluginResult, BaseSchema, Schemas } from '@xata.io/client';
2
- import * as drizzle_orm from 'drizzle-orm';
3
- import { entityKind, Logger, TablesRelationalConfig, RelationalSchemaConfig, Query, Assume, DrizzleConfig } from 'drizzle-orm';
4
- import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
5
- import { PreparedQueryConfig, PreparedQuery, SelectedFieldsOrdered, PgSession, PgDialect, PgTransactionConfig, QueryResultHKT, PgDatabase } from 'drizzle-orm/pg-core';
1
+ import { entityKind, Logger, SelectedFieldsOrdered, TablesRelationalConfig, RelationalSchemaConfig, Query, DrizzleConfig } from 'drizzle-orm';
2
+ import { SQLPluginResult, SQLQueryResult } from '@xata.io/client';
3
+ import { PreparedQueryConfig, PreparedQuery, PgColumn, PgSession, PgDialect, PgTransactionConfig, PgTransaction, QueryResultHKT, PgDatabase } from 'drizzle-orm/pg-core';
6
4
 
7
- type QueryResult<T = Record<string, unknown>> = {
8
- records: T[];
9
- warning?: string;
5
+ type XataHttpClient = {
6
+ sql: SQLPluginResult;
10
7
  };
11
- declare class XataPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
8
+ declare class XataHttpPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
12
9
  private client;
10
+ private queryString;
13
11
  private params;
14
12
  private logger;
15
13
  private fields;
14
+ private name;
16
15
  private customResultMapper?;
17
16
  static readonly [entityKind]: string;
18
- private query;
19
- constructor(client: XataClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper?: ((rows: unknown[][]) => T['execute']) | undefined);
17
+ constructor(client: XataHttpClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered<PgColumn> | undefined, name: string | undefined, customResultMapper?: ((rows: unknown[][]) => T['execute']) | undefined);
20
18
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
21
19
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
22
20
  values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
23
21
  }
24
- interface XataSessionOptions {
22
+ interface XataHttpSessionOptions {
25
23
  logger?: Logger;
26
24
  }
27
- declare class XataSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<XataQueryResultHKT, TFullSchema, TSchema> {
25
+ declare class XataHttpSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgSession<XataHttpQueryResultHKT, TFullSchema, TSchema> {
28
26
  private client;
29
27
  private schema;
30
28
  private options;
31
29
  static readonly [entityKind]: string;
32
30
  private logger;
33
- constructor(client: XataClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: XataSessionOptions);
34
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
35
- query(query: string, params: unknown[]): Promise<QueryResult>;
36
- queryObjects<T extends Record<string, unknown>>(query: string, params: unknown[]): Promise<QueryResult<T>>;
37
- transaction<T>(_transaction: (tx: any) => Promise<T>, _config?: PgTransactionConfig | undefined): Promise<T>;
31
+ constructor(client: XataHttpClient, dialect: PgDialect, schema: RelationalSchemaConfig<TSchema> | undefined, options?: XataHttpSessionOptions);
32
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered<PgColumn> | undefined, name: string | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
33
+ query(query: string, params: unknown[]): Promise<SQLQueryResult<unknown>>;
34
+ queryObjects(query: string, params: unknown[]): Promise<SQLQueryResult<unknown>>;
35
+ transaction<T>(_transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>, _config?: PgTransactionConfig): Promise<T>;
38
36
  }
39
- interface XataQueryResultHKT extends QueryResultHKT {
40
- type: QueryResult<Assume<this['row'], Record<string, unknown>>[]>;
37
+ declare class XataTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends PgTransaction<XataHttpQueryResultHKT, TFullSchema, TSchema> {
38
+ static readonly [entityKind]: string;
39
+ transaction<T>(_transaction: (tx: XataTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
40
+ }
41
+ interface XataHttpQueryResultHKT extends QueryResultHKT {
42
+ type: SQLQueryResult<unknown>;
41
43
  }
42
44
 
43
- type XataDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<XataQueryResultHKT, TSchema>;
44
- type XataClient = {
45
- sql: SQLPluginResult;
46
- };
47
- declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: XataClient, config?: DrizzleConfig<TSchema>): XataDatabase<TSchema>;
48
-
49
- declare function buildTable(schema: Schemas.Table): drizzle_orm_pg_core.PgTableWithColumns<{
50
- name: string;
51
- schema: undefined;
52
- columns: {
53
- [x: string]: drizzle_orm_pg_core.PgColumn<{
54
- name: any;
55
- tableName: string;
56
- dataType: any;
57
- columnType: any;
58
- data: any;
59
- driverParam: any;
60
- notNull: boolean;
61
- hasDefault: boolean;
62
- enumValues: any;
63
- baseColumn: drizzle_orm.Column<{
64
- name: string;
65
- tableName: string;
66
- dataType: drizzle_orm.ColumnDataType;
67
- columnType: string;
68
- data: unknown;
69
- driverParam: unknown;
70
- notNull: false;
71
- hasDefault: false;
72
- enumValues: string[] | undefined;
73
- baseColumn: never;
74
- }, object, object>;
75
- }, {}, {}>;
76
- };
77
- dialect: "pg";
78
- }>;
79
- type DrizzleModels<T extends readonly BaseSchema[]> = T extends never[] ? Record<string, Record<string, any>> : T extends readonly unknown[] ? T[number] extends {
80
- name: string;
81
- columns: readonly unknown[];
82
- } ? {
83
- [K in T[number]['name']]: ReturnType<typeof buildTable>;
84
- } : never : never;
85
- declare function buildModels<T extends readonly BaseSchema[]>(tables: T): DrizzleModels<T>;
45
+ interface XataDriverOptions {
46
+ logger?: Logger;
47
+ }
48
+ declare class XataHttpDriver {
49
+ private client;
50
+ private dialect;
51
+ private options;
52
+ static readonly [entityKind]: string;
53
+ constructor(client: XataHttpClient, dialect: PgDialect, options?: XataDriverOptions);
54
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): XataHttpSession<Record<string, unknown>, TablesRelationalConfig>;
55
+ initMappers(): void;
56
+ }
57
+ type XataHttpDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = PgDatabase<XataHttpQueryResultHKT, TSchema>;
58
+ declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: XataHttpClient, config?: DrizzleConfig<TSchema>): XataHttpDatabase<TSchema>;
86
59
 
87
- export { type DrizzleModels, type XataClient, type XataDatabase, XataPreparedQuery, type XataQueryResultHKT, XataSession, type XataSessionOptions, buildModels, drizzle };
60
+ export { type XataDriverOptions, type XataHttpClient, type XataHttpDatabase, XataHttpDriver, XataHttpPreparedQuery, type XataHttpQueryResultHKT, XataHttpSession, type XataHttpSessionOptions, XataTransaction, drizzle };