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

utils.ts — drizzle-orm Source File

Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 4 imports, 4 dependents.

File typescript ValidationAdapters TypeMapping 4 imports 4 dependents 3 functions

Entity Profile

Dependency Diagram

graph LR
  90807ef2_6e28_df2f_8c6b_9bcb1bab99ec["utils.ts"]
  d3d3a2d1_4197_a39b_12f9_f9c7be54febc["column.ts"]
  90807ef2_6e28_df2f_8c6b_9bcb1bab99ec --> d3d3a2d1_4197_a39b_12f9_f9c7be54febc
  690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"]
  90807ef2_6e28_df2f_8c6b_9bcb1bab99ec --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031
  53497908_16e7_977d_e97d_7414884a88a6["pg-core"]
  90807ef2_6e28_df2f_8c6b_9bcb1bab99ec --> 53497908_16e7_977d_e97d_7414884a88a6
  2eba3e52_10ef_4b48_38fc_0e1540a5fc3e["v4"]
  90807ef2_6e28_df2f_8c6b_9bcb1bab99ec --> 2eba3e52_10ef_4b48_38fc_0e1540a5fc3e
  d3d3a2d1_4197_a39b_12f9_f9c7be54febc["column.ts"]
  d3d3a2d1_4197_a39b_12f9_f9c7be54febc --> 90807ef2_6e28_df2f_8c6b_9bcb1bab99ec
  2be77f5f_e94f_b91a_88e0_947351113ff1["column.types.ts"]
  2be77f5f_e94f_b91a_88e0_947351113ff1 --> 90807ef2_6e28_df2f_8c6b_9bcb1bab99ec
  91122f81_e9f3_fa04_26c5_a8235e0646d0["schema.ts"]
  91122f81_e9f3_fa04_26c5_a8235e0646d0 --> 90807ef2_6e28_df2f_8c6b_9bcb1bab99ec
  acfeaa81_8bd9_605a_74e7_52a36a49babb["schema.types.internal.ts"]
  acfeaa81_8bd9_605a_74e7_52a36a49babb --> 90807ef2_6e28_df2f_8c6b_9bcb1bab99ec
  style 90807ef2_6e28_df2f_8c6b_9bcb1bab99ec fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { Column, SelectedFieldsFlat, Table, View } from 'drizzle-orm';
import type { PgEnum } from 'drizzle-orm/pg-core';
import type { z } from 'zod/v4';
import type { literalSchema } from './column.ts';

export function isColumnType<T extends Column>(column: Column, columnTypes: string[]): column is T {
	return columnTypes.includes(column.columnType);
}

export function isWithEnum(column: Column): column is typeof column & { enumValues: [string, ...string[]] } {
	return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
}

export const isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]> = isWithEnum as any;

type Literal = z.infer<typeof literalSchema>;
export type Json = Literal | { [key: string]: any } | any[];

export type IsNever<T> = [T] extends [never] ? true : false;

export type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false
	: undefined extends TEnum ? false
	: true;

export type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column
	? TColumn['_']['identity'] extends 'always' ? true
	: TColumn['_']['generated'] extends { type: 'byDefault' } | undefined ? false
	: true
	: false;

export type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns']
	: T extends View ? T['_']['selectedFields']
	: T;

Subdomains

Dependencies

Frequently Asked Questions

What does utils.ts do?
utils.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the ValidationAdapters domain, TypeMapping subdomain.
What functions are defined in utils.ts?
utils.ts defines 3 function(s): entity, isColumnType, isWithEnum.
What does utils.ts depend on?
utils.ts imports 4 module(s): column.ts, drizzle-orm, pg-core, v4.
What files import utils.ts?
utils.ts is imported by 4 file(s): column.ts, column.types.ts, schema.ts, schema.types.internal.ts.
Where is utils.ts in the architecture?
utils.ts is located at drizzle-zod/src/utils.ts (domain: ValidationAdapters, subdomain: TypeMapping, directory: drizzle-zod/src).

Analyze Your Own Codebase

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

Try Supermodel Free