{"version":3,"file":"driver.cjs","names":["postgresConstructor","sqliteConstructor","mysqlConstructor"],"sources":["../../src/bun-sql/driver.ts"],"sourcesContent":["import type { SQL } from 'bun';\nimport type { DrizzleMySqlConfig } from '~/mysql-core/utils.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { DrizzleSQLiteConfig } from '~/sqlite-core/utils.ts';\nimport { type BunMySqlDatabase, drizzle as mysqlConstructor } from './mysql/driver.ts';\nimport { type BunSQLDatabase, drizzle as postgresConstructor } from './postgres/driver.ts';\nimport { type BunSQLiteDatabase, drizzle as sqliteConstructor } from './sqlite/driver.ts';\n\nexport function drizzle<\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends SQL = SQL,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzlePgConfig<TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzlePgConfig<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<TRelations> & {\n\t$client: TClient;\n} {\n\treturn postgresConstructor(...params);\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(config?: DrizzlePgConfig<TRelations>): BunSQLDatabase<TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn postgresConstructor.mock(config);\n\t}\n\n\texport function postgres<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tstring,\n\t\t] | [\n\t\t\tstring,\n\t\t\tDrizzlePgConfig<TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzlePgConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunSQLDatabase<TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn postgresConstructor(...params);\n\t}\n\n\texport namespace postgres {\n\t\texport function mock<\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: DrizzlePgConfig<TRelations>): BunSQLDatabase<TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn postgresConstructor.mock(config);\n\t\t}\n\t}\n\n\texport function sqlite<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tstring,\n\t\t] | [\n\t\t\tstring,\n\t\t\tDrizzleSQLiteConfig<TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleSQLiteConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunSQLiteDatabase<TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn sqliteConstructor(...params);\n\t}\n\n\texport namespace sqlite {\n\t\texport function mock<\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: DrizzleSQLiteConfig<TRelations>): BunSQLiteDatabase<TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn sqliteConstructor.mock(config);\n\t\t}\n\t}\n\n\texport function mysql<\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\tTClient extends SQL = SQL,\n\t>(\n\t\t...params: [\n\t\t\tstring,\n\t\t] | [\n\t\t\tstring,\n\t\t\tDrizzleMySqlConfig<TRelations>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleMySqlConfig<TRelations>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | ({ url?: string } & SQL.Options);\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): BunMySqlDatabase<TRelations> & {\n\t\t$client: TClient;\n\t} {\n\t\treturn mysqlConstructor(...params) as BunMySqlDatabase<TRelations> & {\n\t\t\t$client: TClient;\n\t\t};\n\t}\n\n\texport namespace mysql {\n\t\texport function mock<\n\t\t\tTRelations extends AnyRelations = EmptyRelations,\n\t\t>(config?: DrizzleMySqlConfig<TRelations>): BunMySqlDatabase<TRelations> & {\n\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t} {\n\t\t\treturn mysqlConstructor.mock(config) as BunMySqlDatabase<TRelations> & {\n\t\t\t\t$client: '$client is not available on drizzle.mock()';\n\t\t\t};\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AASA,SAAgB,QAIf,GAAG,QAiBF;AACD,QAAOA,wCAAoB,GAAG,OAAO;;;CAI9B,SAAS,KAEd,QAEA;AACD,SAAOA,wCAAoB,KAAK,OAAO;;;CAGjC,SAAS,SAIf,GAAG,QAiBF;AACD,SAAOA,wCAAoB,GAAG,OAAO;;;AAG/B;EACC,SAAS,KAEd,QAEA;AACD,UAAOA,wCAAoB,KAAK,OAAO;;;;CAIlC,SAAS,OAIf,GAAG,QAiBF;AACD,SAAOC,sCAAkB,GAAG,OAAO;;;AAG7B;EACC,SAAS,KAEd,QAEA;AACD,UAAOA,sCAAkB,KAAK,OAAO;;;;CAIhC,SAAS,MAIf,GAAG,QAiBF;AACD,SAAOC,qCAAiB,GAAG,OAAO;;;AAK5B;EACC,SAAS,KAEd,QAEA;AACD,UAAOA,qCAAiB,KAAK,OAAO"}