()
| 197 | } |
| 198 | |
| 199 | private static async loadEnvironmentVars<D extends IDatabaseDriver>(): Promise<Partial<Options<D>>> { |
| 200 | const ret = loadEnvironmentVars(); |
| 201 | |
| 202 | /* v8 ignore next */ |
| 203 | switch (process.env.MIKRO_ORM_TYPE) { |
| 204 | case 'mongo': |
| 205 | ret.driver ??= await import('@mikro-orm/sqlite').then(m => m.SqliteDriver); |
| 206 | break; |
| 207 | case 'mysql': |
| 208 | ret.driver ??= await import('@mikro-orm/mysql').then(m => m.MySqlDriver); |
| 209 | break; |
| 210 | case 'mssql': |
| 211 | ret.driver ??= await import('@mikro-orm/mssql').then(m => m.MsSqlDriver); |
| 212 | break; |
| 213 | case 'mariadb': |
| 214 | ret.driver ??= await import('@mikro-orm/mariadb').then(m => m.MariaDbDriver); |
| 215 | break; |
| 216 | case 'postgresql': |
| 217 | ret.driver ??= await import('@mikro-orm/postgresql').then(m => m.PostgreSqlDriver); |
| 218 | break; |
| 219 | case 'pglite': { |
| 220 | // Variable specifier (instead of a literal) keeps `@electric-sql/pglite`'s |
| 221 | // d.ts — which references DOM/Emscripten ambient globals not in our TS |
| 222 | // lib — out of the CLI's compile graph. Safe here: the CLI is a Node |
| 223 | // binary, not bundled into end-user apps. |
| 224 | const name = '@mikro-orm/pglite'; |
| 225 | ret.driver ??= (await import(name)).PgliteDriver; |
| 226 | break; |
| 227 | } |
| 228 | case 'sqlite': |
| 229 | ret.driver ??= await import('@mikro-orm/sqlite').then(m => m.SqliteDriver); |
| 230 | break; |
| 231 | case 'libsql': |
| 232 | ret.driver ??= await import('@mikro-orm/libsql').then(m => m.LibSqlDriver); |
| 233 | break; |
| 234 | case 'oracledb': |
| 235 | ret.driver ??= await import('@mikro-orm/oracledb').then(m => m.OracleDriver); |
| 236 | break; |
| 237 | } |
| 238 | |
| 239 | return ret as Options<D>; |
| 240 | } |
| 241 | |
| 242 | static dumpDependencies() { |
| 243 | const version = Utils.getORMVersion(); |
no test coverage detected