Home / File/ introspect-sqlite.ts — drizzle-orm Source File

introspect-sqlite.ts — drizzle-orm Source File

Architecture documentation for introspect-sqlite.ts, a typescript file in the drizzle-orm codebase. 8 imports, 2 dependents.

File typescript DrizzleKit SchemaDiffer 8 imports 2 dependents 16 functions

Entity Profile

Dependency Diagram

graph LR
  c1c349dd_2e31_d056_728c_c034cebb41c0["introspect-sqlite.ts"]
  036f4e7e_88ec_1167_0cc5_711786d91440["utils.ts"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 036f4e7e_88ec_1167_0cc5_711786d91440
  9135e6b6_37f7_c980_ee35_90f5531de5a4["common.ts"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 9135e6b6_37f7_c980_ee35_90f5531de5a4
  8f03c4cf_4fdf_b056_3b24_d493cab0cc81["global.ts"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 8f03c4cf_4fdf_b056_3b24_d493cab0cc81
  071bfc71_ad06_c0c4_cba2_360298dd4b47["assertUnreachable"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 071bfc71_ad06_c0c4_cba2_360298dd4b47
  f2ee16c1_40e6_43f3_15b2_c391a3ac170b["mysqlSchema.ts"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> f2ee16c1_40e6_43f3_15b2_c391a3ac170b
  db1af279_1679_84af_1e53_0bb821c5aa1e["CheckConstraint"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> db1af279_1679_84af_1e53_0bb821c5aa1e
  03c276d3_0efe_66e2_9ba9_e67edbf29418["sqliteSchema.ts"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 03c276d3_0efe_66e2_9ba9_e67edbf29418
  2b7d63c9_9828_8abd_ad6d_064a9cc83dd1["casing"]
  c1c349dd_2e31_d056_728c_c034cebb41c0 --> 2b7d63c9_9828_8abd_ad6d_064a9cc83dd1
  c2c22050_0d5c_404e_2b18_5934c728a89c["introspect.ts"]
  c2c22050_0d5c_404e_2b18_5934c728a89c --> c1c349dd_2e31_d056_728c_c034cebb41c0
  cea479b5_7704_0339_de4e_3cc844834ec0["sqliteIntrospect.ts"]
  cea479b5_7704_0339_de4e_3cc844834ec0 --> c1c349dd_2e31_d056_728c_c034cebb41c0
  style c1c349dd_2e31_d056_728c_c034cebb41c0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/* eslint-disable @typescript-eslint/no-unsafe-argument */
import { toCamelCase } from 'drizzle-orm/casing';
import './@types/utils';
import type { Casing } from './cli/validations/common';
import { assertUnreachable } from './global';
import { CheckConstraint } from './serializer/mysqlSchema';
import type {
	Column,
	ForeignKey,
	Index,
	PrimaryKey,
	SQLiteSchema,
	SQLiteSchemaInternal,
	UniqueConstraint,
} from './serializer/sqliteSchema';

const sqliteImportsList = new Set([
	'sqliteTable',
	'integer',
	'real',
	'text',
	'numeric',
	'blob',
]);

export const indexName = (tableName: string, columns: string[]) => {
	return `${tableName}_${columns.join('_')}_index`;
};

const objToStatement2 = (json: any) => {
	json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));

	const keys = Object.keys(json);
	if (keys.length === 0) return;

	let statement = '{ ';
	statement += keys.map((it) => `${it}: "${json[it]}"`).join(', '); // no "" for keys
	statement += ' }';
	return statement;
};

const relations = new Set<string>();

const escapeColumnKey = (value: string) => {
	if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
		return `"${value}"`;
	}
	return value;
};

const withCasing = (value: string, casing?: Casing) => {
	if (casing === 'preserve') {
		return escapeColumnKey(value);
	}
	if (casing === 'camel') {
		return escapeColumnKey(value.camelCase());
	}

	return value;
};
// ... (474 more lines)

Domain

Subdomains

Frequently Asked Questions

What does introspect-sqlite.ts do?
introspect-sqlite.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, SchemaDiffer subdomain.
What functions are defined in introspect-sqlite.ts?
introspect-sqlite.ts defines 16 function(s): column, createTableChecks, createTableColumns, createTableFKs, createTableIndexes, createTablePKs, createTableUniques, dbColumnName, escapeColumnKey, indexName, and 6 more.
What does introspect-sqlite.ts depend on?
introspect-sqlite.ts imports 8 module(s): CheckConstraint, assertUnreachable, casing, common.ts, global.ts, mysqlSchema.ts, sqliteSchema.ts, utils.ts.
What files import introspect-sqlite.ts?
introspect-sqlite.ts is imported by 2 file(s): introspect.ts, sqliteIntrospect.ts.
Where is introspect-sqlite.ts in the architecture?
introspect-sqlite.ts is located at drizzle-kit/src/introspect-sqlite.ts (domain: DrizzleKit, subdomain: SchemaDiffer, directory: drizzle-kit/src).

Analyze Your Own Codebase

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

Try Supermodel Free