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

subquery.ts — drizzle-orm Source File

Architecture documentation for subquery.ts, a typescript file in the drizzle-orm codebase. 2 imports, 3 dependents.

File typescript DrizzleORM QueryBuilders 2 imports 3 dependents 2 classes

Entity Profile

Dependency Diagram

graph LR
  562ff959_f5c2_ad28_16c7_59f4a572a158["subquery.ts"]
  bc6d807f_7198_da43_c1e6_911af80c80ee["entity.ts"]
  562ff959_f5c2_ad28_16c7_59f4a572a158 --> bc6d807f_7198_da43_c1e6_911af80c80ee
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  562ff959_f5c2_ad28_16c7_59f4a572a158 --> 99347ab2_b1a1_faf4_e37c_7643e4b2eb8a
  7664a866_a3c0_a860_d69f_58ff87a29d3b["operations.ts"]
  7664a866_a3c0_a860_d69f_58ff87a29d3b --> 562ff959_f5c2_ad28_16c7_59f4a572a158
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb["selection-proxy.ts"]
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb --> 562ff959_f5c2_ad28_16c7_59f4a572a158
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  99737bc3_a631_a054_9291_f966c791930f --> 562ff959_f5c2_ad28_16c7_59f4a572a158
  style 562ff959_f5c2_ad28_16c7_59f4a572a158 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { entityKind } from './entity.ts';
import type { SQL, SQLWrapper } from './sql/sql.ts';

export interface Subquery<
	// eslint-disable-next-line @typescript-eslint/no-unused-vars
	TAlias extends string = string,
	// eslint-disable-next-line @typescript-eslint/no-unused-vars
	TSelectedFields extends Record<string, unknown> = Record<string, unknown>,
> extends SQLWrapper {
	// SQLWrapper runtime implementation is defined in 'sql/sql.ts'
}
export class Subquery<
	TAlias extends string = string,
	TSelectedFields extends Record<string, unknown> = Record<string, unknown>,
> implements SQLWrapper {
	static readonly [entityKind]: string = 'Subquery';

	declare _: {
		brand: 'Subquery';
		sql: SQL;
		selectedFields: TSelectedFields;
		alias: TAlias;
		isWith: boolean;
		usedTables?: string[];
	};

	constructor(sql: SQL, fields: TSelectedFields, alias: string, isWith = false, usedTables: string[] = []) {
		this._ = {
			brand: 'Subquery',
			sql,
			selectedFields: fields as TSelectedFields,
			alias: alias as TAlias,
			isWith,
			usedTables,
		};
	}

	// getSQL(): SQL<unknown> {
	// 	return new SQL([this]);
	// }
}

export class WithSubquery<
	TAlias extends string = string,
	TSelection extends Record<string, unknown> = Record<string, unknown>,
> extends Subquery<TAlias, TSelection> {
	static override readonly [entityKind]: string = 'WithSubquery';
}

export type WithSubqueryWithoutSelection<TAlias extends string> = WithSubquery<TAlias, {}>;

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does subquery.ts do?
subquery.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, QueryBuilders subdomain.
What does subquery.ts depend on?
subquery.ts imports 2 module(s): entity.ts, sql.ts.
What files import subquery.ts?
subquery.ts is imported by 3 file(s): operations.ts, selection-proxy.ts, utils.ts.
Where is subquery.ts in the architecture?
subquery.ts is located at drizzle-orm/src/subquery.ts (domain: DrizzleORM, subdomain: QueryBuilders, directory: drizzle-orm/src).

Analyze Your Own Codebase

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

Try Supermodel Free