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

Function construct

drizzle-orm/src/vercel-postgres/driver.ts:48–85  ·  view source on GitHub ↗
(
	client: VercelPgClient,
	config: DrizzleConfig<TSchema> = {},
)

Source from the content-addressed store, hash-verified

46}
47
48function construct<TSchema extends Record<string, unknown> = Record<string, never>>(
49 client: VercelPgClient,
50 config: DrizzleConfig<TSchema> = {},
51): VercelPgDatabase<TSchema> & {
52 $client: VercelPgClient;
53} {
54 const dialect = new PgDialect({ casing: config.casing });
55 let logger;
56 if (config.logger === true) {
57 logger = new DefaultLogger();
58 } else if (config.logger !== false) {
59 logger = config.logger;
60 }
61
62 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
63 if (config.schema) {
64 const tablesConfig = extractTablesRelationalConfig(
65 config.schema,
66 createTableRelationsHelpers,
67 );
68 schema = {
69 fullSchema: config.schema,
70 schema: tablesConfig.tables,
71 tableNamesMap: tablesConfig.tableNamesMap,
72 };
73 }
74
75 const driver = new VercelPgDriver(client, dialect, { logger, cache: config.cache });
76 const session = driver.createSession(schema);
77 const db = new VercelPgDatabase(dialect, session, schema as any) as VercelPgDatabase<TSchema>;
78 (<any> db).$client = client;
79 (<any> db).$cache = config.cache;
80 if ((<any> db).$cache) {
81 (<any> db).$cache['invalidate'] = config.cache?.onMutate;
82 }
83
84 return db as any;
85}
86
87export function drizzle<
88 TSchema extends Record<string, unknown> = Record<string, never>,

Callers 2

drizzleFunction · 0.70
mockFunction · 0.70

Calls 2

createSessionMethod · 0.95

Tested by

no test coverage detected