33 lines
986 B
JavaScript
33 lines
986 B
JavaScript
import { Prisma } from "@prisma/client";
|
|
import { entityKind } from "../../entity.js";
|
|
import { DefaultLogger } from "../../logger.js";
|
|
import { MySqlDatabase, MySqlDialect } from "../../mysql-core/index.js";
|
|
import { PrismaMySqlSession } from "./session.js";
|
|
class PrismaMySqlDatabase extends MySqlDatabase {
|
|
static [entityKind] = "PrismaMySqlDatabase";
|
|
constructor(client, logger) {
|
|
const dialect = new MySqlDialect();
|
|
super(dialect, new PrismaMySqlSession(dialect, client, { logger }), void 0, "default");
|
|
}
|
|
}
|
|
function drizzle(config = {}) {
|
|
let logger;
|
|
if (config.logger === true) {
|
|
logger = new DefaultLogger();
|
|
} else if (config.logger !== false) {
|
|
logger = config.logger;
|
|
}
|
|
return Prisma.defineExtension((client) => {
|
|
return client.$extends({
|
|
name: "drizzle",
|
|
client: {
|
|
$drizzle: new PrismaMySqlDatabase(client, logger)
|
|
}
|
|
});
|
|
});
|
|
}
|
|
export {
|
|
PrismaMySqlDatabase,
|
|
drizzle
|
|
};
|
|
//# sourceMappingURL=driver.js.map
|