(
...params: [
TClient | string,
] | [
TClient | string,
SingleStoreDriverDrizzleConfig<TSchema>,
] | [
(
& SingleStoreDriverDrizzleConfig<TSchema>
& ({
connection: string | PoolOptions;
} | {
client: TClient;
})
),
]
)
| 121 | }; |
| 122 | |
| 123 | export function drizzle< |
| 124 | TSchema extends Record<string, unknown> = Record<string, never>, |
| 125 | TClient extends AnySingleStoreDriverConnection = CallbackPool, |
| 126 | >( |
| 127 | ...params: [ |
| 128 | TClient | string, |
| 129 | ] | [ |
| 130 | TClient | string, |
| 131 | SingleStoreDriverDrizzleConfig<TSchema>, |
| 132 | ] | [ |
| 133 | ( |
| 134 | & SingleStoreDriverDrizzleConfig<TSchema> |
| 135 | & ({ |
| 136 | connection: string | PoolOptions; |
| 137 | } | { |
| 138 | client: TClient; |
| 139 | }) |
| 140 | ), |
| 141 | ] |
| 142 | ): SingleStoreDriverDatabase<TSchema> & { |
| 143 | $client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient; |
| 144 | } { |
| 145 | if (typeof params[0] === 'string') { |
| 146 | const connectionString = params[0]!; |
| 147 | const instance = createPool({ |
| 148 | uri: connectionString, |
| 149 | connectAttributes: CONNECTION_ATTRS, |
| 150 | }); |
| 151 | |
| 152 | return construct(instance, params[1]) as any; |
| 153 | } |
| 154 | |
| 155 | if (isConfig(params[0])) { |
| 156 | const { connection, client, ...drizzleConfig } = params[0] as |
| 157 | & { connection?: PoolOptions | string; client?: TClient } |
| 158 | & SingleStoreDriverDrizzleConfig<TSchema>; |
| 159 | |
| 160 | if (client) return construct(client, drizzleConfig) as any; |
| 161 | |
| 162 | let opts: PoolOptions = {}; |
| 163 | opts = typeof connection === 'string' |
| 164 | ? { |
| 165 | uri: connection, |
| 166 | supportBigNumbers: true, |
| 167 | connectAttributes: CONNECTION_ATTRS, |
| 168 | } |
| 169 | : { |
| 170 | ...connection, |
| 171 | connectAttributes: { |
| 172 | ...connection!.connectAttributes, |
| 173 | ...CONNECTION_ATTRS, |
| 174 | }, |
| 175 | }; |
| 176 | |
| 177 | const instance = createPool(opts); |
| 178 | const db = construct(instance, drizzleConfig); |
| 179 | |
| 180 | return db as any; |
no test coverage detected