queries.ts — astro Source File
Architecture documentation for queries.ts, a typescript file in the astro codebase. 7 imports, 0 dependents.
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
Functions
Dependencies
- ../runtime/errors.js
- ./core/types.js
- ./types.js
- ./utils.js
- drizzle-orm
- piccolore
- sqlite-core
Source
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