drizzle-orm 1.0.0-beta.1-ac4ce44 → 1.0.0-beta.1-fca6ce7

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/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
  Drizzle is a modern TypeScript ORM developers [wanna use in their next project](https://stateofdb.com/tools/drizzle).
20
20
  It is [lightweight](https://bundlephobia.com/package/drizzle-orm) at only ~7.4kb minified+gzipped, and it's tree shakeable with exactly 0 dependencies.
21
21
 
22
- **Drizzle supports every PostgreSQL, MySQL and SQLite database**, including serverless ones like [Turso](https://orm.drizzle.team/docs/get-started-sqlite#turso), [Neon](https://orm.drizzle.team/docs/get-started-postgresql#neon), [Xata](xata.io), [PlanetScale](https://orm.drizzle.team/docs/get-started-mysql#planetscale), [Cloudflare D1](https://orm.drizzle.team/docs/get-started-sqlite#cloudflare-d1), [FlyIO LiteFS](https://fly.io/docs/litefs/), [Vercel Postgres](https://orm.drizzle.team/docs/get-started-postgresql#vercel-postgres), [Supabase](https://orm.drizzle.team/docs/get-started-postgresql#supabase) and [AWS Data API](https://orm.drizzle.team/docs/get-started-postgresql#aws-data-api). No bells and whistles, no Rust binaries, no serverless adapters, everything just works out of the box.
22
+ **Drizzle supports every PostgreSQL, MySQL and SQLite database**, including serverless ones like [Turso](https://orm.drizzle.team/docs/get-started-sqlite#turso), [Neon](https://orm.drizzle.team/docs/get-started-postgresql#neon), [Xata](https://orm.drizzle.team/docs/connect-xata), [PlanetScale](https://orm.drizzle.team/docs/get-started-mysql#planetscale), [Cloudflare D1](https://orm.drizzle.team/docs/get-started-sqlite#cloudflare-d1), [FlyIO LiteFS](https://fly.io/docs/litefs/), [Vercel Postgres](https://orm.drizzle.team/docs/get-started-postgresql#vercel-postgres), [Supabase](https://orm.drizzle.team/docs/get-started-postgresql#supabase) and [AWS Data API](https://orm.drizzle.team/docs/get-started-postgresql#aws-data-api). No bells and whistles, no Rust binaries, no serverless adapters, everything just works out of the box.
23
23
 
24
24
  **Drizzle is serverless-ready by design**. It works in every major JavaScript runtime like NodeJS, Bun, Deno, Cloudflare Workers, Supabase functions, any Edge runtime, and even in browsers.
25
25
  With Drizzle you can be [**fast out of the box**](https://orm.drizzle.team/benchmarks) and save time and costs while never introducing any data proxies into your infrastructure.
@@ -65,10 +65,7 @@ class SQLiteDOSession extends import_session.SQLiteSession {
65
65
  }
66
66
  transaction(transaction, _config) {
67
67
  const tx = new SQLiteDOTransaction("sync", this.dialect, this, this.relations, this.schema, void 0, false, true);
68
- this.client.transactionSync(() => {
69
- transaction(tx);
70
- });
71
- return {};
68
+ return this.client.transactionSync(() => transaction(tx));
72
69
  }
73
70
  }
74
71
  class SQLiteDOTransaction extends import_sqlite_core.SQLiteTransaction {
@@ -84,8 +81,7 @@ class SQLiteDOTransaction extends import_sqlite_core.SQLiteTransaction {
84
81
  false,
85
82
  true
86
83
  );
87
- this.session.transaction(() => transaction(tx));
88
- return {};
84
+ return this.session.transaction(() => transaction(tx));
89
85
  }
90
86
  }
91
87
  class SQLiteDOPreparedQuery extends import_session2.SQLitePreparedQuery {
@@ -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 } 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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\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: TRelations,\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\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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, 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"]}
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 } 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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\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: TRelations,\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\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\treturn this.client.transactionSync(() => transaction(tx));\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, 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\treturn this.session.transaction(() => transaction(tx));\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\t// oxlint-disable-next-line no-unused-expressions\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"]}
@@ -42,10 +42,7 @@ class SQLiteDOSession extends SQLiteSession {
42
42
  }
43
43
  transaction(transaction, _config) {
44
44
  const tx = new SQLiteDOTransaction("sync", this.dialect, this, this.relations, this.schema, void 0, false, true);
45
- this.client.transactionSync(() => {
46
- transaction(tx);
47
- });
48
- return {};
45
+ return this.client.transactionSync(() => transaction(tx));
49
46
  }
50
47
  }
51
48
  class SQLiteDOTransaction extends SQLiteTransaction {
@@ -61,8 +58,7 @@ class SQLiteDOTransaction extends SQLiteTransaction {
61
58
  false,
62
59
  true
63
60
  );
64
- this.session.transaction(() => transaction(tx));
65
- return {};
61
+ return this.session.transaction(() => transaction(tx));
66
62
  }
67
63
  }
68
64
  class SQLiteDOPreparedQuery extends PreparedQueryBase {
@@ -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 } 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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\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: TRelations,\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\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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, 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":[]}
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 } 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\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\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: TRelations,\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\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\treturn this.client.transactionSync(() => transaction(tx));\n\t}\n}\n\nexport class SQLiteDOTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<\n\t'sync',\n\tSqlStorageCursor<Record<string, SqlStorageValue>>,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteDOTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteDOTransaction<TFullSchema, TRelations, 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\treturn this.session.transaction(() => transaction(tx));\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\t// oxlint-disable-next-line no-unused-expressions\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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "1.0.0-beta.1-ac4ce44",
3
+ "version": "1.0.0-beta.1-fca6ce7",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "1.0.0-beta.1-ac4ce44";
29
+ var version = "1.0.0-beta.1-fca6ce7";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 11;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.1-ac4ce44";
1
+ var version = "1.0.0-beta.1-fca6ce7";
2
2
 
3
3
  declare const compatibilityVersion = 11;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.1-ac4ce44";
1
+ var version = "1.0.0-beta.1-fca6ce7";
2
2
 
3
3
  declare const compatibilityVersion = 11;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "1.0.0-beta.1-ac4ce44";
2
+ var version = "1.0.0-beta.1-fca6ce7";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 11;