drizzle-orm 1.0.0-beta.1-40d80bd → 1.0.0-beta.1-84d9a79
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.
- package/durable-sqlite/session.cjs +2 -2
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.js +2 -2
- package/durable-sqlite/session.js.map +1 -1
- package/package.json +121 -121
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -131,7 +131,7 @@ class SQLiteDOPreparedQuery extends import_session2.SQLitePreparedQuery {
|
|
|
131
131
|
this.logger.logQuery(this.query.sql, params);
|
|
132
132
|
const { fields, client, joinsNotNullableMap, customResultMapper, query } = this;
|
|
133
133
|
if (!fields && !customResultMapper) {
|
|
134
|
-
return params.length > 0 ? client.sql.exec(query.sql, ...params)
|
|
134
|
+
return (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;
|
|
135
135
|
}
|
|
136
136
|
const rows = this.values(placeholderValues);
|
|
137
137
|
const row = rows[0];
|
|
@@ -147,7 +147,7 @@ class SQLiteDOPreparedQuery extends import_session2.SQLitePreparedQuery {
|
|
|
147
147
|
const params = (0, import_sql.fillPlaceholders)(this.query.params, placeholderValues ?? {});
|
|
148
148
|
this.logger.logQuery(this.query.sql, params);
|
|
149
149
|
const { client, customResultMapper, query } = this;
|
|
150
|
-
const row = params.length > 0 ? client.sql.exec(query.sql, ...params)
|
|
150
|
+
const row = (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;
|
|
151
151
|
if (!row) {
|
|
152
152
|
return void 0;
|
|
153
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): SQLiteDOPreparedQuery<T, true> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<\n\t\t\t\t'sync',\n\t\t\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\t\t\tTFullSchema,\n\t\t\t\tTRelations,\n\t\t\t\tTTablesConfig,\n\t\t\t\tTSchema\n\t\t\t>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.relations, this.schema, undefined, false, true);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, undefined, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, client, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = params.length > 0\n\t\t\t? client.sql.exec(query.sql, ...params).toArray()\n\t\t\t: client.sql.exec(query.sql).toArray();\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { client, customResultMapper, query } = this;\n\n\t\tconst row = params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["import_session","PreparedQueryBase"]}
|
|
1
|
+
{"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): SQLiteDOPreparedQuery<T, true> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<\n\t\t\t\t'sync',\n\t\t\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\t\t\tTFullSchema,\n\t\t\t\tTRelations,\n\t\t\t\tTTablesConfig,\n\t\t\t\tTSchema\n\t\t\t>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.relations, this.schema, undefined, false, true);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, undefined, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, client, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = params.length > 0\n\t\t\t? client.sql.exec(query.sql, ...params).toArray()\n\t\t\t: client.sql.exec(query.sql).toArray();\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { client, customResultMapper, query } = this;\n\n\t\tconst row = (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":["import_session","PreparedQueryBase"]}
|
|
@@ -108,7 +108,7 @@ class SQLiteDOPreparedQuery extends PreparedQueryBase {
|
|
|
108
108
|
this.logger.logQuery(this.query.sql, params);
|
|
109
109
|
const { fields, client, joinsNotNullableMap, customResultMapper, query } = this;
|
|
110
110
|
if (!fields && !customResultMapper) {
|
|
111
|
-
return params.length > 0 ? client.sql.exec(query.sql, ...params)
|
|
111
|
+
return (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;
|
|
112
112
|
}
|
|
113
113
|
const rows = this.values(placeholderValues);
|
|
114
114
|
const row = rows[0];
|
|
@@ -124,7 +124,7 @@ class SQLiteDOPreparedQuery extends PreparedQueryBase {
|
|
|
124
124
|
const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
|
|
125
125
|
this.logger.logQuery(this.query.sql, params);
|
|
126
126
|
const { client, customResultMapper, query } = this;
|
|
127
|
-
const row = params.length > 0 ? client.sql.exec(query.sql, ...params)
|
|
127
|
+
const row = (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;
|
|
128
128
|
if (!row) {
|
|
129
129
|
return void 0;
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): SQLiteDOPreparedQuery<T, true> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<\n\t\t\t\t'sync',\n\t\t\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\t\t\tTFullSchema,\n\t\t\t\tTRelations,\n\t\t\t\tTTablesConfig,\n\t\t\t\tTSchema\n\t\t\t>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.relations, this.schema, undefined, false, true);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, undefined, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, client, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = params.length > 0\n\t\t\t? client.sql.exec(query.sql, ...params).toArray()\n\t\t\t: client.sql.exec(query.sql).toArray();\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { client, customResultMapper, query } = this;\n\n\t\tconst row = params.length > 0 ? client.sql.exec(query.sql, ...params).one() : client.sql.exec(query.sql).one();\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/durable-sqlite/session.ts"],"sourcesContent":["import type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { AnyRelations, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query } from '~/sql/sql.ts';\nimport { type SQLiteSyncDialect, SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport {\n\ttype PreparedQueryConfig as PreparedQueryConfigBase,\n\ttype SQLiteExecuteMethod,\n\tSQLiteSession,\n\ttype SQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteDOSessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\n\nexport class SQLiteDOSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: AnyRelations | undefined,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\toptions: SQLiteDOSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): SQLiteDOPreparedQuery<T> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t): SQLiteDOPreparedQuery<T, true> {\n\t\treturn new SQLiteDOPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteTransaction<\n\t\t\t\t'sync',\n\t\t\t\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\t\t\t\tTFullSchema,\n\t\t\t\tTRelations,\n\t\t\t\tTTablesConfig,\n\t\t\t\tTSchema\n\t\t\t>,\n\t\t) => T,\n\t\t_config?: SQLiteTransactionConfig,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction('sync', this.dialect, this, this.relations, this.schema, undefined, false, true);\n\t\tthis.client.transactionSync(() => {\n\t\t\ttransaction(tx);\n\t\t});\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTTablesConfig extends TablesRelationalConfig,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTTablesConfig,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, TTablesConfig, TSchema>) => T,\n\t): T {\n\t\tconst tx = new SQLiteDOTransaction(\n\t\t\t'sync',\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t);\n\t\tthis.session.transaction(() => transaction(tx));\n\n\t\treturn {} as any;\n\t}\n}\n\nexport class SQLiteDOPreparedQuery<\n\tT extends PreparedQueryConfig = PreparedQueryConfig,\n\tTIsRqbV2 extends boolean = false,\n> extends PreparedQueryBase<{\n\ttype: 'sync';\n\trun: void;\n\tall: T['all'];\n\tget: T['get'];\n\tvalues: T['values'];\n\texecute: T['execute'];\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: DurableObjectStorage,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\t// 3-6 params are for cache. As long as we don't support sync cache - it will be skipped here\n\t\tsuper('sync', executeMethod, query, undefined, undefined, undefined);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>): void {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tparams.length > 0 ? this.client.sql.exec(this.query.sql, ...params) : this.client.sql.exec(this.query.sql);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, query, logger, client, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\n\t\t\treturn params.length > 0 ? client.sql.exec(query.sql, ...params).toArray() : client.sql.exec(query.sql).toArray();\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, client, customResultMapper } = this;\n\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = params.length > 0\n\t\t\t? client.sql.exec(query.sql, ...params).toArray()\n\t\t\t: client.sql.exec(query.sql).toArray();\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, client, joinsNotNullableMap, customResultMapper, query } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\t\tconst row = rows[0];\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['get'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { client, customResultMapper, query } = this;\n\n\t\tconst row = (params.length > 0 ? client.sql.exec(query.sql, ...params) : client.sql.exec(query.sql)).next().value;\n\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => unknown)([row]) as T['get'];\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst res = params.length > 0\n\t\t\t? this.client.sql.exec(this.query.sql, ...params)\n\t\t\t: this.client.sql.exec(this.query.sql);\n\n\t\t// @ts-ignore .raw().toArray() exists\n\t\treturn res.raw().toArray();\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,wBAAoC;AAC7C,SAAiC,yBAAyB;AAE1D;AAAA,EAGC;AAAA,OAEM;AACP,SAAS,uBAAuB,yBAAyB;AACzD,SAAS,oBAAoB;AAQtB,MAAM,wBAKH,cAOR;AAAA,EAKD,YACS,QACR,SACQ,WACA,QACR,UAAkC,CAAC,GAClC;AACD,UAAM,OAAO;AANL;AAEA;AACA;AAIR,SAAK,SAAS,QAAQ,UAAU,IAAI,WAAW;AAAA,EAChD;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA,EAaR,aACC,OACA,QACA,eACA,uBACA,oBAC2B;AAC3B,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,uBACC,OACA,QACA,eACA,oBACiC;AACjC,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAES,YACR,aAUA,SACI;AACJ,UAAM,KAAK,IAAI,oBAAoB,QAAQ,KAAK,SAAS,MAAM,KAAK,WAAW,KAAK,QAAQ,QAAW,OAAO,IAAI;AAClH,SAAK,OAAO,gBAAgB,MAAM;AACjC,kBAAY,EAAE;AAAA,IACf,CAAC;AACD,WAAO,CAAC;AAAA,EACT;AACD;AAEO,MAAM,4BAKH,kBAOR;AAAA,EACD,QAA0B,UAAU,IAAY;AAAA,EAEvC,YACR,aACI;AACJ,UAAM,KAAK,IAAI;AAAA,MACd;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,cAAc;AAAA,MACnB;AAAA,MACA;AAAA,IACD;AACA,SAAK,QAAQ,YAAY,MAAM,YAAY,EAAE,CAAC;AAE9C,WAAO,CAAC;AAAA,EACT;AACD;AAEO,MAAM,8BAGH,kBAOP;AAAA,EAGF,YACS,QACR,OACQ,QACA,QACR,eACQ,wBACA,oBAGA,cACP;AAED,UAAM,QAAQ,eAAe,OAAO,QAAW,QAAW,MAAS;AAZ3D;AAEA;AACA;AAEA;AACA;AAGA;AAAA,EAIT;AAAA,EAhBA,QAA0B,UAAU,IAAY;AAAA,EAkBhD,IAAI,mBAAmD;AACtD,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,WAAO,SAAS,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,GAAG;AAAA,EAC1G;AAAA,EAEA,IAAI,mBAAuD;AAC1D,QAAI,KAAK,aAAc,QAAO,KAAK,SAAS,iBAAiB;AAE7D,UAAM,EAAE,QAAQ,qBAAqB,OAAO,QAAQ,QAAQ,mBAAmB,IAAI;AACnF,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,SAAS,iBAAiB,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AACrE,aAAO,SAAS,MAAM,KAAK,MAAM;AAEjC,aAAO,OAAO,SAAS,IAAI,OAAO,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,EAAE,QAAQ,IAAI,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,QAAQ;AAAA,IACjH;AAEA,UAAM,OAAO,KAAK,OAAO,iBAAiB;AAE1C,QAAI,oBAAoB;AACvB,aAAQ,mBAAsD,IAAI;AAAA,IACnE;AAEA,WAAO,KAAK,IAAI,CAAC,QAAQ,aAAa,QAAS,KAAK,mBAAmB,CAAC;AAAA,EACzE;AAAA,EAEQ,SAAS,mBAAuD;AACvE,UAAM,EAAE,OAAO,QAAQ,QAAQ,mBAAmB,IAAI;AAEtD,UAAM,SAAS,iBAAiB,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AACrE,WAAO,SAAS,MAAM,KAAK,MAAM;AAEjC,UAAM,OAAO,OAAO,SAAS,IAC1B,OAAO,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,EAAE,QAAQ,IAC9C,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,QAAQ;AAEtC,WAAQ,mBAAoE,IAAI;AAAA,EACjF;AAAA,EAEA,IAAI,mBAAuD;AAC1D,QAAI,KAAK,aAAc,QAAO,KAAK,SAAS,iBAAiB;AAE7D,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,EAAE,QAAQ,QAAQ,qBAAqB,oBAAoB,MAAM,IAAI;AAC3E,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,cAAQ,OAAO,SAAS,IAAI,OAAO,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,EAAE;AAAA,IACxG;AAEA,UAAM,OAAO,KAAK,OAAO,iBAAiB;AAC1C,UAAM,MAAM,KAAK,CAAC;AAElB,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AAEA,QAAI,oBAAoB;AACvB,aAAQ,mBAAsD,IAAI;AAAA,IACnE;AAEA,WAAO,aAAa,QAAS,KAAK,mBAAmB;AAAA,EACtD;AAAA,EAEQ,SAAS,mBAAuD;AACvE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,EAAE,QAAQ,oBAAoB,MAAM,IAAI;AAE9C,UAAM,OAAO,OAAO,SAAS,IAAI,OAAO,IAAI,KAAK,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,EAAE;AAE5G,QAAI,CAAC,KAAK;AACT,aAAO;AAAA,IACR;AAEA,WAAQ,mBAAoE,CAAC,GAAG,CAAC;AAAA,EAClF;AAAA,EAEA,OAAO,mBAA0D;AAChE,UAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,qBAAqB,CAAC,CAAC;AAC1E,SAAK,OAAO,SAAS,KAAK,MAAM,KAAK,MAAM;AAE3C,UAAM,MAAM,OAAO,SAAS,IACzB,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,KAAK,GAAG,MAAM,IAC9C,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,GAAG;AAGtC,WAAO,IAAI,IAAI,EAAE,QAAQ;AAAA,EAC1B;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzle-orm",
|
|
3
|
-
"version": "1.0.0-beta.1-
|
|
3
|
+
"version": "1.0.0-beta.1-84d9a79",
|
|
4
4
|
"description": "Drizzle ORM package for SQL databases",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -4493,6 +4493,126 @@
|
|
|
4493
4493
|
"types": "./pg-core/columns/varchar.d.ts",
|
|
4494
4494
|
"default": "./pg-core/columns/varchar.js"
|
|
4495
4495
|
},
|
|
4496
|
+
"./pg-core/utils/array": {
|
|
4497
|
+
"import": {
|
|
4498
|
+
"types": "./pg-core/utils/array.d.ts",
|
|
4499
|
+
"default": "./pg-core/utils/array.js"
|
|
4500
|
+
},
|
|
4501
|
+
"require": {
|
|
4502
|
+
"types": "./pg-core/utils/array.d.cts",
|
|
4503
|
+
"default": "./pg-core/utils/array.cjs"
|
|
4504
|
+
},
|
|
4505
|
+
"types": "./pg-core/utils/array.d.ts",
|
|
4506
|
+
"default": "./pg-core/utils/array.js"
|
|
4507
|
+
},
|
|
4508
|
+
"./prisma/mysql/driver": {
|
|
4509
|
+
"import": {
|
|
4510
|
+
"types": "./prisma/mysql/driver.d.ts",
|
|
4511
|
+
"default": "./prisma/mysql/driver.js"
|
|
4512
|
+
},
|
|
4513
|
+
"require": {
|
|
4514
|
+
"types": "./prisma/mysql/driver.d.cts",
|
|
4515
|
+
"default": "./prisma/mysql/driver.cjs"
|
|
4516
|
+
},
|
|
4517
|
+
"types": "./prisma/mysql/driver.d.ts",
|
|
4518
|
+
"default": "./prisma/mysql/driver.js"
|
|
4519
|
+
},
|
|
4520
|
+
"./prisma/mysql": {
|
|
4521
|
+
"import": {
|
|
4522
|
+
"types": "./prisma/mysql/index.d.ts",
|
|
4523
|
+
"default": "./prisma/mysql/index.js"
|
|
4524
|
+
},
|
|
4525
|
+
"require": {
|
|
4526
|
+
"types": "./prisma/mysql/index.d.cts",
|
|
4527
|
+
"default": "./prisma/mysql/index.cjs"
|
|
4528
|
+
},
|
|
4529
|
+
"types": "./prisma/mysql/index.d.ts",
|
|
4530
|
+
"default": "./prisma/mysql/index.js"
|
|
4531
|
+
},
|
|
4532
|
+
"./prisma/mysql/session": {
|
|
4533
|
+
"import": {
|
|
4534
|
+
"types": "./prisma/mysql/session.d.ts",
|
|
4535
|
+
"default": "./prisma/mysql/session.js"
|
|
4536
|
+
},
|
|
4537
|
+
"require": {
|
|
4538
|
+
"types": "./prisma/mysql/session.d.cts",
|
|
4539
|
+
"default": "./prisma/mysql/session.cjs"
|
|
4540
|
+
},
|
|
4541
|
+
"types": "./prisma/mysql/session.d.ts",
|
|
4542
|
+
"default": "./prisma/mysql/session.js"
|
|
4543
|
+
},
|
|
4544
|
+
"./prisma/pg/driver": {
|
|
4545
|
+
"import": {
|
|
4546
|
+
"types": "./prisma/pg/driver.d.ts",
|
|
4547
|
+
"default": "./prisma/pg/driver.js"
|
|
4548
|
+
},
|
|
4549
|
+
"require": {
|
|
4550
|
+
"types": "./prisma/pg/driver.d.cts",
|
|
4551
|
+
"default": "./prisma/pg/driver.cjs"
|
|
4552
|
+
},
|
|
4553
|
+
"types": "./prisma/pg/driver.d.ts",
|
|
4554
|
+
"default": "./prisma/pg/driver.js"
|
|
4555
|
+
},
|
|
4556
|
+
"./prisma/pg": {
|
|
4557
|
+
"import": {
|
|
4558
|
+
"types": "./prisma/pg/index.d.ts",
|
|
4559
|
+
"default": "./prisma/pg/index.js"
|
|
4560
|
+
},
|
|
4561
|
+
"require": {
|
|
4562
|
+
"types": "./prisma/pg/index.d.cts",
|
|
4563
|
+
"default": "./prisma/pg/index.cjs"
|
|
4564
|
+
},
|
|
4565
|
+
"types": "./prisma/pg/index.d.ts",
|
|
4566
|
+
"default": "./prisma/pg/index.js"
|
|
4567
|
+
},
|
|
4568
|
+
"./prisma/pg/session": {
|
|
4569
|
+
"import": {
|
|
4570
|
+
"types": "./prisma/pg/session.d.ts",
|
|
4571
|
+
"default": "./prisma/pg/session.js"
|
|
4572
|
+
},
|
|
4573
|
+
"require": {
|
|
4574
|
+
"types": "./prisma/pg/session.d.cts",
|
|
4575
|
+
"default": "./prisma/pg/session.cjs"
|
|
4576
|
+
},
|
|
4577
|
+
"types": "./prisma/pg/session.d.ts",
|
|
4578
|
+
"default": "./prisma/pg/session.js"
|
|
4579
|
+
},
|
|
4580
|
+
"./prisma/sqlite/driver": {
|
|
4581
|
+
"import": {
|
|
4582
|
+
"types": "./prisma/sqlite/driver.d.ts",
|
|
4583
|
+
"default": "./prisma/sqlite/driver.js"
|
|
4584
|
+
},
|
|
4585
|
+
"require": {
|
|
4586
|
+
"types": "./prisma/sqlite/driver.d.cts",
|
|
4587
|
+
"default": "./prisma/sqlite/driver.cjs"
|
|
4588
|
+
},
|
|
4589
|
+
"types": "./prisma/sqlite/driver.d.ts",
|
|
4590
|
+
"default": "./prisma/sqlite/driver.js"
|
|
4591
|
+
},
|
|
4592
|
+
"./prisma/sqlite": {
|
|
4593
|
+
"import": {
|
|
4594
|
+
"types": "./prisma/sqlite/index.d.ts",
|
|
4595
|
+
"default": "./prisma/sqlite/index.js"
|
|
4596
|
+
},
|
|
4597
|
+
"require": {
|
|
4598
|
+
"types": "./prisma/sqlite/index.d.cts",
|
|
4599
|
+
"default": "./prisma/sqlite/index.cjs"
|
|
4600
|
+
},
|
|
4601
|
+
"types": "./prisma/sqlite/index.d.ts",
|
|
4602
|
+
"default": "./prisma/sqlite/index.js"
|
|
4603
|
+
},
|
|
4604
|
+
"./prisma/sqlite/session": {
|
|
4605
|
+
"import": {
|
|
4606
|
+
"types": "./prisma/sqlite/session.d.ts",
|
|
4607
|
+
"default": "./prisma/sqlite/session.js"
|
|
4608
|
+
},
|
|
4609
|
+
"require": {
|
|
4610
|
+
"types": "./prisma/sqlite/session.d.cts",
|
|
4611
|
+
"default": "./prisma/sqlite/session.cjs"
|
|
4612
|
+
},
|
|
4613
|
+
"types": "./prisma/sqlite/session.d.ts",
|
|
4614
|
+
"default": "./prisma/sqlite/session.js"
|
|
4615
|
+
},
|
|
4496
4616
|
"./pg-core/query-builders/_query": {
|
|
4497
4617
|
"import": {
|
|
4498
4618
|
"types": "./pg-core/query-builders/_query.d.ts",
|
|
@@ -4637,126 +4757,6 @@
|
|
|
4637
4757
|
"types": "./pg-core/query-builders/update.d.ts",
|
|
4638
4758
|
"default": "./pg-core/query-builders/update.js"
|
|
4639
4759
|
},
|
|
4640
|
-
"./pg-core/utils/array": {
|
|
4641
|
-
"import": {
|
|
4642
|
-
"types": "./pg-core/utils/array.d.ts",
|
|
4643
|
-
"default": "./pg-core/utils/array.js"
|
|
4644
|
-
},
|
|
4645
|
-
"require": {
|
|
4646
|
-
"types": "./pg-core/utils/array.d.cts",
|
|
4647
|
-
"default": "./pg-core/utils/array.cjs"
|
|
4648
|
-
},
|
|
4649
|
-
"types": "./pg-core/utils/array.d.ts",
|
|
4650
|
-
"default": "./pg-core/utils/array.js"
|
|
4651
|
-
},
|
|
4652
|
-
"./prisma/mysql/driver": {
|
|
4653
|
-
"import": {
|
|
4654
|
-
"types": "./prisma/mysql/driver.d.ts",
|
|
4655
|
-
"default": "./prisma/mysql/driver.js"
|
|
4656
|
-
},
|
|
4657
|
-
"require": {
|
|
4658
|
-
"types": "./prisma/mysql/driver.d.cts",
|
|
4659
|
-
"default": "./prisma/mysql/driver.cjs"
|
|
4660
|
-
},
|
|
4661
|
-
"types": "./prisma/mysql/driver.d.ts",
|
|
4662
|
-
"default": "./prisma/mysql/driver.js"
|
|
4663
|
-
},
|
|
4664
|
-
"./prisma/mysql": {
|
|
4665
|
-
"import": {
|
|
4666
|
-
"types": "./prisma/mysql/index.d.ts",
|
|
4667
|
-
"default": "./prisma/mysql/index.js"
|
|
4668
|
-
},
|
|
4669
|
-
"require": {
|
|
4670
|
-
"types": "./prisma/mysql/index.d.cts",
|
|
4671
|
-
"default": "./prisma/mysql/index.cjs"
|
|
4672
|
-
},
|
|
4673
|
-
"types": "./prisma/mysql/index.d.ts",
|
|
4674
|
-
"default": "./prisma/mysql/index.js"
|
|
4675
|
-
},
|
|
4676
|
-
"./prisma/mysql/session": {
|
|
4677
|
-
"import": {
|
|
4678
|
-
"types": "./prisma/mysql/session.d.ts",
|
|
4679
|
-
"default": "./prisma/mysql/session.js"
|
|
4680
|
-
},
|
|
4681
|
-
"require": {
|
|
4682
|
-
"types": "./prisma/mysql/session.d.cts",
|
|
4683
|
-
"default": "./prisma/mysql/session.cjs"
|
|
4684
|
-
},
|
|
4685
|
-
"types": "./prisma/mysql/session.d.ts",
|
|
4686
|
-
"default": "./prisma/mysql/session.js"
|
|
4687
|
-
},
|
|
4688
|
-
"./prisma/pg/driver": {
|
|
4689
|
-
"import": {
|
|
4690
|
-
"types": "./prisma/pg/driver.d.ts",
|
|
4691
|
-
"default": "./prisma/pg/driver.js"
|
|
4692
|
-
},
|
|
4693
|
-
"require": {
|
|
4694
|
-
"types": "./prisma/pg/driver.d.cts",
|
|
4695
|
-
"default": "./prisma/pg/driver.cjs"
|
|
4696
|
-
},
|
|
4697
|
-
"types": "./prisma/pg/driver.d.ts",
|
|
4698
|
-
"default": "./prisma/pg/driver.js"
|
|
4699
|
-
},
|
|
4700
|
-
"./prisma/pg": {
|
|
4701
|
-
"import": {
|
|
4702
|
-
"types": "./prisma/pg/index.d.ts",
|
|
4703
|
-
"default": "./prisma/pg/index.js"
|
|
4704
|
-
},
|
|
4705
|
-
"require": {
|
|
4706
|
-
"types": "./prisma/pg/index.d.cts",
|
|
4707
|
-
"default": "./prisma/pg/index.cjs"
|
|
4708
|
-
},
|
|
4709
|
-
"types": "./prisma/pg/index.d.ts",
|
|
4710
|
-
"default": "./prisma/pg/index.js"
|
|
4711
|
-
},
|
|
4712
|
-
"./prisma/pg/session": {
|
|
4713
|
-
"import": {
|
|
4714
|
-
"types": "./prisma/pg/session.d.ts",
|
|
4715
|
-
"default": "./prisma/pg/session.js"
|
|
4716
|
-
},
|
|
4717
|
-
"require": {
|
|
4718
|
-
"types": "./prisma/pg/session.d.cts",
|
|
4719
|
-
"default": "./prisma/pg/session.cjs"
|
|
4720
|
-
},
|
|
4721
|
-
"types": "./prisma/pg/session.d.ts",
|
|
4722
|
-
"default": "./prisma/pg/session.js"
|
|
4723
|
-
},
|
|
4724
|
-
"./prisma/sqlite/driver": {
|
|
4725
|
-
"import": {
|
|
4726
|
-
"types": "./prisma/sqlite/driver.d.ts",
|
|
4727
|
-
"default": "./prisma/sqlite/driver.js"
|
|
4728
|
-
},
|
|
4729
|
-
"require": {
|
|
4730
|
-
"types": "./prisma/sqlite/driver.d.cts",
|
|
4731
|
-
"default": "./prisma/sqlite/driver.cjs"
|
|
4732
|
-
},
|
|
4733
|
-
"types": "./prisma/sqlite/driver.d.ts",
|
|
4734
|
-
"default": "./prisma/sqlite/driver.js"
|
|
4735
|
-
},
|
|
4736
|
-
"./prisma/sqlite": {
|
|
4737
|
-
"import": {
|
|
4738
|
-
"types": "./prisma/sqlite/index.d.ts",
|
|
4739
|
-
"default": "./prisma/sqlite/index.js"
|
|
4740
|
-
},
|
|
4741
|
-
"require": {
|
|
4742
|
-
"types": "./prisma/sqlite/index.d.cts",
|
|
4743
|
-
"default": "./prisma/sqlite/index.cjs"
|
|
4744
|
-
},
|
|
4745
|
-
"types": "./prisma/sqlite/index.d.ts",
|
|
4746
|
-
"default": "./prisma/sqlite/index.js"
|
|
4747
|
-
},
|
|
4748
|
-
"./prisma/sqlite/session": {
|
|
4749
|
-
"import": {
|
|
4750
|
-
"types": "./prisma/sqlite/session.d.ts",
|
|
4751
|
-
"default": "./prisma/sqlite/session.js"
|
|
4752
|
-
},
|
|
4753
|
-
"require": {
|
|
4754
|
-
"types": "./prisma/sqlite/session.d.cts",
|
|
4755
|
-
"default": "./prisma/sqlite/session.cjs"
|
|
4756
|
-
},
|
|
4757
|
-
"types": "./prisma/sqlite/session.d.ts",
|
|
4758
|
-
"default": "./prisma/sqlite/session.js"
|
|
4759
|
-
},
|
|
4760
4760
|
"./singlestore-core/columns/all": {
|
|
4761
4761
|
"import": {
|
|
4762
4762
|
"types": "./singlestore-core/columns/all.d.ts",
|
package/version.cjs
CHANGED
package/version.d.cts
CHANGED
package/version.d.ts
CHANGED
package/version.js
CHANGED