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

Function drizzle

drizzle-orm/src/sqlite-proxy/driver.ts:53–101  ·  view source on GitHub ↗
(
	callback: RemoteCallback,
	batchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema>,
	config?: DrizzleConfig<TSchema>,
)

Source from the content-addressed store, hash-verified

51 config?: DrizzleConfig<TSchema>,
52): SqliteRemoteDatabase<TSchema>;
53export function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(
54 callback: RemoteCallback,
55 batchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema>,
56 config?: DrizzleConfig<TSchema>,
57): SqliteRemoteDatabase<TSchema> {
58 const dialect = new SQLiteAsyncDialect({ casing: config?.casing });
59 let logger;
60 let cache;
61 let _batchCallback: AsyncBatchRemoteCallback | undefined;
62 let _config: DrizzleConfig<TSchema> = {};
63
64 if (batchCallback) {
65 if (typeof batchCallback === 'function') {
66 _batchCallback = batchCallback as AsyncBatchRemoteCallback;
67 _config = config ?? {};
68 } else {
69 _batchCallback = undefined;
70 _config = batchCallback as DrizzleConfig<TSchema>;
71 }
72
73 if (_config.logger === true) {
74 logger = new DefaultLogger();
75 } else if (_config.logger !== false) {
76 logger = _config.logger;
77 cache = _config.cache;
78 }
79 }
80
81 let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;
82 if (_config.schema) {
83 const tablesConfig = extractTablesRelationalConfig(
84 _config.schema,
85 createTableRelationsHelpers,
86 );
87 schema = {
88 fullSchema: _config.schema,
89 schema: tablesConfig.tables,
90 tableNamesMap: tablesConfig.tableNamesMap,
91 };
92 }
93
94 const session = new SQLiteRemoteSession(callback, dialect, schema, _batchCallback, { logger, cache });
95 const db = new SqliteRemoteDatabase('async', dialect, session, schema) as SqliteRemoteDatabase<TSchema>;
96 (<any> db).$cache = cache;
97 if ((<any> db).$cache) {
98 (<any> db).$cache['invalidate'] = cache?.onMutate;
99 }
100 return db;
101}

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected