MCPcopy
hub / github.com/drizzle-team/drizzle-orm / construct

Function construct

drizzle-orm/src/singlestore/driver.ts:61–106  ·  view source on GitHub ↗
(
	client: TClient,
	config: SingleStoreDriverDrizzleConfig<TSchema> = {},
)

Source from the content-addressed store, hash-verified

59 & ({ schema: TSchema } | { schema?: undefined });
60
61function construct<
62 TSchema extends Record<string, unknown> = Record<string, never>,
63 TClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,
64>(
65 client: TClient,
66 config: SingleStoreDriverDrizzleConfig<TSchema> = {},
67): SingleStoreDriverDatabase<TSchema> & {
68 $client: AnySingleStoreDriverConnection extends TClient ? CallbackPool : TClient;
69} {
70 const dialect = new SingleStoreDialect({ casing: config.casing });
71 let logger;
72 if (config.logger === true) {
73 logger = new DefaultLogger();
74 } else if (config.logger !== false) {
75 logger = config.logger;
76 }
77
78 const clientForInstance = isCallbackClient(client) ? client.promise() : client;
79
80 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
81 if (config.schema) {
82 const tablesConfig = extractTablesRelationalConfig(
83 config.schema,
84 createTableRelationsHelpers,
85 );
86 schema = {
87 fullSchema: config.schema,
88 schema: tablesConfig.tables,
89 tableNamesMap: tablesConfig.tableNamesMap,
90 };
91 }
92
93 const driver = new SingleStoreDriverDriver(clientForInstance as SingleStoreDriverClient, dialect, {
94 logger,
95 cache: config.cache,
96 });
97 const session = driver.createSession(schema);
98 const db = new SingleStoreDriverDatabase(dialect, session, schema as any) as SingleStoreDriverDatabase<TSchema>;
99 (<any> db).$client = client;
100 (<any> db).$cache = config.cache;
101 if ((<any> db).$cache) {
102 (<any> db).$cache['invalidate'] = config.cache?.onMutate;
103 }
104
105 return db as any;
106}
107
108interface CallbackClient {
109 promise(): SingleStoreDriverClient;

Callers 2

drizzleFunction · 0.70
mockFunction · 0.70

Calls 4

createSessionMethod · 0.95
isCallbackClientFunction · 0.70
promiseMethod · 0.65

Tested by

no test coverage detected