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

studio.ts — drizzle-orm Source File

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

File typescript DrizzleKit SnapshotSerializer 29 imports 4 dependents 14 functions

Entity Profile

Dependency Diagram

graph LR
  82de12f8_a8ca_9d38_8da8_9ac945d81e01["studio.ts"]
  09e5bcf1_0f03_3dbd_fbdb_762440f28855["utils.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 09e5bcf1_0f03_3dbd_fbdb_762440f28855
  54221957_c725_0bfe_4345_4f3837d39296["safeRegister"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 54221957_c725_0bfe_4345_4f3837d39296
  d81f4f07_7d2c_ea3f_392e_6be6055ba361["mysql.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> d81f4f07_7d2c_ea3f_392e_6be6055ba361
  aa34baa9_cce1_f1d8_4227_98c889d76b37["postgres.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> aa34baa9_cce1_f1d8_4227_98c889d76b37
  f65d82f8_85a1_d127_5f91_94b02851c72a["singlestore.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> f65d82f8_85a1_d127_5f91_94b02851c72a
  340acff6_8c1f_b0b5_9358_222e8b76d050["sqlite.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 340acff6_8c1f_b0b5_9358_222e8b76d050
  5847e5ae_7b4a_4b02_b68f_883ef88b3c1a["utils.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 5847e5ae_7b4a_4b02_b68f_883ef88b3c1a
  12d176aa_882f_ddcb_4bc8_df3fbb9542b1["utils.ts"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 12d176aa_882f_ddcb_4bc8_df3fbb9542b1
  0f6bcec9_496e_3388_a2d6_2f3af1e12d53["getColumnCasing"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 0f6bcec9_496e_3388_a2d6_2f3af1e12d53
  cbab40d4_ac7c_1d5b_bd7b_7bf6059aeaf6["pglite"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> cbab40d4_ac7c_1d5b_bd7b_7bf6059aeaf6
  f342d0eb_235d_9841_7ab4_737dee92a538["node-server"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> f342d0eb_235d_9841_7ab4_737dee92a538
  45610973_089d_46f8_147a_6b3136d03f87["zod-validator"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 45610973_089d_46f8_147a_6b3136d03f87
  591ffa87_509e_0273_b1da_1537e70dd3ef["crypto"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 591ffa87_509e_0273_b1da_1537e70dd3ef
  690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"]
  82de12f8_a8ca_9d38_8da8_9ac945d81e01 --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031
  style 82de12f8_a8ca_9d38_8da8_9ac945d81e01 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/// <reference types="@cloudflare/workers-types" />
import type { PGlite } from '@electric-sql/pglite';
import { serve } from '@hono/node-server';
import { zValidator } from '@hono/zod-validator';
import { createHash } from 'crypto';
import { AnyColumn, AnyTable, is } from 'drizzle-orm';
import { AnyMySqlTable, getTableConfig as mysqlTableConfig, MySqlTable } from 'drizzle-orm/mysql-core';
import { AnyPgTable, getTableConfig as pgTableConfig, PgTable } from 'drizzle-orm/pg-core';
import {
	createTableRelationsHelpers,
	extractTablesRelationalConfig,
	Many,
	normalizeRelation,
	One,
	Relations,
	TablesRelationalConfig,
} from 'drizzle-orm/relations';
import {
	AnySingleStoreTable,
	getTableConfig as singlestoreTableConfig,
	SingleStoreTable,
} from 'drizzle-orm/singlestore-core';
import { AnySQLiteTable, getTableConfig as sqliteTableConfig, SQLiteTable } from 'drizzle-orm/sqlite-core';
import fs from 'fs';
import { Hono } from 'hono';
import { compress } from 'hono/compress';
import { cors } from 'hono/cors';
import { createServer } from 'node:https';
import { CasingType } from 'src/cli/validations/common';
import { LibSQLCredentials } from 'src/cli/validations/libsql';
import { assertUnreachable } from 'src/global';
import { z } from 'zod';
import { safeRegister } from '../cli/commands/utils';
import type { MysqlCredentials } from '../cli/validations/mysql';
import type { PostgresCredentials } from '../cli/validations/postgres';
import type { SingleStoreCredentials } from '../cli/validations/singlestore';
import type { SqliteCredentials } from '../cli/validations/sqlite';
import type { Proxy, TransactionProxy } from '../utils';
import { prepareFilenames } from '.';
import { getColumnCasing } from './utils';

type CustomDefault = {
	schema: string;
	table: string;
	column: string;
	func: () => unknown;
};

type SchemaFile = {
	name: string;
	content: string;
};

export type Setup = {
	dbHash: string;
	dialect: 'postgresql' | 'mysql' | 'sqlite' | 'singlestore';
	packageName:
		| '@aws-sdk/client-rds-data'
		| 'pglite'
		| 'pg'
// ... (788 more lines)

Domain

Subdomains

Dependencies

Frequently Asked Questions

What does studio.ts do?
studio.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleKit domain, SnapshotSerializer subdomain.
What functions are defined in studio.ts?
studio.ts defines 14 function(s): drizzleForLibSQL, drizzleForMySQL, drizzleForPostgres, drizzleForSQLite, drizzleForSingleStore, extractRelations, getCustomDefaults, jsonStringify, params, prepareMySqlSchema, and 4 more.
What does studio.ts depend on?
studio.ts imports 29 module(s): ., common, compress, cors, crypto, drizzle-orm, fs, getColumnCasing, and 21 more.
What files import studio.ts?
studio.ts is imported by 4 file(s): api.ts, connections.ts, schema.ts, utils.ts.
Where is studio.ts in the architecture?
studio.ts is located at drizzle-kit/src/serializer/studio.ts (domain: DrizzleKit, subdomain: SnapshotSerializer, directory: drizzle-kit/src/serializer).

Analyze Your Own Codebase

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

Try Supermodel Free