schema.types.internal.ts — drizzle-orm Source File
Architecture documentation for schema.types.internal.ts, a typescript file in the drizzle-orm codebase. 4 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR d530d59d_be0a_6412_1cd0_197b9709fc36["schema.types.internal.ts"] 2c5e5814_b2ae_7e07_7c6b_6bb520b5f82a["column.types.ts"] d530d59d_be0a_6412_1cd0_197b9709fc36 --> 2c5e5814_b2ae_7e07_7c6b_6bb520b5f82a 6926d326_babb_b38d_98de_f0d261e6df93["utils.ts"] d530d59d_be0a_6412_1cd0_197b9709fc36 --> 6926d326_babb_b38d_98de_f0d261e6df93 4859a2e0_4bd3_506a_e7e6_bf4316983bb5["arktype"] d530d59d_be0a_6412_1cd0_197b9709fc36 --> 4859a2e0_4bd3_506a_e7e6_bf4316983bb5 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] d530d59d_be0a_6412_1cd0_197b9709fc36 --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 b3de3d3d_2c66_6c17_9e29_4ae6af2ae68f["schema.ts"] b3de3d3d_2c66_6c17_9e29_4ae6af2ae68f --> d530d59d_be0a_6412_1cd0_197b9709fc36 28b925d4_7f31_9845_f7d2_ae4d3d15f3ee["schema.types.ts"] 28b925d4_7f31_9845_f7d2_ae4d3d15f3ee --> d530d59d_be0a_6412_1cd0_197b9709fc36 style d530d59d_be0a_6412_1cd0_197b9709fc36 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type { Type, type } from 'arktype';
import type { Column, DrizzleTypeError, SelectedFieldsFlat, Simplify, Table, View } from 'drizzle-orm';
import type { ArktypeNullable, ArktypeOptional, GetArktypeType, HandleColumn } from './column.types.ts';
import type { ColumnIsGeneratedAlwaysAs, GetSelection } from './utils.ts';
export interface Conditions {
never: (column?: Column) => boolean;
optional: (column: Column) => boolean;
nullable: (column: Column) => boolean;
}
type GenericSchema = type.cast<unknown> | [type.cast<unknown>, '?'];
type BuildRefineField<T> = T extends GenericSchema ? ((schema: T) => GenericSchema) | GenericSchema : never;
export type BuildRefine<
TColumns extends Record<string, any>,
> = {
[K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?:
TColumns[K] extends Column ? BuildRefineField<GetArktypeType<TColumns[K]>>
: BuildRefine<GetSelection<TColumns[K]>>;
};
type HandleRefinement<
TType extends 'select' | 'insert' | 'update',
TRefinement,
TColumn extends Column,
> = TRefinement extends (schema: any) => GenericSchema ? (
TColumn['_']['notNull'] extends true ? ReturnType<TRefinement>
: ArktypeNullable<ReturnType<TRefinement>>
) extends infer TSchema ? TType extends 'update' ? ArktypeOptional<TSchema>
: TSchema
: Type<any>
: TRefinement;
type IsRefinementDefined<
TRefinements extends Record<string | symbol | number, any> | undefined,
TKey extends string | symbol | number,
> = TRefinements extends object ? TRefinements[TKey] extends GenericSchema | ((schema: any) => any) ? true
: false
: false;
export type BuildSchema<
TType extends 'select' | 'insert' | 'update',
TColumns extends Record<string, any>,
TRefinements extends Record<string, any> | undefined,
> = type.instantiate<
Simplify<
{
readonly [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? never : K]:
TColumns[K] extends infer TColumn extends Column
? IsRefinementDefined<TRefinements, K> extends true
? HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>
: HandleColumn<TType, TColumn>
: TColumns[K] extends infer TNested extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<
TType,
GetSelection<TNested>,
TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined
>
: any;
}
>
>;
export type NoUnknownKeys<
TRefinement extends Record<string, any>,
TCompare extends Record<string, any>,
> = {
[K in keyof TRefinement]: K extends keyof TCompare
? TRefinement[K] extends Record<string, GenericSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]>
: TRefinement[K]
: DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`>;
};
Domain
Subdomains
Functions
Types
Dependencies
- arktype
- column.types.ts
- drizzle-orm
- utils.ts
Source
Frequently Asked Questions
What does schema.types.internal.ts do?
schema.types.internal.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 schema.types.internal.ts?
schema.types.internal.ts defines 3 function(s): GenericSchema, column, schema.
What does schema.types.internal.ts depend on?
schema.types.internal.ts imports 4 module(s): arktype, column.types.ts, drizzle-orm, utils.ts.
What files import schema.types.internal.ts?
schema.types.internal.ts is imported by 2 file(s): schema.ts, schema.types.ts.
Where is schema.types.internal.ts in the architecture?
schema.types.internal.ts is located at drizzle-arktype/src/schema.types.internal.ts (domain: ValidationAdapters, subdomain: TypeMapping, directory: drizzle-arktype/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free