Home / File/ generated-columns.ts — drizzle-orm Source File

generated-columns.ts — drizzle-orm Source File

Architecture documentation for generated-columns.ts, a typescript file in the drizzle-orm codebase. 5 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2["generated-columns.ts"]
  554a7c60_d7ae_c68e_f0c9_e3a02afcefb7["db.ts"]
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 --> 554a7c60_d7ae_c68e_f0c9_e3a02afcefb7
  7f1d57a5_8769_e884_7eaa_b42671c9ad52["utils"]
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 --> 7f1d57a5_8769_e884_7eaa_b42671c9ad52
  cab723dc_a166_a0df_470b_60287623b270["index"]
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 --> cab723dc_a166_a0df_470b_60287623b270
  473c5773_0de5_229b_c367_069934ec2a67["node-postgres"]
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 --> 473c5773_0de5_229b_c367_069934ec2a67
  3a00d3dc_4c3e_b034_8774_ca007103e041["pg-core"]
  b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 --> 3a00d3dc_4c3e_b034_8774_ca007103e041
  style b1ee4aa5_d932_64da_b9b9_2e3c716bd8d2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { type Equal, Expect } from 'type-tests/utils';
import { type InferInsertModel, type InferSelectModel, sql } from '~/index';
import { drizzle } from '~/node-postgres';
import { integer, pgTable, serial, text, varchar } from '~/pg-core';
import { db } from './db';

const users = pgTable(
	'users',
	{
		id: serial('id').primaryKey(),
		firstName: varchar('first_name', { length: 255 }),
		lastName: varchar('last_name', { length: 255 }),
		email: text('email').notNull(),
		fullName: text('full_name').generatedAlwaysAs(sql`concat_ws(first_name, ' ', last_name)`).notNull(),
		upperName: text('upper_name').generatedAlwaysAs(
			sql` case when first_name is null then null else upper(first_name) end `,
		),
	},
);
{
	type User = typeof users.$inferSelect;
	type NewUser = typeof users.$inferInsert;

	Expect<
		Equal<
			{
				id: number;
				firstName: string | null;
				lastName: string | null;
				email: string;
				fullName: string;
				upperName: string | null;
			},
			User
		>
	>();

	Expect<
		Equal<
			{
				email: string;
				id?: number | undefined;
				firstName?: string | null | undefined;
				lastName?: string | null | undefined;
			},
			NewUser
		>
	>();
}

{
	type User = InferSelectModel<typeof users>;
	type NewUser = InferInsertModel<typeof users>;

	Expect<
		Equal<
			{
				id: number;
				firstName: string | null;
				lastName: string | null;
// ... (163 more lines)

Domain

Types

Dependencies

  • db.ts
  • index
  • node-postgres
  • pg-core
  • utils

Frequently Asked Questions

What does generated-columns.ts do?
generated-columns.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain.
What does generated-columns.ts depend on?
generated-columns.ts imports 5 module(s): db.ts, index, node-postgres, pg-core, utils.
Where is generated-columns.ts in the architecture?
generated-columns.ts is located at drizzle-orm/type-tests/pg/generated-columns.ts (domain: DrizzleORM, 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