Home / File/ queries.ts — astro Source File

queries.ts — astro Source File

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

File typescript CoreAstro CoreMiddleware 7 imports 11 functions

Entity Profile

Dependency Diagram

graph LR
  ad642171_aa4f_abf2_da4d_c5b2e217a132["queries.ts"]
  ff38d957_51ef_6b52_a469_b132668d9154["../runtime/errors.js"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> ff38d957_51ef_6b52_a469_b132668d9154
  22a59779_880d_0799_08b9_126d5432bad6["./types.js"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> 22a59779_880d_0799_08b9_126d5432bad6
  e4a7cb59_3c1e_4823_8146_150431eedb41["./utils.js"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> e4a7cb59_3c1e_4823_8146_150431eedb41
  97fa73a6_cf67_73a5_b60d_d52bfb00c7d8["./core/types.js"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> 97fa73a6_cf67_73a5_b60d_d52bfb00c7d8
  5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac["drizzle-orm"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> 5e5ea2f4_4ff1_f558_0bea_0b3ded79b0ac
  fb1af543_c710_bc94_95c6_6f94e01b66dd["sqlite-core"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> fb1af543_c710_bc94_95c6_6f94e01b66dd
  10250468_0e83_bd69_43e9_3bcef2294a91["piccolore"]
  ad642171_aa4f_abf2_da4d_c5b2e217a132 --> 10250468_0e83_bd69_43e9_3bcef2294a91
  style ad642171_aa4f_abf2_da4d_c5b2e217a132 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { SQL } from 'drizzle-orm';
import { SQLiteAsyncDialect } from 'drizzle-orm/sqlite-core';
import colors from 'piccolore';
import {
	FOREIGN_KEY_DNE_ERROR,
	FOREIGN_KEY_REFERENCES_EMPTY_ERROR,
	FOREIGN_KEY_REFERENCES_LENGTH_ERROR,
	REFERENCE_DNE_ERROR,
} from '../runtime/errors.js';
import { isSerializedSQL } from '../runtime/types.js';
import { hasPrimaryKey } from '../runtime/utils.js';
import type {
	BooleanColumn,
	ColumnType,
	DateColumn,
	DBColumn,
	DBTable,
	JsonColumn,
	NumberColumn,
	TextColumn,
} from './types.js';

const sqlite = new SQLiteAsyncDialect();

export const SEED_DEV_FILE_NAME = ['seed.ts', 'seed.js', 'seed.mjs', 'seed.mts'];

export function getDropTableIfExistsQuery(tableName: string) {
	return `DROP TABLE IF EXISTS ${sqlite.escapeName(tableName)}`;
}

export function getCreateTableQuery(tableName: string, table: DBTable) {
	let query = `CREATE TABLE ${sqlite.escapeName(tableName)} (`;

	const colQueries = [];
	const colHasPrimaryKey = Object.entries(table.columns).find(([, column]) =>
		hasPrimaryKey(column),
	);
	if (!colHasPrimaryKey) {
		colQueries.push('_id INTEGER PRIMARY KEY');
	}
	for (const [columnName, column] of Object.entries(table.columns)) {
		const colQuery = `${sqlite.escapeName(columnName)} ${schemaTypeToSqlType(
			column.type,
		)}${getModifiers(columnName, column)}`;
		colQueries.push(colQuery);
	}

	colQueries.push(...getCreateForeignKeyQueries(tableName, table));

	query += colQueries.join(', ') + ')';
	return query;
}

export function getCreateIndexQueries(tableName: string, table: Pick<DBTable, 'indexes'>) {
	let queries: string[] = [];
	for (const [indexName, indexProps] of Object.entries(table.indexes ?? {})) {
		const onColNames = asArray(indexProps.on);
		const onCols = onColNames.map((colName) => sqlite.escapeName(colName));

		const unique = indexProps.unique ? 'UNIQUE ' : '';
// ... (147 more lines)

Domain

Subdomains

Dependencies

  • ../runtime/errors.js
  • ./core/types.js
  • ./types.js
  • ./utils.js
  • drizzle-orm
  • piccolore
  • sqlite-core

Frequently Asked Questions

What does queries.ts do?
queries.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 queries.ts?
queries.ts defines 11 function(s): asArray, getCreateForeignKeyQueries, getCreateIndexQueries, getCreateTableQuery, getDefaultValueSql, getDropTableIfExistsQuery, getModifiers, getReferencesConfig, hasDefault, schemaTypeToSqlType, and 1 more.
What does queries.ts depend on?
queries.ts imports 7 module(s): ../runtime/errors.js, ./core/types.js, ./types.js, ./utils.js, drizzle-orm, piccolore, sqlite-core.
Where is queries.ts in the architecture?
queries.ts is located at packages/db/src/core/queries.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