Home / File/ with.ts — drizzle-orm Source File

with.ts — drizzle-orm Source File

Architecture documentation for with.ts, a typescript file in the drizzle-orm codebase. 6 imports, 0 dependents.

File typescript DrizzleORM DatabaseDrivers 6 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  a4706dce_ae84_706c_8ff7_845a0df354a1["with.ts"]
  554a7c60_d7ae_c68e_f0c9_e3a02afcefb7["db.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> 554a7c60_d7ae_c68e_f0c9_e3a02afcefb7
  25b05299_f48f_bceb_01ca_1343d330a8f7["utils.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> 25b05299_f48f_bceb_01ca_1343d330a8f7
  fa14e9c0_b73d_4bcb_463b_adf18df8a285["index.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> fa14e9c0_b73d_4bcb_463b_adf18df8a285
  5c46beaf_8b59_d2e3_def3_8af6daf1fccd["index.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> 5c46beaf_8b59_d2e3_def3_8af6daf1fccd
  be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd
  ecce3253_1e75_a87f_27b3_ca87e81a3024["utils.ts"]
  a4706dce_ae84_706c_8ff7_845a0df354a1 --> ecce3253_1e75_a87f_27b3_ca87e81a3024
  style a4706dce_ae84_706c_8ff7_845a0df354a1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { Equal } from 'type-tests/utils.ts';
import { Expect } from 'type-tests/utils.ts';
import { integer, pgTable, serial, text } from '~/pg-core/index.ts';
import { gt, inArray, like } from '~/sql/expressions/index.ts';
import { sql } from '~/sql/sql.ts';
import { DrizzleTypeError } from '~/utils.ts';
import { db } from './db.ts';

{
	const orders = pgTable('orders', {
		id: serial('id').primaryKey(),
		region: text('region').notNull(),
		product: text('product').notNull(),
		amount: integer('amount').notNull(),
		quantity: integer('quantity').notNull(),
		generated: text('generatedText').generatedAlwaysAs(sql``),
	});

	const regionalSales = db
		.$with('regional_sales')
		.as((qb) =>
			qb
				.select({
					region: orders.region,
					totalSales: sql<number>`sum(${orders.amount})`.as('total_sales'),
				})
				.from(orders)
				.groupBy(orders.region)
		);

	const topRegions = db
		.$with('top_regions')
		.as((qb) =>
			qb
				.select({
					region: orders.region,
					totalSales: orders.amount,
				})
				.from(regionalSales)
				.where(
					gt(
						regionalSales.totalSales,
						db.select({ sales: sql`sum(${regionalSales.totalSales})/10` }).from(regionalSales),
					),
				)
		);

	const result = await db
		.with(regionalSales, topRegions)
		.select({
			region: orders.region,
			product: orders.product,
			productUnits: sql<number>`sum(${orders.quantity})`,
			productSales: sql<number>`sum(${orders.amount})`,
		})
		.from(orders)
		.where(inArray(orders.region, db.select({ region: topRegions.region }).from(topRegions)));

	Expect<
		Equal<{
// ... (271 more lines)

Domain

Subdomains

Dependencies

  • db.ts
  • index.ts
  • index.ts
  • sql.ts
  • utils.ts
  • utils.ts

Frequently Asked Questions

What does with.ts do?
with.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What functions are defined in with.ts?
with.ts defines 3 function(s): regionalSales, sq2, topRegions.
What does with.ts depend on?
with.ts imports 6 module(s): db.ts, index.ts, index.ts, sql.ts, utils.ts, utils.ts.
Where is with.ts in the architecture?
with.ts is located at drizzle-orm/type-tests/pg/with.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/type-tests/pg).

Analyze Your Own Codebase

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

Try Supermodel Free