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

Function drizzle

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

Source from the content-addressed store, hash-verified

37}
38
39export function drizzle<
40 TSchema extends Record<string, unknown> = Record<string, never>,
41 TClient extends AnyD1Database = AnyD1Database,
42>(
43 client: TClient,
44 config: DrizzleConfig<TSchema> = {},
45): DrizzleD1Database<TSchema> & {
46 $client: TClient;
47} {
48 const dialect = new SQLiteAsyncDialect({ casing: config.casing });
49 let logger;
50 if (config.logger === true) {
51 logger = new DefaultLogger();
52 } else if (config.logger !== false) {
53 logger = config.logger;
54 }
55
56 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
57 if (config.schema) {
58 const tablesConfig = extractTablesRelationalConfig(
59 config.schema,
60 createTableRelationsHelpers,
61 );
62 schema = {
63 fullSchema: config.schema,
64 schema: tablesConfig.tables,
65 tableNamesMap: tablesConfig.tableNamesMap,
66 };
67 }
68
69 const session = new SQLiteD1Session(client as D1Database, dialect, schema, { logger, cache: config.cache });
70 const db = new DrizzleD1Database('async', dialect, session, schema) as DrizzleD1Database<TSchema>;
71 (<any> db).$client = client;
72 (<any> db).$cache = config.cache;
73 if ((<any> db).$cache) {
74 (<any> db).$cache['invalidate'] = config.cache?.onMutate;
75 }
76
77 return db as any;
78}

Callers 15

d1.test.tsFile · 0.90
d1-batch.test.tsFile · 0.90
db-rel.tsFile · 0.90
db.tsFile · 0.90
db-rel.tsFile · 0.90
db.tsFile · 0.90
db.tsFile · 0.90
db-rel.tsFile · 0.90
db.tsFile · 0.90
libsql.test.cjsFile · 0.50
node-pg.test.cjsFile · 0.50
neon-http.test.cjsFile · 0.50

Calls 1

Tested by

no test coverage detected