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

Function drizzle

drizzle-orm/src/xata-http/driver.ts:52–91  ·  view source on GitHub ↗
(
	client: XataHttpClient,
	config: DrizzleConfig<TSchema> = {},
)

Source from the content-addressed store, hash-verified

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

Callers 1

xata-http.test.tsFile · 0.90

Calls 2

createSessionMethod · 0.95

Tested by

no test coverage detected