types.ts — astro Source File
Architecture documentation for types.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6e2bac63_8347_e439_f286_003fc8700611["types.ts"] d97d1d38_d12d_091d_d5c6_25c44398932a["./core/schemas.js"] 6e2bac63_8347_e439_f286_003fc8700611 --> d97d1d38_d12d_091d_d5c6_25c44398932a f8c9251e_f535_6281_2118_9e79a4155212["v4"] 6e2bac63_8347_e439_f286_003fc8700611 --> f8c9251e_f535_6281_2118_9e79a4155212 style 6e2bac63_8347_e439_f286_003fc8700611 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type * as z from 'zod/v4';
import type {
booleanColumnSchema,
columnSchema,
columnsSchema,
dateColumnSchema,
dbConfigSchema,
indexSchema,
jsonColumnSchema,
MaybeArray,
numberColumnOptsSchema,
numberColumnSchema,
referenceableColumnSchema,
resolvedIndexSchema,
tableSchema,
textColumnOptsSchema,
textColumnSchema,
} from './schemas.js';
export type ResolvedIndexes = z.output<typeof dbConfigSchema>['tables'][string]['indexes'];
export type BooleanColumn = z.infer<typeof booleanColumnSchema>;
export type BooleanColumnInput = z.input<typeof booleanColumnSchema>;
export type NumberColumn = z.infer<typeof numberColumnSchema>;
export type NumberColumnInput = z.input<typeof numberColumnSchema>;
export type TextColumn = z.infer<typeof textColumnSchema>;
export type TextColumnInput = z.input<typeof textColumnSchema>;
export type DateColumn = z.infer<typeof dateColumnSchema>;
export type DateColumnInput = z.input<typeof dateColumnSchema>;
export type JsonColumn = z.infer<typeof jsonColumnSchema>;
export type JsonColumnInput = z.input<typeof jsonColumnSchema>;
export type ColumnType =
| BooleanColumn['type']
| NumberColumn['type']
| TextColumn['type']
| DateColumn['type']
| JsonColumn['type'];
export type DBColumn = z.infer<typeof columnSchema>;
export type DBColumnInput =
| DateColumnInput
| BooleanColumnInput
| NumberColumnInput
| TextColumnInput
| JsonColumnInput;
export type DBColumns = z.infer<typeof columnsSchema>;
export type DBTable = z.infer<typeof tableSchema>;
export type DBTables = Record<string, DBTable>;
export type ResolvedDBTables = z.output<typeof dbConfigSchema>['tables'];
export type ResolvedDBTable = z.output<typeof dbConfigSchema>['tables'][string];
export type DBSnapshot = {
schema: Record<string, ResolvedDBTable>;
version: string;
};
export type DBConfigInput = z.input<typeof dbConfigSchema>;
export type DBConfig = z.infer<typeof dbConfigSchema>;
export type ColumnsConfig = z.input<typeof tableSchema>['columns'];
export type OutputColumnsConfig = z.output<typeof tableSchema>['columns'];
export interface TableConfig<TColumns extends ColumnsConfig = ColumnsConfig>
// use `extends` to ensure types line up with zod,
// only adding generics for type completions.
extends Pick<z.input<typeof tableSchema>, 'columns' | 'indexes' | 'foreignKeys'> {
columns: TColumns;
foreignKeys?: Array<{
columns: MaybeArray<Extract<keyof TColumns, string>>;
references: () => MaybeArray<z.input<typeof referenceableColumnSchema>>;
}>;
indexes?: Array<IndexConfig<TColumns>> | Record<string, LegacyIndexConfig<TColumns>>;
deprecated?: boolean;
}
interface IndexConfig<TColumns extends ColumnsConfig> extends z.input<typeof indexSchema> {
on: MaybeArray<Extract<keyof TColumns, string>>;
}
/** @deprecated */
interface LegacyIndexConfig<TColumns extends ColumnsConfig>
extends z.input<typeof resolvedIndexSchema> {
on: MaybeArray<Extract<keyof TColumns, string>>;
}
// We cannot use `Omit<NumberColumn | TextColumn, 'type'>`,
// since Omit collapses our union type on primary key.
export type NumberColumnOpts = z.input<typeof numberColumnOptsSchema>;
export type TextColumnOpts = z.input<typeof textColumnOptsSchema>;
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace Astro {
export interface IntegrationHooks {
'astro:db:setup'?: (options: {
extendDb: (options: {
configEntrypoint?: URL | string;
seedEntrypoint?: URL | string;
}) => void;
}) => void | Promise<void>;
}
}
}
Domain
Subdomains
Functions
Classes
Types
- BooleanColumn
- BooleanColumnInput
- ColumnType
- ColumnsConfig
- DBColumn
- DBColumnInput
- DBColumns
- DBConfig
- DBConfigInput
- DBSnapshot
- DBTable
- DBTables
- DateColumn
- DateColumnInput
- IndexConfig
- IntegrationHooks
- JsonColumn
- JsonColumnInput
- LegacyIndexConfig
- NumberColumn
- NumberColumnInput
- NumberColumnOpts
- OutputColumnsConfig
- ResolvedDBTable
- ResolvedDBTables
- ResolvedIndexes
- TableConfig
- TextColumn
- TextColumnInput
- TextColumnOpts
Dependencies
- ./core/schemas.js
- v4
Source
Frequently Asked Questions
What does types.ts do?
types.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in types.ts?
types.ts defines 1 function(s): z.
What does types.ts depend on?
types.ts imports 2 module(s): ./core/schemas.js, v4.
Where is types.ts in the architecture?
types.ts is located at packages/db/src/core/types.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/db/src/core).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free