drizzle-orm 1.0.0-beta.1-fd8bfcc → 1.0.0-beta.1-17c242e
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/bun-sql/driver.cjs +35 -75
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.d.cts +69 -10
- package/bun-sql/driver.d.ts +69 -10
- package/bun-sql/driver.js +35 -64
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/migrator.cjs +18 -3
- package/bun-sql/migrator.cjs.map +1 -1
- package/bun-sql/migrator.d.cts +8 -1
- package/bun-sql/migrator.d.ts +8 -1
- package/bun-sql/migrator.js +18 -3
- package/bun-sql/migrator.js.map +1 -1
- package/bun-sql/mysql/driver.cjs +117 -0
- package/bun-sql/mysql/driver.cjs.map +1 -0
- package/bun-sql/mysql/driver.d.cts +38 -0
- package/bun-sql/mysql/driver.d.ts +38 -0
- package/bun-sql/mysql/driver.js +82 -0
- package/bun-sql/mysql/driver.js.map +1 -0
- package/bun-sql/mysql/index.cjs +25 -0
- package/bun-sql/mysql/index.cjs.map +1 -0
- package/bun-sql/mysql/index.d.cts +2 -0
- package/bun-sql/mysql/index.d.ts +2 -0
- package/bun-sql/mysql/index.js +3 -0
- package/bun-sql/mysql/index.js.map +1 -0
- package/bun-sql/mysql/migrator.cjs +33 -0
- package/bun-sql/mysql/migrator.cjs.map +1 -0
- package/bun-sql/mysql/migrator.d.cts +4 -0
- package/bun-sql/mysql/migrator.d.ts +4 -0
- package/bun-sql/mysql/migrator.js +9 -0
- package/bun-sql/mysql/migrator.js.map +1 -0
- package/bun-sql/mysql/session.cjs +244 -0
- package/bun-sql/mysql/session.cjs.map +1 -0
- package/bun-sql/mysql/session.d.cts +65 -0
- package/bun-sql/mysql/session.d.ts +65 -0
- package/bun-sql/mysql/session.js +222 -0
- package/bun-sql/mysql/session.js.map +1 -0
- package/bun-sql/postgres/driver.cjs +110 -0
- package/bun-sql/postgres/driver.cjs.map +1 -0
- package/bun-sql/postgres/driver.d.cts +30 -0
- package/bun-sql/postgres/driver.d.ts +30 -0
- package/bun-sql/postgres/driver.js +75 -0
- package/bun-sql/postgres/driver.js.map +1 -0
- package/bun-sql/postgres/index.cjs +25 -0
- package/bun-sql/postgres/index.cjs.map +1 -0
- package/bun-sql/postgres/index.d.cts +2 -0
- package/bun-sql/postgres/index.d.ts +2 -0
- package/bun-sql/postgres/index.js +3 -0
- package/bun-sql/postgres/index.js.map +1 -0
- package/bun-sql/postgres/migrator.cjs +33 -0
- package/bun-sql/postgres/migrator.cjs.map +1 -0
- package/bun-sql/postgres/migrator.d.cts +4 -0
- package/bun-sql/postgres/migrator.d.ts +4 -0
- package/bun-sql/postgres/migrator.js +9 -0
- package/bun-sql/postgres/migrator.js.map +1 -0
- package/bun-sql/postgres/session.cjs +220 -0
- package/bun-sql/postgres/session.cjs.map +1 -0
- package/bun-sql/postgres/session.d.cts +65 -0
- package/bun-sql/postgres/session.d.ts +65 -0
- package/bun-sql/postgres/session.js +194 -0
- package/bun-sql/postgres/session.js.map +1 -0
- package/bun-sql/session.cjs +3 -200
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +1 -65
- package/bun-sql/session.d.ts +1 -65
- package/bun-sql/session.js +1 -193
- package/bun-sql/session.js.map +1 -1
- package/bun-sql/sqlite/driver.cjs +110 -0
- package/bun-sql/sqlite/driver.cjs.map +1 -0
- package/bun-sql/sqlite/driver.d.cts +30 -0
- package/bun-sql/sqlite/driver.d.ts +30 -0
- package/bun-sql/sqlite/driver.js +75 -0
- package/bun-sql/sqlite/driver.js.map +1 -0
- package/bun-sql/sqlite/index.cjs +25 -0
- package/bun-sql/sqlite/index.cjs.map +1 -0
- package/bun-sql/sqlite/index.d.cts +2 -0
- package/bun-sql/sqlite/index.d.ts +2 -0
- package/bun-sql/sqlite/index.js +3 -0
- package/bun-sql/sqlite/index.js.map +1 -0
- package/bun-sql/sqlite/migrator.cjs +33 -0
- package/bun-sql/sqlite/migrator.cjs.map +1 -0
- package/bun-sql/sqlite/migrator.d.cts +4 -0
- package/bun-sql/sqlite/migrator.d.ts +4 -0
- package/bun-sql/sqlite/migrator.js +9 -0
- package/bun-sql/sqlite/migrator.js.map +1 -0
- package/bun-sql/sqlite/session.cjs +225 -0
- package/bun-sql/sqlite/session.cjs.map +1 -0
- package/bun-sql/sqlite/session.d.cts +67 -0
- package/bun-sql/sqlite/session.d.ts +67 -0
- package/bun-sql/sqlite/session.js +199 -0
- package/bun-sql/sqlite/session.js.map +1 -0
- package/bun-sqlite/driver.cjs +5 -5
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +5 -5
- package/bun-sqlite/driver.d.ts +5 -5
- package/bun-sqlite/driver.js +4 -4
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/migrator.cjs.map +1 -1
- package/bun-sqlite/migrator.d.cts +2 -2
- package/bun-sqlite/migrator.d.ts +2 -2
- package/bun-sqlite/migrator.js.map +1 -1
- package/cache/core/cache.cjs.map +1 -1
- package/cache/core/cache.d.cts +1 -1
- package/cache/core/cache.d.ts +1 -1
- package/cache/core/cache.js.map +1 -1
- package/cache/upstash/cache.cjs +2 -2
- package/cache/upstash/cache.cjs.map +1 -1
- package/cache/upstash/cache.js +1 -1
- package/cache/upstash/cache.js.map +1 -1
- package/mysql-core/columns/bigint.cjs +4 -0
- package/mysql-core/columns/bigint.cjs.map +1 -1
- package/mysql-core/columns/bigint.d.cts +2 -1
- package/mysql-core/columns/bigint.d.ts +2 -1
- package/mysql-core/columns/bigint.js +4 -0
- package/mysql-core/columns/bigint.js.map +1 -1
- package/mysql-core/columns/custom.cjs +1 -3
- package/mysql-core/columns/custom.cjs.map +1 -1
- package/mysql-core/columns/custom.js +1 -3
- package/mysql-core/columns/custom.js.map +1 -1
- package/mysql-core/columns/date.cjs +4 -0
- package/mysql-core/columns/date.cjs.map +1 -1
- package/mysql-core/columns/date.d.cts +1 -0
- package/mysql-core/columns/date.d.ts +1 -0
- package/mysql-core/columns/date.js +4 -0
- package/mysql-core/columns/date.js.map +1 -1
- package/mysql-core/columns/datetime.cjs +6 -1
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +2 -1
- package/mysql-core/columns/datetime.d.ts +2 -1
- package/mysql-core/columns/datetime.js +6 -1
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/time.cjs +4 -0
- package/mysql-core/columns/time.cjs.map +1 -1
- package/mysql-core/columns/time.d.cts +1 -0
- package/mysql-core/columns/time.d.ts +1 -0
- package/mysql-core/columns/time.js +4 -0
- package/mysql-core/columns/time.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs +8 -1
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +2 -1
- package/mysql-core/columns/timestamp.d.ts +2 -1
- package/mysql-core/columns/timestamp.js +8 -1
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/columns/year.cjs +4 -0
- package/mysql-core/columns/year.cjs.map +1 -1
- package/mysql-core/columns/year.d.cts +1 -0
- package/mysql-core/columns/year.d.ts +1 -0
- package/mysql-core/columns/year.js +4 -0
- package/mysql-core/columns/year.js.map +1 -1
- package/mysql-core/utils.cjs +2 -2
- package/mysql-core/utils.cjs.map +1 -1
- package/mysql-core/utils.d.cts +2 -2
- package/mysql-core/utils.d.ts +2 -2
- package/mysql-core/utils.js +1 -1
- package/mysql-core/utils.js.map +1 -1
- package/package.json +149 -5
- package/relations.cjs +4 -1
- package/relations.cjs.map +1 -1
- package/relations.js +4 -1
- package/relations.js.map +1 -1
- package/session.cjs.map +1 -1
- package/session.d.cts +1 -1
- package/session.d.ts +1 -1
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/mysql/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { SavepointSQL, SQL as BunSQL, TransactionSQL } from 'bun';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nexport class BunMySqlPreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'BunMySqlPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: BunSQL,\n\t\tprivate query: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst {\n\t\t\tfields,\n\t\t\tclient,\n\t\t\tlogger,\n\t\t\tparams: rawParams,\n\t\t\tquery,\n\t\t\tjoinsNotNullableMap,\n\t\t\tcustomResultMapper,\n\t\t\treturningIds,\n\t\t\tgeneratedIds,\n\t\t} = this;\n\t\tconst params = fillPlaceholders(rawParams, placeholderValues);\n\n\t\tlogger.logQuery(query, params);\n\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(query, params, async () => {\n\t\t\t\treturn await client.unsafe(query, params);\n\t\t\t});\n\n\t\t\tconst insertId = res.lastInsertRowid;\n\t\t\tconst affectedRows = res.affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\n\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row: unknown[]) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.query, params);\n\n\t\tconst { client, query, customResultMapper } = this;\n\t\tconst rows = await client.unsafe(query, params);\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst { fields, params: queryParams, query, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(queryParams, placeholderValues);\n\t\tconst rows = await this.queryWithCache(query, params, async () => {\n\t\t\treturn await client.unsafe(query, params).values();\n\t\t});\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\n\t\tfor (const row of rows) {\n\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (hasRowsMapper) {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t} else {\n\t\t\t\t\tyield mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield row as T['execute'];\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface BunMySqlSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tmode: Mode;\n}\n\nexport class BunMySqlSession<\n\tTSQL extends BunSQL,\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, BunMySqlPreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlSession';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\treadonly client: TSQL,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\treadonly options: BunMySqlSessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<BunMySqlPreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<BunMySqlPreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new BunMySqlPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t) as any;\n\t}\n\n\t/** @internal */\n\tasync query(query: string, params: unknown[]): Promise<Record<string, unknown>[]> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.unsafe(query, params);\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.unsafe(querySql.sql, querySql.params);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst query = this.dialect.sqlToQuery(sql);\n\t\tconst data = await this.client.unsafe(query.sql, query.params).values();\n\n\t\tconst count = data[0][0];\n\t\tif (typeof count === 'number') return count;\n\t\treturn Number(count);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst startTransactionSql = config\n\t\t\t? this.getStartTransactionSQL(config)?.inlineParams().toQuery(this.dialect).sql.slice(18) ?? ''\n\t\t\t: '';\n\n\t\tif (config?.isolationLevel) throw new Error(\"Driver doesn't support setting isolation level on transaction\");\n\n\t\treturn this.client.begin(startTransactionSql, async (client) => {\n\t\t\tconst session = new BunMySqlSession<TransactionSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t0,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\t// if (config) {\n\t\t\t// \tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\t// \tif (setTransactionConfigSql) {\n\t\t\t// \t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t// \t}\n\t\t\t// }\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport class BunMySqlTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tBunMySqlQueryResultHKT,\n\tBunMySqlPreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'BunMySqlTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: BunMySqlTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\treturn (<BunMySqlSession<TransactionSQL, any, any, any>> this.session).client.savepoint((client) => {\n\t\t\tconst session = new BunMySqlSession<SavepointSQL, TFullSchema, TRelations, TSchema>(\n\t\t\t\tclient,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\t(<BunMySqlSession<any, any, any, any>> this.session).options,\n\t\t\t);\n\t\t\tconst tx = new BunMySqlTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.nestedIndex + 1,\n\t\t\t\tthis.mode,\n\t\t\t);\n\t\t\treturn transaction(tx);\n\t\t}) as Promise<T>;\n\t}\n}\n\nexport interface BunMySqlQueryResultHKT extends MySqlQueryResultHKT {\n\ttype: Record<string, unknown>[] & Record<string, unknown>;\n}\n\nexport interface BunMySqlPreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: BunMySqlPreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var driver_exports = {};
|
|
30
|
+
__export(driver_exports, {
|
|
31
|
+
BunSQLDatabase: () => BunSQLDatabase,
|
|
32
|
+
drizzle: () => drizzle
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(driver_exports);
|
|
35
|
+
var import_bun = require("bun");
|
|
36
|
+
var V1 = __toESM(require("../../_relations.cjs"), 1);
|
|
37
|
+
var import_entity = require("../../entity.cjs");
|
|
38
|
+
var import_logger = require("../../logger.cjs");
|
|
39
|
+
var import_db = require("../../pg-core/db.cjs");
|
|
40
|
+
var import_dialect = require("../../pg-core/dialect.cjs");
|
|
41
|
+
var import_utils = require("../../utils.cjs");
|
|
42
|
+
var import_session = require("./session.cjs");
|
|
43
|
+
class BunSQLDatabase extends import_db.PgDatabase {
|
|
44
|
+
static [import_entity.entityKind] = "BunSQLDatabase";
|
|
45
|
+
}
|
|
46
|
+
function construct(client, config = {}) {
|
|
47
|
+
const dialect = new import_dialect.PgDialect({ casing: config.casing });
|
|
48
|
+
let logger;
|
|
49
|
+
if (config.logger === true) {
|
|
50
|
+
logger = new import_logger.DefaultLogger();
|
|
51
|
+
} else if (config.logger !== false) {
|
|
52
|
+
logger = config.logger;
|
|
53
|
+
}
|
|
54
|
+
let schema;
|
|
55
|
+
if (config.schema) {
|
|
56
|
+
const tablesConfig = V1.extractTablesRelationalConfig(
|
|
57
|
+
config.schema,
|
|
58
|
+
V1.createTableRelationsHelpers
|
|
59
|
+
);
|
|
60
|
+
schema = {
|
|
61
|
+
fullSchema: config.schema,
|
|
62
|
+
schema: tablesConfig.tables,
|
|
63
|
+
tableNamesMap: tablesConfig.tableNamesMap
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const relations = config.relations ?? {};
|
|
67
|
+
const session = new import_session.BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });
|
|
68
|
+
const db = new BunSQLDatabase(dialect, session, relations, schema);
|
|
69
|
+
db.$client = client;
|
|
70
|
+
db.$cache = config.cache;
|
|
71
|
+
if (db.$cache) {
|
|
72
|
+
db.$cache["invalidate"] = config.cache?.onMutate;
|
|
73
|
+
}
|
|
74
|
+
return db;
|
|
75
|
+
}
|
|
76
|
+
function drizzle(...params) {
|
|
77
|
+
if (typeof params[0] === "string") {
|
|
78
|
+
const instance = new import_bun.SQL(params[0]);
|
|
79
|
+
return construct(instance, params[1]);
|
|
80
|
+
}
|
|
81
|
+
if ((0, import_utils.isConfig)(params[0])) {
|
|
82
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
83
|
+
if (client) return construct(client, drizzleConfig);
|
|
84
|
+
if (typeof connection === "object" && connection.url !== void 0) {
|
|
85
|
+
const { url, ...config } = connection;
|
|
86
|
+
const instance2 = new import_bun.SQL({ url, ...config });
|
|
87
|
+
return construct(instance2, drizzleConfig);
|
|
88
|
+
}
|
|
89
|
+
const instance = new import_bun.SQL(connection);
|
|
90
|
+
return construct(instance, drizzleConfig);
|
|
91
|
+
}
|
|
92
|
+
return construct(params[0], params[1]);
|
|
93
|
+
}
|
|
94
|
+
((drizzle2) => {
|
|
95
|
+
function mock(config) {
|
|
96
|
+
return construct({
|
|
97
|
+
options: {
|
|
98
|
+
parsers: {},
|
|
99
|
+
serializers: {}
|
|
100
|
+
}
|
|
101
|
+
}, config);
|
|
102
|
+
}
|
|
103
|
+
drizzle2.mock = mock;
|
|
104
|
+
})(drizzle || (drizzle = {}));
|
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
+
0 && (module.exports = {
|
|
107
|
+
BunSQLDatabase,
|
|
108
|
+
drizzle
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=driver.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport { SQL } from 'bun';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { BunSQLQueryResultHKT } from './session.ts';\nimport { BunSQLSession } from './session.ts';\n\nexport class BunSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<BunSQLQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'BunSQLDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQL,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: SQL;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });\n\tconst db = new BunSQLDatabase(dialect, session, relations, schema as any) as BunSQLDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new SQL(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & SQL.Options;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, TRelations>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = new SQL({ url, ...config });\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new SQL(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): BunSQLDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAAoB;AACpB,SAAoB;AACpB,oBAA2B;AAC3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAE1B,mBAA6C;AAE7C,qBAA8B;AAEvB,MAAM,uBAGH,qBAAsD;AAAA,EAC/D,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,6BAAc,QAAQ,SAAS,WAAW,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AACrG,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,WAAW,MAAa;AAIxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,eAAI,OAAO,CAAC,CAAC;AAElC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,UAAI,uBAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,IAAI,eAAI,EAAE,KAAK,GAAG,OAAO,CAAC;AAC3C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,eAAI,UAAU;AACnC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SQL } from 'bun';
|
|
2
|
+
import { entityKind } from "../../entity.cjs";
|
|
3
|
+
import { PgDatabase } from "../../pg-core/db.cjs";
|
|
4
|
+
import type { AnyRelations, EmptyRelations } from "../../relations.cjs";
|
|
5
|
+
import { type DrizzleConfig } from "../../utils.cjs";
|
|
6
|
+
import type { BunSQLQueryResultHKT } from "./session.cjs";
|
|
7
|
+
export declare class BunSQLDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<BunSQLQueryResultHKT, TSchema, TRelations> {
|
|
8
|
+
static readonly [entityKind]: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends SQL = SQL>(...params: [
|
|
11
|
+
TClient | string
|
|
12
|
+
] | [
|
|
13
|
+
TClient | string,
|
|
14
|
+
DrizzleConfig<TSchema, TRelations>
|
|
15
|
+
] | [
|
|
16
|
+
(DrizzleConfig<TSchema, TRelations> & ({
|
|
17
|
+
connection: string | ({
|
|
18
|
+
url?: string;
|
|
19
|
+
} & SQL.Options);
|
|
20
|
+
} | {
|
|
21
|
+
client: TClient;
|
|
22
|
+
}))
|
|
23
|
+
]): BunSQLDatabase<TSchema, TRelations> & {
|
|
24
|
+
$client: TClient;
|
|
25
|
+
};
|
|
26
|
+
export declare namespace drizzle {
|
|
27
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLDatabase<TSchema, TRelations> & {
|
|
28
|
+
$client: '$client is not available on drizzle.mock()';
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SQL } from 'bun';
|
|
2
|
+
import { entityKind } from "../../entity.js";
|
|
3
|
+
import { PgDatabase } from "../../pg-core/db.js";
|
|
4
|
+
import type { AnyRelations, EmptyRelations } from "../../relations.js";
|
|
5
|
+
import { type DrizzleConfig } from "../../utils.js";
|
|
6
|
+
import type { BunSQLQueryResultHKT } from "./session.js";
|
|
7
|
+
export declare class BunSQLDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgDatabase<BunSQLQueryResultHKT, TSchema, TRelations> {
|
|
8
|
+
static readonly [entityKind]: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations, TClient extends SQL = SQL>(...params: [
|
|
11
|
+
TClient | string
|
|
12
|
+
] | [
|
|
13
|
+
TClient | string,
|
|
14
|
+
DrizzleConfig<TSchema, TRelations>
|
|
15
|
+
] | [
|
|
16
|
+
(DrizzleConfig<TSchema, TRelations> & ({
|
|
17
|
+
connection: string | ({
|
|
18
|
+
url?: string;
|
|
19
|
+
} & SQL.Options);
|
|
20
|
+
} | {
|
|
21
|
+
client: TClient;
|
|
22
|
+
}))
|
|
23
|
+
]): BunSQLDatabase<TSchema, TRelations> & {
|
|
24
|
+
$client: TClient;
|
|
25
|
+
};
|
|
26
|
+
export declare namespace drizzle {
|
|
27
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations>(config?: DrizzleConfig<TSchema, TRelations>): BunSQLDatabase<TSchema, TRelations> & {
|
|
28
|
+
$client: '$client is not available on drizzle.mock()';
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { SQL } from "bun";
|
|
2
|
+
import * as V1 from "../../_relations.js";
|
|
3
|
+
import { entityKind } from "../../entity.js";
|
|
4
|
+
import { DefaultLogger } from "../../logger.js";
|
|
5
|
+
import { PgDatabase } from "../../pg-core/db.js";
|
|
6
|
+
import { PgDialect } from "../../pg-core/dialect.js";
|
|
7
|
+
import { isConfig } from "../../utils.js";
|
|
8
|
+
import { BunSQLSession } from "./session.js";
|
|
9
|
+
class BunSQLDatabase extends PgDatabase {
|
|
10
|
+
static [entityKind] = "BunSQLDatabase";
|
|
11
|
+
}
|
|
12
|
+
function construct(client, config = {}) {
|
|
13
|
+
const dialect = new PgDialect({ casing: config.casing });
|
|
14
|
+
let logger;
|
|
15
|
+
if (config.logger === true) {
|
|
16
|
+
logger = new DefaultLogger();
|
|
17
|
+
} else if (config.logger !== false) {
|
|
18
|
+
logger = config.logger;
|
|
19
|
+
}
|
|
20
|
+
let schema;
|
|
21
|
+
if (config.schema) {
|
|
22
|
+
const tablesConfig = V1.extractTablesRelationalConfig(
|
|
23
|
+
config.schema,
|
|
24
|
+
V1.createTableRelationsHelpers
|
|
25
|
+
);
|
|
26
|
+
schema = {
|
|
27
|
+
fullSchema: config.schema,
|
|
28
|
+
schema: tablesConfig.tables,
|
|
29
|
+
tableNamesMap: tablesConfig.tableNamesMap
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const relations = config.relations ?? {};
|
|
33
|
+
const session = new BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });
|
|
34
|
+
const db = new BunSQLDatabase(dialect, session, relations, schema);
|
|
35
|
+
db.$client = client;
|
|
36
|
+
db.$cache = config.cache;
|
|
37
|
+
if (db.$cache) {
|
|
38
|
+
db.$cache["invalidate"] = config.cache?.onMutate;
|
|
39
|
+
}
|
|
40
|
+
return db;
|
|
41
|
+
}
|
|
42
|
+
function drizzle(...params) {
|
|
43
|
+
if (typeof params[0] === "string") {
|
|
44
|
+
const instance = new SQL(params[0]);
|
|
45
|
+
return construct(instance, params[1]);
|
|
46
|
+
}
|
|
47
|
+
if (isConfig(params[0])) {
|
|
48
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
49
|
+
if (client) return construct(client, drizzleConfig);
|
|
50
|
+
if (typeof connection === "object" && connection.url !== void 0) {
|
|
51
|
+
const { url, ...config } = connection;
|
|
52
|
+
const instance2 = new SQL({ url, ...config });
|
|
53
|
+
return construct(instance2, drizzleConfig);
|
|
54
|
+
}
|
|
55
|
+
const instance = new SQL(connection);
|
|
56
|
+
return construct(instance, drizzleConfig);
|
|
57
|
+
}
|
|
58
|
+
return construct(params[0], params[1]);
|
|
59
|
+
}
|
|
60
|
+
((drizzle2) => {
|
|
61
|
+
function mock(config) {
|
|
62
|
+
return construct({
|
|
63
|
+
options: {
|
|
64
|
+
parsers: {},
|
|
65
|
+
serializers: {}
|
|
66
|
+
}
|
|
67
|
+
}, config);
|
|
68
|
+
}
|
|
69
|
+
drizzle2.mock = mock;
|
|
70
|
+
})(drizzle || (drizzle = {}));
|
|
71
|
+
export {
|
|
72
|
+
BunSQLDatabase,
|
|
73
|
+
drizzle
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport { SQL } from 'bun';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, isConfig } from '~/utils.ts';\nimport type { BunSQLQueryResultHKT } from './session.ts';\nimport { BunSQLSession } from './session.ts';\n\nexport class BunSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgDatabase<BunSQLQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'BunSQLDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: SQL,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: SQL;\n} {\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new BunSQLSession(client, dialect, relations, schema, { logger, cache: config.cache });\n\tconst db = new BunSQLDatabase(dialect, session, relations, schema as any) as BunSQLDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tTClient | string,\n\t] | [\n\t\tTClient | string,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): BunSQLDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new SQL(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tif (isConfig(params[0])) {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as {\n\t\t\tconnection?: { url?: string } & SQL.Options;\n\t\t\tclient?: TClient;\n\t\t} & DrizzleConfig<TSchema, TRelations>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\tconst { url, ...config } = connection;\n\n\t\t\tconst instance = new SQL({ url, ...config });\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new SQL(connection);\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema, TRelations> | undefined) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): BunSQLDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({\n\t\t\toptions: {\n\t\t\t\tparsers: {},\n\t\t\t\tserializers: {},\n\t\t\t},\n\t\t} as any, config) as any;\n\t}\n}\n"],"mappings":"AAEA,SAAS,WAAW;AACpB,YAAY,QAAQ;AACpB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAE1B,SAA6B,gBAAgB;AAE7C,SAAS,qBAAqB;AAEvB,MAAM,uBAGH,WAAsD;AAAA,EAC/D,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UAIR,QACA,SAA6C,CAAC,GAG7C;AACD,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe,GAAG;AAAA,MACvB,OAAO;AAAA,MACP,GAAG;AAAA,IACJ;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,YAAY,OAAO,aAAa,CAAC;AACvC,QAAM,UAAU,IAAI,cAAc,QAAQ,SAAS,WAAW,QAAQ,EAAE,QAAQ,OAAO,OAAO,MAAM,CAAC;AACrG,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,WAAW,MAAa;AAIxE,EAAO,GAAI,UAAU;AACrB,EAAO,GAAI,SAAS,OAAO;AAC3B,MAAW,GAAI,QAAQ;AACtB,IAAO,GAAI,OAAO,YAAY,IAAI,OAAO,OAAO;AAAA,EACjD;AAEA,SAAO;AACR;AAEO,SAAS,WAKZ,QAiBF;AACD,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,WAAW,IAAI,IAAI,OAAO,CAAC,CAAC;AAElC,WAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,MAAI,SAAS,OAAO,CAAC,CAAC,GAAG;AACxB,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAKzD,QAAI,OAAQ,QAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,YAAY,WAAW,QAAQ,QAAW;AACnE,YAAM,EAAE,KAAK,GAAG,OAAO,IAAI;AAE3B,YAAMA,YAAW,IAAI,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;AAC3C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAM,WAAW,IAAI,IAAI,UAAU;AACnC,WAAO,UAAU,UAAU,aAAa;AAAA,EACzC;AAEA,SAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAmD;AACnG;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KAIf,QAGC;AACD,WAAO,UAAU;AAAA,MAChB,SAAS;AAAA,QACR,SAAS,CAAC;AAAA,QACV,aAAa,CAAC;AAAA,MACf;AAAA,IACD,GAAU,MAAM;AAAA,EACjB;AAdO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var postgres_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(postgres_exports);
|
|
18
|
+
__reExport(postgres_exports, require("./driver.cjs"), module.exports);
|
|
19
|
+
__reExport(postgres_exports, require("./session.cjs"), module.exports);
|
|
20
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
+
0 && (module.exports = {
|
|
22
|
+
...require("./driver.cjs"),
|
|
23
|
+
...require("./session.cjs")
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/index.ts"],"sourcesContent":["export * from './driver.ts';\nexport * from './session.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,6BAAc,wBAAd;AACA,6BAAc,yBADd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/index.ts"],"sourcesContent":["export * from './driver.ts';\nexport * from './session.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var migrator_exports = {};
|
|
20
|
+
__export(migrator_exports, {
|
|
21
|
+
migrate: () => migrate
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(migrator_exports);
|
|
24
|
+
var import_migrator = require("../../migrator.cjs");
|
|
25
|
+
async function migrate(db, config) {
|
|
26
|
+
const migrations = (0, import_migrator.readMigrationFiles)(config);
|
|
27
|
+
await db.dialect.migrate(migrations, db.session, config);
|
|
28
|
+
}
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
migrate
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=migrator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { BunSQLDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: BunSQLDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MigrationConfig } from "../../migrator.cjs";
|
|
2
|
+
import type { AnyRelations } from "../../relations.cjs";
|
|
3
|
+
import type { BunSQLDatabase } from "./driver.cjs";
|
|
4
|
+
export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: BunSQLDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MigrationConfig } from "../../migrator.js";
|
|
2
|
+
import type { AnyRelations } from "../../relations.js";
|
|
3
|
+
import type { BunSQLDatabase } from "./driver.js";
|
|
4
|
+
export declare function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(db: BunSQLDatabase<TSchema, TRelations>, config: MigrationConfig): Promise<void>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { readMigrationFiles } from "../../migrator.js";
|
|
2
|
+
async function migrate(db, config) {
|
|
3
|
+
const migrations = readMigrationFiles(config);
|
|
4
|
+
await db.dialect.migrate(migrations, db.session, config);
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
migrate
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/bun-sql/postgres/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { BunSQLDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: BunSQLDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAInC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var session_exports = {};
|
|
20
|
+
__export(session_exports, {
|
|
21
|
+
BunSQLPreparedQuery: () => BunSQLPreparedQuery,
|
|
22
|
+
BunSQLSession: () => BunSQLSession,
|
|
23
|
+
BunSQLTransaction: () => BunSQLTransaction
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(session_exports);
|
|
26
|
+
var import_core = require("../../cache/core/index.cjs");
|
|
27
|
+
var import_entity = require("../../entity.cjs");
|
|
28
|
+
var import_logger = require("../../logger.cjs");
|
|
29
|
+
var import_pg_core = require("../../pg-core/index.cjs");
|
|
30
|
+
var import_session = require("../../pg-core/session.cjs");
|
|
31
|
+
var import_sql = require("../../sql/sql.cjs");
|
|
32
|
+
var import_tracing = require("../../tracing.cjs");
|
|
33
|
+
var import_utils = require("../../utils.cjs");
|
|
34
|
+
class BunSQLPreparedQuery extends import_session.PgPreparedQuery {
|
|
35
|
+
constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
|
|
36
|
+
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
|
|
37
|
+
this.client = client;
|
|
38
|
+
this.queryString = queryString;
|
|
39
|
+
this.params = params;
|
|
40
|
+
this.logger = logger;
|
|
41
|
+
this.fields = fields;
|
|
42
|
+
this._isResponseInArrayMode = _isResponseInArrayMode;
|
|
43
|
+
this.customResultMapper = customResultMapper;
|
|
44
|
+
this.isRqbV2Query = isRqbV2Query;
|
|
45
|
+
}
|
|
46
|
+
static [import_entity.entityKind] = "BunSQLPreparedQuery";
|
|
47
|
+
async execute(placeholderValues = {}) {
|
|
48
|
+
if (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);
|
|
49
|
+
return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
|
|
50
|
+
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
51
|
+
span?.setAttributes({
|
|
52
|
+
"drizzle.query.text": this.queryString,
|
|
53
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
54
|
+
});
|
|
55
|
+
this.logger.logQuery(this.queryString, params);
|
|
56
|
+
const { fields, queryString: query, client, joinsNotNullableMap, customResultMapper } = this;
|
|
57
|
+
if (!fields && !customResultMapper) {
|
|
58
|
+
return import_tracing.tracer.startActiveSpan("drizzle.driver.execute", async () => {
|
|
59
|
+
return await this.queryWithCache(query, params, async () => {
|
|
60
|
+
return await client.unsafe(query, params);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const rows = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", async () => {
|
|
65
|
+
span?.setAttributes({
|
|
66
|
+
"drizzle.query.text": query,
|
|
67
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
68
|
+
});
|
|
69
|
+
return await this.queryWithCache(query, params, async () => {
|
|
70
|
+
return client.unsafe(query, params).values();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
|
|
74
|
+
return customResultMapper ? customResultMapper(rows) : rows.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async executeRqbV2(placeholderValues = {}) {
|
|
79
|
+
return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
|
|
80
|
+
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
81
|
+
span?.setAttributes({
|
|
82
|
+
"drizzle.query.text": this.queryString,
|
|
83
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
84
|
+
});
|
|
85
|
+
this.logger.logQuery(this.queryString, params);
|
|
86
|
+
const { queryString: query, client, customResultMapper } = this;
|
|
87
|
+
const rows = await import_tracing.tracer.startActiveSpan("drizzle.driver.execute", () => {
|
|
88
|
+
span?.setAttributes({
|
|
89
|
+
"drizzle.query.text": query,
|
|
90
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
91
|
+
});
|
|
92
|
+
return client.unsafe(query, params);
|
|
93
|
+
});
|
|
94
|
+
return import_tracing.tracer.startActiveSpan("drizzle.mapResponse", () => {
|
|
95
|
+
return customResultMapper(rows);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
all(placeholderValues = {}) {
|
|
100
|
+
return import_tracing.tracer.startActiveSpan("drizzle.execute", async (span) => {
|
|
101
|
+
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
102
|
+
span?.setAttributes({
|
|
103
|
+
"drizzle.query.text": this.queryString,
|
|
104
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
105
|
+
});
|
|
106
|
+
this.logger.logQuery(this.queryString, params);
|
|
107
|
+
return import_tracing.tracer.startActiveSpan("drizzle.driver.execute", async () => {
|
|
108
|
+
span?.setAttributes({
|
|
109
|
+
"drizzle.query.text": this.queryString,
|
|
110
|
+
"drizzle.query.params": JSON.stringify(params)
|
|
111
|
+
});
|
|
112
|
+
return await this.queryWithCache(this.queryString, params, async () => {
|
|
113
|
+
return await this.client.unsafe(this.queryString, params);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/** @internal */
|
|
119
|
+
isResponseInArrayMode() {
|
|
120
|
+
return this._isResponseInArrayMode;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
class BunSQLSession extends import_session.PgSession {
|
|
124
|
+
constructor(client, dialect, relations, schema, options = {}) {
|
|
125
|
+
super(dialect);
|
|
126
|
+
this.client = client;
|
|
127
|
+
this.relations = relations;
|
|
128
|
+
this.schema = schema;
|
|
129
|
+
this.options = options;
|
|
130
|
+
this.logger = options.logger ?? new import_logger.NoopLogger();
|
|
131
|
+
this.cache = options.cache ?? new import_core.NoopCache();
|
|
132
|
+
}
|
|
133
|
+
static [import_entity.entityKind] = "BunSQLSession";
|
|
134
|
+
logger;
|
|
135
|
+
cache;
|
|
136
|
+
prepareQuery(query, fields, name, isResponseInArrayMode, customResultMapper, queryMetadata, cacheConfig) {
|
|
137
|
+
return new BunSQLPreparedQuery(
|
|
138
|
+
this.client,
|
|
139
|
+
query.sql,
|
|
140
|
+
query.params,
|
|
141
|
+
this.logger,
|
|
142
|
+
this.cache,
|
|
143
|
+
queryMetadata,
|
|
144
|
+
cacheConfig,
|
|
145
|
+
fields,
|
|
146
|
+
isResponseInArrayMode,
|
|
147
|
+
customResultMapper
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
prepareRelationalQuery(query, fields, name, customResultMapper) {
|
|
151
|
+
return new BunSQLPreparedQuery(
|
|
152
|
+
this.client,
|
|
153
|
+
query.sql,
|
|
154
|
+
query.params,
|
|
155
|
+
this.logger,
|
|
156
|
+
this.cache,
|
|
157
|
+
void 0,
|
|
158
|
+
void 0,
|
|
159
|
+
fields,
|
|
160
|
+
true,
|
|
161
|
+
customResultMapper,
|
|
162
|
+
true
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
query(query, params) {
|
|
166
|
+
this.logger.logQuery(query, params);
|
|
167
|
+
return this.client.unsafe(query, params).values();
|
|
168
|
+
}
|
|
169
|
+
queryObjects(query, params) {
|
|
170
|
+
return this.client.unsafe(query, params);
|
|
171
|
+
}
|
|
172
|
+
transaction(transaction, config) {
|
|
173
|
+
return this.client.begin(async (client) => {
|
|
174
|
+
const session = new BunSQLSession(
|
|
175
|
+
client,
|
|
176
|
+
this.dialect,
|
|
177
|
+
this.relations,
|
|
178
|
+
this.schema,
|
|
179
|
+
this.options
|
|
180
|
+
);
|
|
181
|
+
const tx = new BunSQLTransaction(this.dialect, session, this.relations, this.schema);
|
|
182
|
+
if (config) {
|
|
183
|
+
await tx.setTransaction(config);
|
|
184
|
+
}
|
|
185
|
+
return transaction(tx);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
class BunSQLTransaction extends import_pg_core.PgTransaction {
|
|
190
|
+
constructor(dialect, session, relations, schema, nestedIndex = 0) {
|
|
191
|
+
super(dialect, session, relations, schema, nestedIndex);
|
|
192
|
+
this.session = session;
|
|
193
|
+
}
|
|
194
|
+
static [import_entity.entityKind] = "BunSQLTransaction";
|
|
195
|
+
transaction(transaction) {
|
|
196
|
+
return this.session.client.savepoint((client) => {
|
|
197
|
+
const session = new BunSQLSession(
|
|
198
|
+
client,
|
|
199
|
+
this.dialect,
|
|
200
|
+
this.relations,
|
|
201
|
+
this.schema,
|
|
202
|
+
this.session.options
|
|
203
|
+
);
|
|
204
|
+
const tx = new BunSQLTransaction(
|
|
205
|
+
this.dialect,
|
|
206
|
+
session,
|
|
207
|
+
this.relations,
|
|
208
|
+
this.schema
|
|
209
|
+
);
|
|
210
|
+
return transaction(tx);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
215
|
+
0 && (module.exports = {
|
|
216
|
+
BunSQLPreparedQuery,
|
|
217
|
+
BunSQLSession,
|
|
218
|
+
BunSQLTransaction
|
|
219
|
+
});
|
|
220
|
+
//# sourceMappingURL=session.cjs.map
|