AK-21/Graphite-Industrial-Intelligence
0
1"use strict";2var __defProp = Object.defineProperty;3var __getOwnPropDesc = Object.getOwnPropertyDescriptor;4var __getOwnPropNames = Object.getOwnPropertyNames;5var __hasOwnProp = Object.prototype.hasOwnProperty;6var __export = (target, all) => {7 for (var name in all)8 __defProp(target, name, { get: all[name], enumerable: true });9};10var __copyProps = (to, from, except, desc) => {11 if (from && typeof from === "object" || typeof from === "function") {12 for (let key of __getOwnPropNames(from))13 if (!__hasOwnProp.call(to, key) && key !== except)14 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });15 }16 return to;17};18var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);19var driver_exports = {};20__export(driver_exports, {21 SingleStoreDatabase: () => import_db2.SingleStoreDatabase,22 SingleStoreDriverDatabase: () => SingleStoreDriverDatabase,23 SingleStoreDriverDriver: () => SingleStoreDriverDriver,24 drizzle: () => drizzle25});26module.exports = __toCommonJS(driver_exports);27var import_mysql2 = require("mysql2");28var import_entity = require("../entity.cjs");29var import_logger = require("../logger.cjs");30var import_relations = require("../relations.cjs");31var import_db = require("../singlestore-core/db.cjs");32var import_dialect = require("../singlestore-core/dialect.cjs");33var import_utils = require("../utils.cjs");34var import_version = require("../version.cjs");35var import_session = require("./session.cjs");36var import_db2 = require("../singlestore-core/db.cjs");37class SingleStoreDriverDriver {38 constructor(client, dialect, options = {}) {39 this.client = client;40 this.dialect = dialect;41 this.options = options;42 }43 static [import_entity.entityKind] = "SingleStoreDriverDriver";44 createSession(schema) {45 return new import_session.SingleStoreDriverSession(this.client, this.dialect, schema, {46 logger: this.options.logger,47 cache: this.options.cache48 });49 }50}51class SingleStoreDriverDatabase extends import_db.SingleStoreDatabase {52 static [import_entity.entityKind] = "SingleStoreDriverDatabase";53}54function construct(client, config = {}) {55 const dialect = new import_dialect.SingleStoreDialect({ casing: config.casing });56 let logger;57 if (config.logger === true) {58 logger = new import_logger.DefaultLogger();59 } else if (config.logger !== false) {60 logger = config.logger;61 }62 const clientForInstance = isCallbackClient(client) ? client.promise() : client;63 let schema;64 if (config.schema) {65 const tablesConfig = (0, import_relations.extractTablesRelationalConfig)(66 config.schema,67 import_relations.createTableRelationsHelpers68 );69 schema = {70 fullSchema: config.schema,71 schema: tablesConfig.tables,72 tableNamesMap: tablesConfig.tableNamesMap73 };74 }75 const driver = new SingleStoreDriverDriver(clientForInstance, dialect, {76 logger,77 cache: config.cache78 });79 const session = driver.createSession(schema);80 const db = new SingleStoreDriverDatabase(dialect, session, schema);81 db.$client = client;82 db.$cache = config.cache;83 if (db.$cache) {84 db.$cache["invalidate"] = config.cache?.onMutate;85 }86 return db;87}88function isCallbackClient(client) {89 return typeof client.promise === "function";90}91const CONNECTION_ATTRS = {92 _connector_name: "SingleStore Drizzle ORM Driver",93 _connector_version: import_version.npmVersion94};95function drizzle(...params) {96 if (typeof params[0] === "string") {97 const connectionString = params[0];98 const instance = (0, import_mysql2.createPool)({99 uri: connectionString,100 connectAttributes: CONNECTION_ATTRS101 });102 return construct(instance, params[1]);103 }104 if ((0, import_utils.isConfig)(params[0])) {105 const { connection, client, ...drizzleConfig } = params[0];106 if (client) return construct(client, drizzleConfig);107 let opts = {};108 opts = typeof connection === "string" ? {109 uri: connection,110 supportBigNumbers: true,111 connectAttributes: CONNECTION_ATTRS112 } : {113 ...connection,114 connectAttributes: {115 ...connection.connectAttributes,116 ...CONNECTION_ATTRS117 }118 };119 const instance = (0, import_mysql2.createPool)(opts);120 const db = construct(instance, drizzleConfig);121 return db;122 }123 return construct(params[0], params[1]);124}125((drizzle2) => {126 function mock(config) {127 return construct({}, config);128 }129 drizzle2.mock = mock;130})(drizzle || (drizzle = {}));131// Annotate the CommonJS export names for ESM import in node:1320 && (module.exports = {133 SingleStoreDatabase,134 SingleStoreDriverDatabase,135 SingleStoreDriverDriver,136 drizzle137});138//# sourceMappingURL=driver.cjs.map