drizzle-orm 0.34.1-a5ec472 → 0.34.1-a88d6b6
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/aws-data-api/pg/driver.cjs +21 -1
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +20 -3
- package/aws-data-api/pg/driver.d.ts +20 -3
- package/aws-data-api/pg/driver.js +21 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/better-sqlite3/driver.cjs +37 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +24 -3
- package/better-sqlite3/driver.d.ts +24 -3
- package/better-sqlite3/driver.js +27 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/bun-sqlite/driver.cjs +28 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +46 -4
- package/bun-sqlite/driver.d.ts +46 -4
- package/bun-sqlite/driver.js +28 -1
- package/bun-sqlite/driver.js.map +1 -1
- package/entity.cjs +1 -1
- package/entity.cjs.map +1 -1
- package/entity.js +1 -1
- package/entity.js.map +1 -1
- package/libsql/driver.cjs +27 -1
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +22 -4
- package/libsql/driver.d.ts +22 -4
- package/libsql/driver.js +27 -1
- package/libsql/driver.js.map +1 -1
- package/mysql-core/dialect.cjs +17 -13
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +4 -2
- package/mysql-core/dialect.d.ts +4 -2
- package/mysql-core/dialect.js +17 -13
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +22 -0
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.d.cts +8 -1
- package/mysql-core/query-builders/delete.d.ts +8 -1
- package/mysql-core/query-builders/delete.js +22 -0
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/update.cjs +22 -0
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +8 -2
- package/mysql-core/query-builders/update.d.ts +8 -2
- package/mysql-core/query-builders/update.js +22 -0
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/utils.d.cts +0 -1
- package/mysql-core/utils.d.ts +0 -1
- package/mysql-core/view.cjs +0 -4
- package/mysql-core/view.cjs.map +1 -1
- package/mysql-core/view.d.cts +0 -2
- package/mysql-core/view.d.ts +0 -2
- package/mysql-core/view.js +0 -4
- package/mysql-core/view.js.map +1 -1
- package/mysql2/driver.cjs +27 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +21 -3
- package/mysql2/driver.d.ts +21 -3
- package/mysql2/driver.js +27 -1
- package/mysql2/driver.js.map +1 -1
- package/neon-http/driver.cjs +26 -1
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +21 -3
- package/neon-http/driver.d.ts +21 -3
- package/neon-http/driver.js +27 -2
- package/neon-http/driver.js.map +1 -1
- package/neon-serverless/driver.cjs +33 -1
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +23 -2
- package/neon-serverless/driver.d.ts +23 -2
- package/neon-serverless/driver.js +33 -1
- package/neon-serverless/driver.js.map +1 -1
- package/node-postgres/driver.cjs +37 -1
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +21 -2
- package/node-postgres/driver.d.ts +21 -2
- package/node-postgres/driver.js +27 -1
- package/node-postgres/driver.js.map +1 -1
- package/package.json +3 -87
- package/pg-core/index.cjs +0 -4
- package/pg-core/index.cjs.map +1 -1
- package/pg-core/index.d.cts +0 -2
- package/pg-core/index.d.ts +0 -2
- package/pg-core/index.js +0 -2
- package/pg-core/index.js.map +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +3 -23
- package/pg-core/table.d.ts +3 -23
- package/pg-core/table.js.map +1 -1
- package/pg-core/utils.cjs +2 -8
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +0 -2
- package/pg-core/utils.d.ts +0 -2
- package/pg-core/utils.js +2 -8
- package/pg-core/utils.js.map +1 -1
- package/pg-core/view.cjs +22 -2
- package/pg-core/view.cjs.map +1 -1
- package/pg-core/view.d.cts +25 -5
- package/pg-core/view.d.ts +25 -5
- package/pg-core/view.js +21 -3
- package/pg-core/view.js.map +1 -1
- package/pglite/driver.cjs +27 -1
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +24 -3
- package/pglite/driver.d.ts +24 -3
- package/pglite/driver.js +27 -1
- package/pglite/driver.js.map +1 -1
- package/planetscale-serverless/driver.cjs +25 -1
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +19 -3
- package/planetscale-serverless/driver.d.ts +19 -3
- package/planetscale-serverless/driver.js +25 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/postgres-js/driver.cjs +37 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +24 -4
- package/postgres-js/driver.d.ts +24 -4
- package/postgres-js/driver.js +27 -1
- package/postgres-js/driver.js.map +1 -1
- package/sqlite-core/dialect.cjs +25 -15
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +4 -2
- package/sqlite-core/dialect.d.ts +4 -2
- package/sqlite-core/dialect.js +25 -15
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +22 -0
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.d.cts +8 -2
- package/sqlite-core/query-builders/delete.d.ts +8 -2
- package/sqlite-core/query-builders/delete.js +22 -0
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs +22 -0
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +8 -2
- package/sqlite-core/query-builders/update.d.ts +8 -2
- package/sqlite-core/query-builders/update.js +26 -1
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/utils.cjs +2 -3
- package/sqlite-core/utils.cjs.map +1 -1
- package/sqlite-core/utils.d.cts +0 -4
- package/sqlite-core/utils.d.ts +0 -4
- package/sqlite-core/utils.js +2 -3
- package/sqlite-core/utils.js.map +1 -1
- package/sqlite-core/view.cjs +2 -8
- package/sqlite-core/view.cjs.map +1 -1
- package/sqlite-core/view.d.cts +1 -2
- package/sqlite-core/view.d.ts +1 -2
- package/sqlite-core/view.js +2 -8
- package/sqlite-core/view.js.map +1 -1
- package/table.cjs.map +1 -1
- package/table.js.map +1 -1
- package/tidb-serverless/driver.cjs +26 -1
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +22 -4
- package/tidb-serverless/driver.d.ts +22 -4
- package/tidb-serverless/driver.js +26 -1
- package/tidb-serverless/driver.js.map +1 -1
- package/utils.cjs.map +1 -1
- package/utils.d.cts +2 -0
- package/utils.d.ts +2 -0
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +18 -1
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +23 -3
- package/vercel-postgres/driver.d.ts +23 -3
- package/vercel-postgres/driver.js +18 -1
- package/vercel-postgres/driver.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
- package/connect.cjs +0 -25
- package/connect.cjs.map +0 -1
- package/connect.d.cts +0 -2
- package/connect.d.ts +0 -2
- package/connect.js +0 -3
- package/connect.js.map +0 -1
- package/monodriver.cjs +0 -283
- package/monodriver.cjs.map +0 -1
- package/monodriver.d.cts +0 -192
- package/monodriver.d.ts +0 -192
- package/monodriver.js +0 -249
- package/monodriver.js.map +0 -1
- package/monomigrator.cjs +0 -99
- package/monomigrator.cjs.map +0 -1
- package/monomigrator.d.cts +0 -16
- package/monomigrator.d.ts +0 -16
- package/monomigrator.js +0 -65
- package/monomigrator.js.map +0 -1
- package/neon/index.cjs +0 -23
- package/neon/index.cjs.map +0 -1
- package/neon/index.d.cts +0 -1
- package/neon/index.d.ts +0 -1
- package/neon/index.js +0 -2
- package/neon/index.js.map +0 -1
- package/neon/rls.cjs +0 -77
- package/neon/rls.cjs.map +0 -1
- package/neon/rls.d.cts +0 -11
- package/neon/rls.d.ts +0 -11
- package/neon/rls.js +0 -50
- package/neon/rls.js.map +0 -1
- package/pg-core/policies.cjs +0 -52
- package/pg-core/policies.cjs.map +0 -1
- package/pg-core/policies.d.cts +0 -22
- package/pg-core/policies.d.ts +0 -22
- package/pg-core/policies.js +0 -27
- package/pg-core/policies.js.map +0 -1
- package/pg-core/roles.cjs +0 -57
- package/pg-core/roles.cjs.map +0 -1
- package/pg-core/roles.d.cts +0 -13
- package/pg-core/roles.d.ts +0 -13
- package/pg-core/roles.js +0 -32
- package/pg-core/roles.js.map +0 -1
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport type Casing = 'snake_case' | 'camelCase';\n\nexport interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n\tcasing?: Casing;\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n"],"mappings":"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","names":["result"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport type Casing = 'snake_case' | 'camelCase';\n\nexport interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n\tcasing?: Casing;\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\n\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n\nexport type ImportTypeError<TPackageName extends string> =\n\t`Please install \\`${TPackageName}\\`to allow Drizzle ORM to connect to the database`;\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any\n\t? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>\n\t: never;\n"],"mappings":"AACA,SAAS,cAAc;AACvB,SAAS,UAAU;AAInB,SAAS,OAAO,KAAK,YAAY;AAEjC,SAAS,gBAAgB;AACzB,SAAS,cAAc,aAAa;AACpC,SAAS,sBAAsB;AAGxB,SAAS,aACf,SACA,KACA,qBACU;AAEV,QAAM,aAA6C,CAAC;AAEpD,QAAM,SAAS,QAAQ;AAAA,IACtB,CAACA,SAAQ,EAAE,MAAM,MAAM,GAAG,gBAAgB;AACzC,UAAI;AACJ,UAAI,GAAG,OAAO,MAAM,GAAG;AACtB,kBAAU;AAAA,MACX,WAAW,GAAG,OAAO,GAAG,GAAG;AAC1B,kBAAU,MAAM;AAAA,MACjB,OAAO;AACN,kBAAU,MAAM,IAAI;AAAA,MACrB;AACA,UAAI,OAAOA;AACX,iBAAW,CAAC,gBAAgB,SAAS,KAAK,KAAK,QAAQ,GAAG;AACzD,YAAI,iBAAiB,KAAK,SAAS,GAAG;AACrC,cAAI,EAAE,aAAa,OAAO;AACzB,iBAAK,SAAS,IAAI,CAAC;AAAA,UACpB;AACA,iBAAO,KAAK,SAAS;AAAA,QACtB,OAAO;AACN,gBAAM,WAAW,IAAI,WAAW;AAChC,gBAAM,QAAQ,KAAK,SAAS,IAAI,aAAa,OAAO,OAAO,QAAQ,mBAAmB,QAAQ;AAE9F,cAAI,uBAAuB,GAAG,OAAO,MAAM,KAAK,KAAK,WAAW,GAAG;AAClE,kBAAM,aAAa,KAAK,CAAC;AACzB,gBAAI,EAAE,cAAc,aAAa;AAChC,yBAAW,UAAU,IAAI,UAAU,OAAO,aAAa,MAAM,KAAK,IAAI;AAAA,YACvE,WACC,OAAO,WAAW,UAAU,MAAM,YAAY,WAAW,UAAU,MAAM,aAAa,MAAM,KAAK,GAChG;AACD,yBAAW,UAAU,IAAI;AAAA,YAC1B;AAAA,UACD;AAAA,QACD;AAAA,MACD;AACA,aAAOA;AAAA,IACR;AAAA,IACA,CAAC;AAAA,EACF;AAGA,MAAI,uBAAuB,OAAO,KAAK,UAAU,EAAE,SAAS,GAAG;AAC9D,eAAW,CAAC,YAAY,SAAS,KAAK,OAAO,QAAQ,UAAU,GAAG;AACjE,UAAI,OAAO,cAAc,YAAY,CAAC,oBAAoB,SAAS,GAAG;AACrE,eAAO,UAAU,IAAI;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAGO,SAAS,oBACf,QACA,YACiC;AACjC,SAAO,OAAO,QAAQ,MAAM,EAAE,OAAyC,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM;AACjG,QAAI,OAAO,SAAS,UAAU;AAC7B,aAAO;AAAA,IACR;AAEA,UAAM,UAAU,aAAa,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,IAAI;AAC1D,QAAI,GAAG,OAAO,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI,OAAO,GAAG;AAClE,aAAO,KAAK,EAAE,MAAM,SAAS,MAAM,CAAC;AAAA,IACrC,WAAW,GAAG,OAAO,KAAK,GAAG;AAC5B,aAAO,KAAK,GAAG,oBAAoB,MAAM,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;AAAA,IACzE,OAAO;AACN,aAAO,KAAK,GAAG,oBAAoB,OAAkC,OAAO,CAAC;AAAA,IAC9E;AACA,WAAO;AAAA,EACR,GAAG,CAAC,CAAC;AACN;AAEO,SAAS,aAAa,MAA+B,OAAgC;AAC3F,QAAM,WAAW,OAAO,KAAK,IAAI;AACjC,QAAM,YAAY,OAAO,KAAK,KAAK;AAEnC,MAAI,SAAS,WAAW,UAAU,QAAQ;AACzC,WAAO;AAAA,EACR;AAEA,aAAW,CAAC,OAAO,GAAG,KAAK,SAAS,QAAQ,GAAG;AAC9C,QAAI,QAAQ,UAAU,KAAK,GAAG;AAC7B,aAAO;AAAA,IACR;AAAA,EACD;AAEA,SAAO;AACR;AAGO,SAAS,aAAa,OAAc,QAA4C;AACtF,QAAM,UAAyC,OAAO,QAAQ,MAAM,EAClE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS,EACzC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAEtB,QAAI,GAAG,OAAO,GAAG,GAAG;AACnB,aAAO,CAAC,KAAK,KAAK;AAAA,IACnB,OAAO;AACN,aAAO,CAAC,KAAK,IAAI,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC;AAAA,IAChE;AAAA,EACD,CAAC;AAEF,MAAI,QAAQ,WAAW,GAAG;AACzB,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACnC;AAEA,SAAO,OAAO,YAAY,OAAO;AAClC;AAkCO,SAAS,YAAY,WAAgB,iBAAwB;AACnE,aAAW,iBAAiB,iBAAiB;AAC5C,eAAW,QAAQ,OAAO,oBAAoB,cAAc,SAAS,GAAG;AACvE,UAAI,SAAS;AAAe;AAE5B,aAAO;AAAA,QACN,UAAU;AAAA,QACV;AAAA,QACA,OAAO,yBAAyB,cAAc,WAAW,IAAI,KAAK,uBAAO,OAAO,IAAI;AAAA,MACrF;AAAA,IACD;AAAA,EACD;AACD;AAYO,SAAS,gBAAiC,OAA6B;AAC7E,SAAO,MAAM,MAAM,OAAO,OAAO;AAClC;AAGO,SAAS,iBAAiB,OAAsC;AACtE,SAAO,GAAG,OAAO,QAAQ,IACtB,MAAM,EAAE,QACR,GAAG,OAAO,IAAI,IACd,MAAM,cAAc,EAAE,OACtB,GAAG,OAAO,GAAG,IACb,SACA,MAAM,MAAM,OAAO,OAAO,IAC1B,MAAM,MAAM,OAAO,IAAI,IACvB,MAAM,MAAM,OAAO,QAAQ;AAC/B;AA6BO,SAAS,uBAEd,GAAiC,GAAwB;AAC1D,SAAO;AAAA,IACN,MAAM,OAAO,MAAM,YAAY,EAAE,SAAS,IAAI,IAAI;AAAA,IAClD,QAAQ,OAAO,MAAM,WAAW,IAAI;AAAA,EACrC;AACD;","names":["result"]}
|
|
@@ -23,6 +23,7 @@ __export(driver_exports, {
|
|
|
23
23
|
drizzle: () => drizzle
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(driver_exports);
|
|
26
|
+
var import_postgres = require("@vercel/postgres");
|
|
26
27
|
var import_entity = require("../entity.cjs");
|
|
27
28
|
var import_logger = require("../logger.cjs");
|
|
28
29
|
var import_db = require("../pg-core/db.cjs");
|
|
@@ -43,7 +44,7 @@ class VercelPgDriver {
|
|
|
43
44
|
class VercelPgDatabase extends import_db.PgDatabase {
|
|
44
45
|
static [import_entity.entityKind] = "VercelPgDatabase";
|
|
45
46
|
}
|
|
46
|
-
function
|
|
47
|
+
function construct(client, config = {}) {
|
|
47
48
|
const dialect = new import_pg_core.PgDialect({ casing: config.casing });
|
|
48
49
|
let logger;
|
|
49
50
|
if (config.logger === true) {
|
|
@@ -69,6 +70,22 @@ function drizzle(client, config = {}) {
|
|
|
69
70
|
db.$client = client;
|
|
70
71
|
return db;
|
|
71
72
|
}
|
|
73
|
+
function drizzle(...params) {
|
|
74
|
+
if (typeof params[0] === "function") {
|
|
75
|
+
return construct(params[0], params[1]);
|
|
76
|
+
}
|
|
77
|
+
if (!params[0] || !params[0].client) {
|
|
78
|
+
return construct(import_postgres.sql, params[0]);
|
|
79
|
+
}
|
|
80
|
+
const { client, ...drizzleConfig } = params[0];
|
|
81
|
+
return construct(client ?? import_postgres.sql, drizzleConfig);
|
|
82
|
+
}
|
|
83
|
+
((drizzle2) => {
|
|
84
|
+
function mock(config) {
|
|
85
|
+
return construct({}, config);
|
|
86
|
+
}
|
|
87
|
+
drizzle2.mock = mock;
|
|
88
|
+
})(drizzle || (drizzle = {}));
|
|
72
89
|
// Annotate the CommonJS export names for ESM import in node:
|
|
73
90
|
0 && (module.exports = {
|
|
74
91
|
VercelPgDatabase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/vercel-postgres/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/index.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from './session.ts';\n\nexport interface VercelPgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgDriver {\n\tstatic readonly [entityKind]: string = 'VercelPgDriver';\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: VercelPgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): VercelPgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new VercelPgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class VercelPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgDatabase';\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../src/vercel-postgres/driver.ts"],"sourcesContent":["import { type QueryResult, type QueryResultRow, sql, type VercelPool } from '@vercel/postgres';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/index.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from './session.ts';\n\nexport interface VercelPgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgDriver {\n\tstatic readonly [entityKind]: string = 'VercelPgDriver';\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: VercelPgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): VercelPgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new VercelPgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class VercelPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: VercelPgClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): VercelPgDatabase<TSchema> & {\n\t$client: VercelPgClient;\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new VercelPgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new VercelPgDatabase(dialect, session, schema as any) as VercelPgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ntype Primitive = string | number | boolean | undefined | null;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends VercelPgClient =\n\t\t& VercelPool\n\t\t& (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>),\n>(\n\t...params: IfNotImported<\n\t\tVercelPool,\n\t\t[ImportTypeError<'@vercel/postgres'>],\n\t\t[] | [\n\t\t\tTClient,\n\t\t] | [\n\t\t\tTClient,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tclient?: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): VercelPgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (typeof params[0] === 'function') {\n\t\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (!params[0] || !(params[0] as { client?: TClient }).client) {\n\t\treturn construct(sql, params[0] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { client, ...drizzleConfig } = params[0] as ({ client?: TClient } & DrizzleConfig<TSchema>);\n\treturn construct(client ?? sql, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): VercelPgDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA4E;AAC5E,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAEP,qBAAkF;AAM3E,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAAiC,CAAC,GACzC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACmE;AACnE,WAAO,IAAI,+BAAgB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AACD;AAEO,MAAM,yBAEH,qBAA4C;AAAA,EACrD,QAA0B,wBAAU,IAAY;AACjD;AAEA,SAAS,UACR,QACA,SAAiC,CAAC,GAGjC;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,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,iBAAiB,SAAS,SAAS,MAAa;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAIO,SAAS,WAMZ,QAmBF;AAED,MAAI,OAAO,OAAO,CAAC,MAAM,YAAY;AACpC,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AAAA,EACvF;AAEA,MAAI,CAAC,OAAO,CAAC,KAAK,CAAE,OAAO,CAAC,EAA2B,QAAQ;AAC9D,WAAO,UAAU,qBAAK,OAAO,CAAC,CAAuC;AAAA,EACtE;AAEA,QAAM,EAAE,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAC7C,SAAO,UAAU,UAAU,qBAAK,aAAa;AAC9C;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { type QueryResult, type QueryResultRow, type VercelPool } from '@vercel/postgres';
|
|
1
2
|
import { entityKind } from "../entity.cjs";
|
|
2
3
|
import type { Logger } from "../logger.cjs";
|
|
3
4
|
import { PgDatabase } from "../pg-core/db.cjs";
|
|
4
5
|
import { PgDialect } from "../pg-core/index.cjs";
|
|
5
6
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
|
|
6
|
-
import type { DrizzleConfig } from "../utils.cjs";
|
|
7
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.cjs";
|
|
7
8
|
import { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from "./session.cjs";
|
|
8
9
|
export interface VercelPgDriverOptions {
|
|
9
10
|
logger?: Logger;
|
|
@@ -19,6 +20,25 @@ export declare class VercelPgDriver {
|
|
|
19
20
|
export declare class VercelPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {
|
|
20
21
|
static readonly [entityKind]: string;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
type Primitive = string | number | boolean | undefined | null;
|
|
24
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends VercelPgClient = VercelPool & (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>)>(...params: IfNotImported<VercelPool, [
|
|
25
|
+
ImportTypeError<'@vercel/postgres'>
|
|
26
|
+
], [
|
|
27
|
+
] | [
|
|
28
|
+
TClient
|
|
29
|
+
] | [
|
|
30
|
+
TClient,
|
|
31
|
+
DrizzleConfig<TSchema>
|
|
32
|
+
] | [
|
|
33
|
+
(DrizzleConfig<TSchema> & ({
|
|
34
|
+
client?: TClient;
|
|
35
|
+
}))
|
|
36
|
+
]>): VercelPgDatabase<TSchema> & {
|
|
37
|
+
$client: TClient;
|
|
24
38
|
};
|
|
39
|
+
export declare namespace drizzle {
|
|
40
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): VercelPgDatabase<TSchema> & {
|
|
41
|
+
$client: '$client is not available on drizzle.mock()';
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { type QueryResult, type QueryResultRow, type VercelPool } from '@vercel/postgres';
|
|
1
2
|
import { entityKind } from "../entity.js";
|
|
2
3
|
import type { Logger } from "../logger.js";
|
|
3
4
|
import { PgDatabase } from "../pg-core/db.js";
|
|
4
5
|
import { PgDialect } from "../pg-core/index.js";
|
|
5
6
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.js";
|
|
6
|
-
import type { DrizzleConfig } from "../utils.js";
|
|
7
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.js";
|
|
7
8
|
import { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from "./session.js";
|
|
8
9
|
export interface VercelPgDriverOptions {
|
|
9
10
|
logger?: Logger;
|
|
@@ -19,6 +20,25 @@ export declare class VercelPgDriver {
|
|
|
19
20
|
export declare class VercelPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {
|
|
20
21
|
static readonly [entityKind]: string;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
type Primitive = string | number | boolean | undefined | null;
|
|
24
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends VercelPgClient = VercelPool & (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>)>(...params: IfNotImported<VercelPool, [
|
|
25
|
+
ImportTypeError<'@vercel/postgres'>
|
|
26
|
+
], [
|
|
27
|
+
] | [
|
|
28
|
+
TClient
|
|
29
|
+
] | [
|
|
30
|
+
TClient,
|
|
31
|
+
DrizzleConfig<TSchema>
|
|
32
|
+
] | [
|
|
33
|
+
(DrizzleConfig<TSchema> & ({
|
|
34
|
+
client?: TClient;
|
|
35
|
+
}))
|
|
36
|
+
]>): VercelPgDatabase<TSchema> & {
|
|
37
|
+
$client: TClient;
|
|
24
38
|
};
|
|
39
|
+
export declare namespace drizzle {
|
|
40
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): VercelPgDatabase<TSchema> & {
|
|
41
|
+
$client: '$client is not available on drizzle.mock()';
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sql } from "@vercel/postgres";
|
|
1
2
|
import { entityKind } from "../entity.js";
|
|
2
3
|
import { DefaultLogger } from "../logger.js";
|
|
3
4
|
import { PgDatabase } from "../pg-core/db.js";
|
|
@@ -21,7 +22,7 @@ class VercelPgDriver {
|
|
|
21
22
|
class VercelPgDatabase extends PgDatabase {
|
|
22
23
|
static [entityKind] = "VercelPgDatabase";
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
+
function construct(client, config = {}) {
|
|
25
26
|
const dialect = new PgDialect({ casing: config.casing });
|
|
26
27
|
let logger;
|
|
27
28
|
if (config.logger === true) {
|
|
@@ -47,6 +48,22 @@ function drizzle(client, config = {}) {
|
|
|
47
48
|
db.$client = client;
|
|
48
49
|
return db;
|
|
49
50
|
}
|
|
51
|
+
function drizzle(...params) {
|
|
52
|
+
if (typeof params[0] === "function") {
|
|
53
|
+
return construct(params[0], params[1]);
|
|
54
|
+
}
|
|
55
|
+
if (!params[0] || !params[0].client) {
|
|
56
|
+
return construct(sql, params[0]);
|
|
57
|
+
}
|
|
58
|
+
const { client, ...drizzleConfig } = params[0];
|
|
59
|
+
return construct(client ?? sql, drizzleConfig);
|
|
60
|
+
}
|
|
61
|
+
((drizzle2) => {
|
|
62
|
+
function mock(config) {
|
|
63
|
+
return construct({}, config);
|
|
64
|
+
}
|
|
65
|
+
drizzle2.mock = mock;
|
|
66
|
+
})(drizzle || (drizzle = {}));
|
|
50
67
|
export {
|
|
51
68
|
VercelPgDatabase,
|
|
52
69
|
VercelPgDriver,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/vercel-postgres/driver.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/index.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from './session.ts';\n\nexport interface VercelPgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgDriver {\n\tstatic readonly [entityKind]: string = 'VercelPgDriver';\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: VercelPgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): VercelPgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new VercelPgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class VercelPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgDatabase';\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../src/vercel-postgres/driver.ts"],"sourcesContent":["import { type QueryResult, type QueryResultRow, sql, type VercelPool } from '@vercel/postgres';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/index.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { type VercelPgClient, type VercelPgQueryResultHKT, VercelPgSession } from './session.ts';\n\nexport interface VercelPgDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class VercelPgDriver {\n\tstatic readonly [entityKind]: string = 'VercelPgDriver';\n\n\tconstructor(\n\t\tprivate client: VercelPgClient,\n\t\tprivate dialect: PgDialect,\n\t\tprivate options: VercelPgDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t): VercelPgSession<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new VercelPgSession(this.client, this.dialect, schema, { logger: this.options.logger });\n\t}\n}\n\nexport class VercelPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<VercelPgQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'VercelPgDatabase';\n}\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: VercelPgClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): VercelPgDatabase<TSchema> & {\n\t$client: VercelPgClient;\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: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst driver = new VercelPgDriver(client, dialect, { logger });\n\tconst session = driver.createSession(schema);\n\tconst db = new VercelPgDatabase(dialect, session, schema as any) as VercelPgDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ntype Primitive = string | number | boolean | undefined | null;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends VercelPgClient =\n\t\t& VercelPool\n\t\t& (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>),\n>(\n\t...params: IfNotImported<\n\t\tVercelPool,\n\t\t[ImportTypeError<'@vercel/postgres'>],\n\t\t[] | [\n\t\t\tTClient,\n\t\t] | [\n\t\t\tTClient,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tclient?: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): VercelPgDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (typeof params[0] === 'function') {\n\t\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (!params[0] || !(params[0] as { client?: TClient }).client) {\n\t\treturn construct(sql, params[0] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { client, ...drizzleConfig } = params[0] as ({ client?: TClient } & DrizzleConfig<TSchema>);\n\treturn construct(client ?? sql, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): VercelPgDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAgD,WAA4B;AAC5E,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAA2D,uBAAuB;AAM3E,MAAM,eAAe;AAAA,EAG3B,YACS,QACA,SACA,UAAiC,CAAC,GACzC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACmE;AACnE,WAAO,IAAI,gBAAgB,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC9F;AACD;AAEO,MAAM,yBAEH,WAA4C;AAAA,EACrD,QAA0B,UAAU,IAAY;AACjD;AAEA,SAAS,UACR,QACA,SAAiC,CAAC,GAGjC;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;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,SAAS,IAAI,eAAe,QAAQ,SAAS,EAAE,OAAO,CAAC;AAC7D,QAAM,UAAU,OAAO,cAAc,MAAM;AAC3C,QAAM,KAAK,IAAI,iBAAiB,SAAS,SAAS,MAAa;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAIO,SAAS,WAMZ,QAmBF;AAED,MAAI,OAAO,OAAO,CAAC,MAAM,YAAY;AACpC,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AAAA,EACvF;AAEA,MAAI,CAAC,OAAO,CAAC,KAAK,CAAE,OAAO,CAAC,EAA2B,QAAQ;AAC9D,WAAO,UAAU,KAAK,OAAO,CAAC,CAAuC;AAAA,EACtE;AAEA,QAAM,EAAE,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAC7C,SAAO,UAAU,UAAU,KAAK,aAAa;AAC9C;AAAA,CAEO,CAAUA,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["drizzle"]}
|
package/version.cjs
CHANGED
package/version.d.cts
CHANGED
package/version.d.ts
CHANGED
package/version.js
CHANGED
package/connect.cjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
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 connect_exports = {};
|
|
17
|
-
module.exports = __toCommonJS(connect_exports);
|
|
18
|
-
__reExport(connect_exports, require("./monodriver.cjs"), module.exports);
|
|
19
|
-
__reExport(connect_exports, require("./monomigrator.cjs"), module.exports);
|
|
20
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
-
0 && (module.exports = {
|
|
22
|
-
...require("./monodriver.cjs"),
|
|
23
|
-
...require("./monomigrator.cjs")
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=connect.cjs.map
|
package/connect.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["export * from './monodriver.ts';\nexport * from './monomigrator.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,4BAAc,4BAAd;AACA,4BAAc,8BADd;","names":[]}
|
package/connect.d.cts
DELETED
package/connect.d.ts
DELETED
package/connect.js
DELETED
package/connect.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/connect.ts"],"sourcesContent":["export * from './monodriver.ts';\nexport * from './monomigrator.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
|
package/monodriver.cjs
DELETED
|
@@ -1,283 +0,0 @@
|
|
|
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 monodriver_exports = {};
|
|
30
|
-
__export(monodriver_exports, {
|
|
31
|
-
drizzle: () => drizzle
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(monodriver_exports);
|
|
34
|
-
const importError = (libName) => {
|
|
35
|
-
throw new Error(
|
|
36
|
-
`Please install '${libName}' to allow Drizzle ORM to connect to the database`
|
|
37
|
-
);
|
|
38
|
-
};
|
|
39
|
-
function assertUnreachable(_) {
|
|
40
|
-
throw new Error("Didn't expect to get here");
|
|
41
|
-
}
|
|
42
|
-
async function drizzle(client, ...params) {
|
|
43
|
-
switch (client) {
|
|
44
|
-
case "node-postgres": {
|
|
45
|
-
const defpg = await import("pg").catch(() => importError("pg"));
|
|
46
|
-
const { drizzle: drizzle2 } = await import("./node-postgres/index.cjs");
|
|
47
|
-
if (typeof params[0] === "object") {
|
|
48
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
49
|
-
const instance2 = typeof connection === "string" ? new defpg.default.Pool({
|
|
50
|
-
connectionString: connection
|
|
51
|
-
}) : new defpg.default.Pool(connection);
|
|
52
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
53
|
-
return db2;
|
|
54
|
-
}
|
|
55
|
-
const instance = typeof params[0] === "string" ? new defpg.default.Pool({
|
|
56
|
-
connectionString: params[0]
|
|
57
|
-
}) : new defpg.default.Pool(params[0]);
|
|
58
|
-
const db = drizzle2(instance);
|
|
59
|
-
return db;
|
|
60
|
-
}
|
|
61
|
-
case "aws-data-api-pg": {
|
|
62
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
63
|
-
const { resourceArn, database, secretArn, ...rdsConfig } = connection;
|
|
64
|
-
const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
|
|
65
|
-
() => importError("@aws-sdk/client-rds-data")
|
|
66
|
-
);
|
|
67
|
-
const { drizzle: drizzle2 } = await import("./aws-data-api/pg/index.cjs");
|
|
68
|
-
const instance = new RDSDataClient(rdsConfig);
|
|
69
|
-
const db = drizzle2(instance, { resourceArn, database, secretArn, ...drizzleConfig });
|
|
70
|
-
return db;
|
|
71
|
-
}
|
|
72
|
-
case "better-sqlite3": {
|
|
73
|
-
const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
|
|
74
|
-
const { drizzle: drizzle2 } = await import("./better-sqlite3/index.cjs");
|
|
75
|
-
if (typeof params[0] === "object") {
|
|
76
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
77
|
-
if (typeof connection === "object") {
|
|
78
|
-
const { source, ...options } = connection;
|
|
79
|
-
const instance3 = new Client(source, options);
|
|
80
|
-
const db3 = drizzle2(instance3, drizzleConfig);
|
|
81
|
-
return db3;
|
|
82
|
-
}
|
|
83
|
-
const instance2 = new Client(connection);
|
|
84
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
85
|
-
return db2;
|
|
86
|
-
}
|
|
87
|
-
const instance = new Client(params[0]);
|
|
88
|
-
const db = drizzle2(instance);
|
|
89
|
-
return db;
|
|
90
|
-
}
|
|
91
|
-
case "bun:sqlite": {
|
|
92
|
-
const { Database: Client } = await import("bun:sqlite").catch(() => {
|
|
93
|
-
throw new Error(`Please use bun to use 'bun:sqlite' for Drizzle ORM to connect to database`);
|
|
94
|
-
});
|
|
95
|
-
const { drizzle: drizzle2 } = await import("./bun-sqlite/index.cjs");
|
|
96
|
-
if (typeof params[0] === "object") {
|
|
97
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
98
|
-
if (typeof connection === "object") {
|
|
99
|
-
const { source, ...opts } = connection;
|
|
100
|
-
const options = Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0;
|
|
101
|
-
const instance3 = new Client(source, options);
|
|
102
|
-
const db3 = drizzle2(instance3, drizzleConfig);
|
|
103
|
-
return db3;
|
|
104
|
-
}
|
|
105
|
-
const instance2 = new Client(connection);
|
|
106
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
107
|
-
return db2;
|
|
108
|
-
}
|
|
109
|
-
const instance = new Client(params[0]);
|
|
110
|
-
const db = drizzle2(instance);
|
|
111
|
-
return db;
|
|
112
|
-
}
|
|
113
|
-
case "d1": {
|
|
114
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
115
|
-
const { drizzle: drizzle2 } = await import("./d1/index.cjs");
|
|
116
|
-
const db = drizzle2(connection, drizzleConfig);
|
|
117
|
-
return db;
|
|
118
|
-
}
|
|
119
|
-
case "libsql":
|
|
120
|
-
case "turso": {
|
|
121
|
-
const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
|
|
122
|
-
const { drizzle: drizzle2 } = await import("./libsql/index.cjs");
|
|
123
|
-
if (typeof params[0] === "string") {
|
|
124
|
-
const instance2 = createClient({
|
|
125
|
-
url: params[0]
|
|
126
|
-
});
|
|
127
|
-
const db2 = drizzle2(instance2);
|
|
128
|
-
return db2;
|
|
129
|
-
}
|
|
130
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
131
|
-
const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
|
|
132
|
-
const db = drizzle2(instance, drizzleConfig);
|
|
133
|
-
return db;
|
|
134
|
-
}
|
|
135
|
-
case "mysql2": {
|
|
136
|
-
const { createPool } = await import("mysql2/promise").catch(() => importError("mysql2"));
|
|
137
|
-
const { drizzle: drizzle2 } = await import("./mysql2/index.cjs");
|
|
138
|
-
if (typeof params[0] === "object") {
|
|
139
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
140
|
-
const instance2 = createPool(connection);
|
|
141
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
142
|
-
return db2;
|
|
143
|
-
}
|
|
144
|
-
const connectionString = params[0];
|
|
145
|
-
const instance = createPool(connectionString);
|
|
146
|
-
const db = drizzle2(instance);
|
|
147
|
-
return db;
|
|
148
|
-
}
|
|
149
|
-
case "neon-http": {
|
|
150
|
-
const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
|
|
151
|
-
const { drizzle: drizzle2 } = await import("./neon-http/index.cjs");
|
|
152
|
-
if (typeof params[0] === "object") {
|
|
153
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
154
|
-
if (typeof connection === "object") {
|
|
155
|
-
const { connectionString, ...options } = connection;
|
|
156
|
-
const instance3 = neon(connectionString, options);
|
|
157
|
-
const db3 = drizzle2(instance3, drizzleConfig);
|
|
158
|
-
return db3;
|
|
159
|
-
}
|
|
160
|
-
const instance2 = neon(connection);
|
|
161
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
162
|
-
return db2;
|
|
163
|
-
}
|
|
164
|
-
const instance = neon(params[0]);
|
|
165
|
-
const db = drizzle2(instance);
|
|
166
|
-
return db;
|
|
167
|
-
}
|
|
168
|
-
case "neon-websocket": {
|
|
169
|
-
const { Pool, neonConfig } = await import("@neondatabase/serverless").catch(
|
|
170
|
-
() => importError("@neondatabase/serverless")
|
|
171
|
-
);
|
|
172
|
-
const { drizzle: drizzle2 } = await import("./neon-serverless/index.cjs");
|
|
173
|
-
if (typeof params[0] === "string") {
|
|
174
|
-
const instance2 = new Pool({
|
|
175
|
-
connectionString: params[0]
|
|
176
|
-
});
|
|
177
|
-
const db2 = drizzle2(instance2);
|
|
178
|
-
return db2;
|
|
179
|
-
}
|
|
180
|
-
if (typeof params[0] === "object") {
|
|
181
|
-
const { connection, ws, ...drizzleConfig } = params[0];
|
|
182
|
-
if (ws) {
|
|
183
|
-
neonConfig.webSocketConstructor = ws;
|
|
184
|
-
}
|
|
185
|
-
const instance2 = typeof connection === "string" ? new Pool({
|
|
186
|
-
connectionString: connection
|
|
187
|
-
}) : new Pool(connection);
|
|
188
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
189
|
-
return db2;
|
|
190
|
-
}
|
|
191
|
-
const instance = new Pool();
|
|
192
|
-
const db = drizzle2(instance);
|
|
193
|
-
return db;
|
|
194
|
-
}
|
|
195
|
-
case "planetscale": {
|
|
196
|
-
const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
|
|
197
|
-
const { drizzle: drizzle2 } = await import("./planetscale-serverless/index.cjs");
|
|
198
|
-
if (typeof params[0] === "object") {
|
|
199
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
200
|
-
const instance2 = typeof connection === "string" ? new Client({
|
|
201
|
-
url: connection
|
|
202
|
-
}) : new Client(
|
|
203
|
-
connection
|
|
204
|
-
);
|
|
205
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
206
|
-
return db2;
|
|
207
|
-
}
|
|
208
|
-
const instance = new Client({
|
|
209
|
-
url: params[0]
|
|
210
|
-
});
|
|
211
|
-
const db = drizzle2(instance);
|
|
212
|
-
return db;
|
|
213
|
-
}
|
|
214
|
-
case "postgres-js": {
|
|
215
|
-
const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
|
|
216
|
-
const { drizzle: drizzle2 } = await import("./postgres-js/index.cjs");
|
|
217
|
-
if (typeof params[0] === "object") {
|
|
218
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
219
|
-
if (typeof connection === "object" && connection.url !== void 0) {
|
|
220
|
-
const { url, ...config } = connection;
|
|
221
|
-
const instance3 = client2(url, config);
|
|
222
|
-
const db3 = drizzle2(instance3, drizzleConfig);
|
|
223
|
-
return db3;
|
|
224
|
-
}
|
|
225
|
-
const instance2 = client2(connection);
|
|
226
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
227
|
-
return db2;
|
|
228
|
-
}
|
|
229
|
-
const instance = client2(params[0]);
|
|
230
|
-
const db = drizzle2(instance);
|
|
231
|
-
return db;
|
|
232
|
-
}
|
|
233
|
-
case "tidb-serverless": {
|
|
234
|
-
const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
|
|
235
|
-
const { drizzle: drizzle2 } = await import("./tidb-serverless/index.cjs");
|
|
236
|
-
if (typeof params[0] === "string") {
|
|
237
|
-
const instance2 = connect({
|
|
238
|
-
url: params[0]
|
|
239
|
-
});
|
|
240
|
-
const db2 = drizzle2(instance2);
|
|
241
|
-
return db2;
|
|
242
|
-
}
|
|
243
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
244
|
-
const instance = typeof connection === "string" ? connect({
|
|
245
|
-
url: connection
|
|
246
|
-
}) : connect(connection);
|
|
247
|
-
const db = drizzle2(instance, drizzleConfig);
|
|
248
|
-
return db;
|
|
249
|
-
}
|
|
250
|
-
case "vercel-postgres": {
|
|
251
|
-
const drizzleConfig = params[0];
|
|
252
|
-
const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
|
|
253
|
-
const { drizzle: drizzle2 } = await import("./vercel-postgres/index.cjs");
|
|
254
|
-
const db = drizzle2(sql, drizzleConfig);
|
|
255
|
-
return db;
|
|
256
|
-
}
|
|
257
|
-
case "pglite": {
|
|
258
|
-
const { PGlite } = await import("@electric-sql/pglite").catch(() => importError("@electric-sql/pglite"));
|
|
259
|
-
const { drizzle: drizzle2 } = await import("./pglite/index.cjs");
|
|
260
|
-
if (typeof params[0] === "object") {
|
|
261
|
-
const { connection, ...drizzleConfig } = params[0];
|
|
262
|
-
if (typeof connection === "object") {
|
|
263
|
-
const { dataDir, ...options } = connection;
|
|
264
|
-
const instance3 = new PGlite(dataDir, options);
|
|
265
|
-
const db3 = drizzle2(instance3, drizzleConfig);
|
|
266
|
-
return db3;
|
|
267
|
-
}
|
|
268
|
-
const instance2 = new PGlite(connection);
|
|
269
|
-
const db2 = drizzle2(instance2, drizzleConfig);
|
|
270
|
-
return db2;
|
|
271
|
-
}
|
|
272
|
-
const instance = new PGlite(params[0]);
|
|
273
|
-
const db = drizzle2(instance);
|
|
274
|
-
return db;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
assertUnreachable(client);
|
|
278
|
-
}
|
|
279
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
280
|
-
0 && (module.exports = {
|
|
281
|
-
drizzle
|
|
282
|
-
});
|
|
283
|
-
//# sourceMappingURL=monodriver.cjs.map
|