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

Function construct

drizzle-orm/src/neon-http/driver.ts:124–169  ·  view source on GitHub ↗
(
	client: TClient,
	config: DrizzleConfig<TSchema> = {},
)

Source from the content-addressed store, hash-verified

122}
123
124function construct<
125 TSchema extends Record<string, unknown> = Record<string, never>,
126 TClient extends NeonQueryFunction<any, any> = NeonQueryFunction<any, any>,
127>(
128 client: TClient,
129 config: DrizzleConfig<TSchema> = {},
130): NeonHttpDatabase<TSchema> & {
131 $client: TClient;
132} {
133 const dialect = new PgDialect({ casing: config.casing });
134 let logger;
135 if (config.logger === true) {
136 logger = new DefaultLogger();
137 } else if (config.logger !== false) {
138 logger = config.logger;
139 }
140
141 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
142 if (config.schema) {
143 const tablesConfig = extractTablesRelationalConfig(
144 config.schema,
145 createTableRelationsHelpers,
146 );
147 schema = {
148 fullSchema: config.schema,
149 schema: tablesConfig.tables,
150 tableNamesMap: tablesConfig.tableNamesMap,
151 };
152 }
153
154 const driver = new NeonHttpDriver(client, dialect, { logger, cache: config.cache });
155 const session = driver.createSession(schema);
156
157 const db = new NeonHttpDatabase(
158 dialect,
159 session,
160 schema as RelationalSchemaConfig<ExtractTablesWithRelations<TSchema>> | undefined,
161 );
162 (<any> db).$client = client;
163 (<any> db).$cache = config.cache;
164 if ((<any> db).$cache) {
165 (<any> db).$cache['invalidate'] = config.cache?.onMutate;
166 }
167
168 return db as any;
169}
170
171export function drizzle<
172 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