Home / File/ utils.ts — drizzle-orm Source File

utils.ts — drizzle-orm Source File

Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 17 imports, 29 dependents.

File typescript DrizzleKit CLIWorkflow 17 imports 29 dependents 22 functions

Entity Profile

Dependency Diagram

graph LR
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a["utils.ts"]
  b14d3855_8cce_38c9_8952_a9d014c2fb1b["migrate.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> b14d3855_8cce_38c9_8952_a9d014c2fb1b
  217e2cbd_4fb7_ceab_251c_5733ece08a8f["views.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 217e2cbd_4fb7_ceab_251c_5733ece08a8f
  4faee74a_425e_9f08_40df_f43ccc717e6e["info"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 4faee74a_425e_9f08_40df_f43ccc717e6e
  8f03c4cf_4fdf_b056_3b24_d493cab0cc81["global.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 8f03c4cf_4fdf_b056_3b24_d493cab0cc81
  071bfc71_ad06_c0c4_cba2_360298dd4b47["assertUnreachable"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 071bfc71_ad06_c0c4_cba2_360298dd4b47
  5e835bc2_6860_21e3_492c_babcc3e93529["schemaValidator.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 5e835bc2_6860_21e3_492c_babcc3e93529
  964b24c5_3481_bed3_69f7_b6e4cefe58bb["gelSchema.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 964b24c5_3481_bed3_69f7_b6e4cefe58bb
  f2ee16c1_40e6_43f3_15b2_c391a3ac170b["mysqlSchema.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> f2ee16c1_40e6_43f3_15b2_c391a3ac170b
  cbf63853_6723_30fc_5ded_88a8944f77c4["pgSchema.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> cbf63853_6723_30fc_5ded_88a8944f77c4
  d63c81a6_6779_4926_bffe_7351e12a4301["singlestoreSchema.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> d63c81a6_6779_4926_bffe_7351e12a4301
  03c276d3_0efe_66e2_9ba9_e67edbf29418["sqliteSchema.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 03c276d3_0efe_66e2_9ba9_e67edbf29418
  82de12f8_a8ca_9d38_8da8_9ac945d81e01["studio.ts"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 82de12f8_a8ca_9d38_8da8_9ac945d81e01
  ccd8f141_31dd_df9e_0535_43efaea4d6db["better-sqlite3"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> ccd8f141_31dd_df9e_0535_43efaea4d6db
  0f00c7dd_5eba_f1f8_c559_a99431086500["chalk"]
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a --> 0f00c7dd_5eba_f1f8_c559_a99431086500
  style 5847e5ae_7b4a_4b02_b68f_883ef88b3c1a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { RunResult } from 'better-sqlite3';
import chalk from 'chalk';
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'fs';
import { join } from 'path';
import { parse } from 'url';
import type { NamedWithSchema } from './cli/commands/migrate';
import { info } from './cli/views';
import { assertUnreachable, snapshotVersion } from './global';
import type { Dialect } from './schemaValidator';
import { backwardCompatibleGelSchema } from './serializer/gelSchema';
import { backwardCompatibleMysqlSchema } from './serializer/mysqlSchema';
import { backwardCompatiblePgSchema } from './serializer/pgSchema';
import { backwardCompatibleSingleStoreSchema } from './serializer/singlestoreSchema';
import { backwardCompatibleSqliteSchema } from './serializer/sqliteSchema';
import type { ProxyParams } from './serializer/studio';

export type Proxy = (params: ProxyParams) => Promise<any[]>;

export type TransactionProxy = (queries: { sql: string; method?: ProxyParams['method'] }[]) => Promise<any[]>;

export type DB = {
	query: <T extends any = any>(sql: string, params?: any[]) => Promise<T[]>;
};

export type SQLiteDB = {
	query: <T extends any = any>(sql: string, params?: any[]) => Promise<T[]>;
	run(query: string): Promise<void>;
};

export type LibSQLDB = {
	query: <T extends any = any>(sql: string, params?: any[]) => Promise<T[]>;
	run(query: string): Promise<void>;
	batchWithPragma?(queries: string[]): Promise<void>;
};

export const copy = <T>(it: T): T => {
	return JSON.parse(JSON.stringify(it));
};

export const objectValues = <T extends object>(obj: T): Array<T[keyof T]> => {
	return Object.values(obj);
};

export const assertV1OutFolder = (out: string) => {
	if (!existsSync(out)) return;

	const oldMigrationFolders = readdirSync(out).filter(
		(it) => it.length === 14 && /^\d+$/.test(it),
	);

	if (oldMigrationFolders.length > 0) {
		console.log(
			`Your migrations folder format is outdated, please run ${
				chalk.green.bold(
					`drizzle-kit up`,
				)
			}`,
		);
		process.exit(1);
	}
// ... (312 more lines)

Domain

Subdomains

Frequently Asked Questions

What does utils.ts do?
utils.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, CLIWorkflow subdomain.
What functions are defined in utils.ts?
utils.ts defines 22 function(s): assertV1OutFolder, columnRenameKey, copy, dryJournal, escapeSingleQuotes, findAddedAndRemoved, isPgArrayType, kloudMeta, normalisePGliteUrl, normaliseSQLiteUrl, and 12 more.
What does utils.ts depend on?
utils.ts imports 17 module(s): assertUnreachable, better-sqlite3, chalk, fs, gelSchema.ts, global.ts, info, migrate.ts, and 9 more.
What files import utils.ts?
utils.ts is imported by 29 file(s): api.ts, check.ts, connections.ts, drop.ts, gelSerializer.ts, introspect-gel.ts, introspect-mysql.ts, introspect-pg.ts, and 21 more.
Where is utils.ts in the architecture?
utils.ts is located at drizzle-kit/src/utils.ts (domain: DrizzleKit, subdomain: CLIWorkflow, directory: drizzle-kit/src).

Analyze Your Own Codebase

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

Try Supermodel Free