Home / Function/ withReplicas() — drizzle-orm Function Reference

withReplicas() — drizzle-orm Function Reference

Architecture documentation for the withReplicas() function in db.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6["withReplicas()"]
  f8321666_9ec2_95b1_a6aa_bc9b6f317f41["db.ts"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|defined in| f8321666_9ec2_95b1_a6aa_bc9b6f317f41
  f5077ad9_65c7_cce5_f66a_bbeffca09a1f["select()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| f5077ad9_65c7_cce5_f66a_bbeffca09a1f
  9d07dccd_921c_3c15_f2e1_ba3b2144efe7["selectDistinct()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| 9d07dccd_921c_3c15_f2e1_ba3b2144efe7
  23f13aaa_d82b_791b_5360_56f77f8f9010["update()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| 23f13aaa_d82b_791b_5360_56f77f8f9010
  11af9de9_693a_a8e4_d221_357193c41c8b["insert()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| 11af9de9_693a_a8e4_d221_357193c41c8b
  5454cfdb_7899_e8ff_02c9_d3796a04b225["execute()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| 5454cfdb_7899_e8ff_02c9_d3796a04b225
  c51e6ee3_2e15_d4db_5774_758c33563408["transaction()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| c51e6ee3_2e15_d4db_5774_758c33563408
  019d1cda_60e2_f15b_dbab_8c58c0ea2778["$count()"]
  c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 -->|calls| 019d1cda_60e2_f15b_dbab_8c58c0ea2778
  style c2412b2b_a61e_ec2a_c12b_f9c03187e9b6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/singlestore-core/db.ts lines 495–530

export const withReplicas = <
	Q extends SingleStoreDriverDatabase,
>(
	primary: Q,
	replicas: [Q, ...Q[]],
	getReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,
): SingleStoreWithReplicas<Q> => {
	const select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);
	const selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);
	const $count: Q['$count'] = (...args: [any]) => getReplica(replicas).$count(...args);
	const $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);

	const update: Q['update'] = (...args: [any]) => primary.update(...args);
	const insert: Q['insert'] = (...args: [any]) => primary.insert(...args);
	const $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);
	const execute: Q['execute'] = (...args: [any]) => primary.execute(...args);
	const transaction: Q['transaction'] = (...args: [any, any]) => primary.transaction(...args);

	return {
		...primary,
		update,
		insert,
		delete: $delete,
		execute,
		transaction,
		$primary: primary,
		$replicas: replicas,
		select,
		selectDistinct,
		$count,
		with: $with,
		get query() {
			return getReplica(replicas).query;
		},
	};
};

Domain

Subdomains

Frequently Asked Questions

What does withReplicas() do?
withReplicas() is a function in the drizzle-orm codebase, defined in drizzle-orm/src/singlestore-core/db.ts.
Where is withReplicas() defined?
withReplicas() is defined in drizzle-orm/src/singlestore-core/db.ts at line 495.
What does withReplicas() call?
withReplicas() calls 7 function(s): $count, execute, insert, select, selectDistinct, transaction, update.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free