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

Function construct

drizzle-orm/src/tidb-serverless/driver.ts:28–64  ·  view source on GitHub ↗
(
	client: Connection,
	config: DrizzleConfig<TSchema> = {},
)

Source from the content-addressed store, hash-verified

26}
27
28function construct<TSchema extends Record<string, unknown> = Record<string, never>>(
29 client: Connection,
30 config: DrizzleConfig<TSchema> = {},
31): TiDBServerlessDatabase<TSchema> & {
32 $client: Connection;
33} {
34 const dialect = new MySqlDialect({ casing: config.casing });
35 let logger;
36 if (config.logger === true) {
37 logger = new DefaultLogger();
38 } else if (config.logger !== false) {
39 logger = config.logger;
40 }
41
42 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
43 if (config.schema) {
44 const tablesConfig = extractTablesRelationalConfig(
45 config.schema,
46 createTableRelationsHelpers,
47 );
48 schema = {
49 fullSchema: config.schema,
50 schema: tablesConfig.tables,
51 tableNamesMap: tablesConfig.tableNamesMap,
52 };
53 }
54
55 const session = new TiDBServerlessSession(client, dialect, undefined, schema, { logger, cache: config.cache });
56 const db = new TiDBServerlessDatabase(dialect, session, schema as any, 'default') as TiDBServerlessDatabase<TSchema>;
57 (<any> db).$client = client;
58 (<any> db).$cache = config.cache;
59 if ((<any> db).$cache) {
60 (<any> db).$cache['invalidate'] = config.cache?.onMutate;
61 }
62
63 return db as any;
64}
65
66export function drizzle<
67 TSchema extends Record<string, unknown> = Record<string, never>,

Callers 2

drizzleFunction · 0.70
mockFunction · 0.70

Calls 1

Tested by

no test coverage detected