Home / File/ virtual.ts — astro Source File

virtual.ts — astro Source File

Architecture documentation for virtual.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro RoutingSystem 2 imports 8 functions

Entity Profile

Dependency Diagram

graph LR
  22ba0d9c_1871_6daf_b8e8_856593fa07f3["virtual.ts"]
  97fa73a6_cf67_73a5_b60d_d52bfb00c7d8["./core/types.js"]
  22ba0d9c_1871_6daf_b8e8_856593fa07f3 --> 97fa73a6_cf67_73a5_b60d_d52bfb00c7d8
  5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac["drizzle-orm"]
  22ba0d9c_1871_6daf_b8e8_856593fa07f3 --> 5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac
  style 22ba0d9c_1871_6daf_b8e8_856593fa07f3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { sql as _sql } from 'drizzle-orm';
import type {
	BooleanColumnInput,
	ColumnsConfig,
	DateColumnInput,
	DBConfigInput,
	JsonColumnInput,
	NumberColumnOpts,
	TableConfig,
	TextColumnOpts,
} from '../core/types.js';

function createColumn<S extends string, T extends Record<string, unknown>>(type: S, schema: T) {
	return {
		type,
		/**
		 * @internal
		 */
		schema,
	};
}

export const column = {
	number: <T extends NumberColumnOpts>(opts: T = {} as T) => {
		return createColumn('number', opts) satisfies { type: 'number' };
	},
	boolean: <T extends BooleanColumnInput['schema']>(opts: T = {} as T) => {
		return createColumn('boolean', opts) satisfies { type: 'boolean' };
	},
	text: <
		T extends TextColumnOpts,
		const E extends T['enum'] extends readonly [string, ...string[]]
			? Omit<T, 'enum'> & T['enum']
			: T,
	>(
		opts: E = {} as E,
	) => {
		return createColumn('text', opts) satisfies { type: 'text' };
	},
	date<T extends DateColumnInput['schema']>(opts: T = {} as T) {
		return createColumn('date', opts) satisfies { type: 'date' };
	},
	json<T extends JsonColumnInput['schema']>(opts: T = {} as T) {
		return createColumn('json', opts) satisfies { type: 'json' };
	},
};

export function defineTable<TColumns extends ColumnsConfig>(userConfig: TableConfig<TColumns>) {
	return userConfig;
}

export function defineDb(userConfig: DBConfigInput) {
	return userConfig;
}

// Exports a few common expressions
export const NOW = _sql`CURRENT_TIMESTAMP`;
export const TRUE = _sql`TRUE`;
export const FALSE = _sql`FALSE`;

export {
	and,
	asc,
	avg,
	avgDistinct,
	between,
	count,
	countDistinct,
	desc,
	eq,
	exists,
	gt,
	gte,
	ilike,
	inArray,
	isNotNull,
	isNull,
	like,
	lt,
	lte,
	max,
	min,
	ne,
	not,
	notBetween,
	notExists,
	notIlike,
	notInArray,
	or,
	sql,
	sum,
	sumDistinct,
} from 'drizzle-orm';

export { alias } from 'drizzle-orm/sqlite-core';
export { isDbError } from './utils.js';

Domain

Subdomains

Dependencies

  • ./core/types.js
  • drizzle-orm

Frequently Asked Questions

What does virtual.ts do?
virtual.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in virtual.ts?
virtual.ts defines 8 function(s): column.boolean, column.date, column.json, column.number, column.text, createColumn, defineDb, defineTable.
What does virtual.ts depend on?
virtual.ts imports 2 module(s): ./core/types.js, drizzle-orm.
Where is virtual.ts in the architecture?
virtual.ts is located at packages/db/src/runtime/virtual.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/db/src/runtime).

Analyze Your Own Codebase

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

Try Supermodel Free