utils.ts — drizzle-orm Source File
Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 4 imports, 4 dependents.
Entity Profile
Dependency Diagram
graph LR a0d71e56_fdeb_c568_64e9_fb247617a17c["utils.ts"] 04df2f9f_a1ec_55a9_5392_86b92a0e6555["column.ts"] a0d71e56_fdeb_c568_64e9_fb247617a17c --> 04df2f9f_a1ec_55a9_5392_86b92a0e6555 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] a0d71e56_fdeb_c568_64e9_fb247617a17c --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 53497908_16e7_977d_e97d_7414884a88a6["pg-core"] a0d71e56_fdeb_c568_64e9_fb247617a17c --> 53497908_16e7_977d_e97d_7414884a88a6 a9e31838_d52b_02c1_2b9d_c4354b2ad2fa["valibot"] a0d71e56_fdeb_c568_64e9_fb247617a17c --> a9e31838_d52b_02c1_2b9d_c4354b2ad2fa 04df2f9f_a1ec_55a9_5392_86b92a0e6555["column.ts"] 04df2f9f_a1ec_55a9_5392_86b92a0e6555 --> a0d71e56_fdeb_c568_64e9_fb247617a17c 8f030d4f_790e_1311_a4f1_f0509f0c2d44["column.types.ts"] 8f030d4f_790e_1311_a4f1_f0509f0c2d44 --> a0d71e56_fdeb_c568_64e9_fb247617a17c a1e9a186_355d_5f4f_7cf0_889804754896["schema.ts"] a1e9a186_355d_5f4f_7cf0_889804754896 --> a0d71e56_fdeb_c568_64e9_fb247617a17c 8beb3c26_f68c_2b02_ad7a_a436848c5635["schema.types.internal.ts"] 8beb3c26_f68c_2b02_ad7a_a436848c5635 --> a0d71e56_fdeb_c568_64e9_fb247617a17c style a0d71e56_fdeb_c568_64e9_fb247617a17c 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 * as v from 'valibot';
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 = v.InferOutput<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 RemoveNever<T> = {
[K in keyof T as T[K] extends never ? never : K]: T[K];
};
export type RemoveNeverElements<T extends any[]> = T extends [infer First, ...infer Rest]
? IsNever<First> extends true ? RemoveNeverElements<Rest>
: [First, ...RemoveNeverElements<Rest>]
: [];
export type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns']
: T extends View ? T['_']['selectedFields']
: T;
Domain
Subdomains
Functions
Types
Dependencies
- column.ts
- drizzle-orm
- pg-core
- valibot
Imported By
Source
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, valibot.
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-valibot/src/utils.ts (domain: ValidationAdapters, subdomain: TypeMapping, directory: drizzle-valibot/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free