Home / File/ mysql.test.ts — drizzle-orm Source File

mysql.test.ts — drizzle-orm Source File

Architecture documentation for mysql.test.ts, a typescript file in the drizzle-orm codebase. 11 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d["mysql.test.ts"]
  98f24684_7026_c838_c58f_d0555f9affa9["index.ts"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 98f24684_7026_c838_c58f_d0555f9affa9
  3594c1f8_e289_c87e_9f92_6f1cf7eb00b7["utils.ts"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 3594c1f8_e289_c87e_9f92_6f1cf7eb00b7
  6c645383_bc9e_0c4e_1d50_f7a3865c1d28["Expect"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 6c645383_bc9e_0c4e_1d50_f7a3865c1d28
  96d30bdb_daf2_c71a_e75b_71042e300cf7["expectSchemaShape"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 96d30bdb_daf2_c71a_e75b_71042e300cf7
  4859a2e0_4bd3_506a_e7e6_bf4316983bb5["arktype"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 4859a2e0_4bd3_506a_e7e6_bf4316983bb5
  690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031
  93ed9350_daa0_6c21_81a6_ed6b2a48bbdf["mysql-core"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 93ed9350_daa0_6c21_81a6_ed6b2a48bbdf
  e3330aa9_fee9_b340_1093_1c8a98953c05["json-rules-engine"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> e3330aa9_fee9_b340_1093_1c8a98953c05
  8d35eaf2_a542_cfd4_fa1a_fafca0f02686["vitest"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 8d35eaf2_a542_cfd4_fa1a_fafca0f02686
  05f0a280_d0c9_693a_a4bf_83cc671012d2["column.ts"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 05f0a280_d0c9_693a_a4bf_83cc671012d2
  45e26f9d_6717_943d_0371_5d349b8c9472["constants.ts"]
  be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d --> 45e26f9d_6717_943d_0371_5d349b8c9472
  style be50f68c_403c_4c6d_ec4a_4ef7fcd6d29d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { Type, type } from 'arktype';
import { type Equal, sql } from 'drizzle-orm';
import { customType, int, json, mysqlSchema, mysqlTable, mysqlView, serial, text } from 'drizzle-orm/mysql-core';
import type { TopLevelCondition } from 'json-rules-engine';
import { test } from 'vitest';
import { bigintNarrow, jsonSchema, unsignedBigintNarrow } from '~/column.ts';
import { CONSTANTS } from '~/constants.ts';
import { createInsertSchema, createSelectSchema, createUpdateSchema } from '../src';
import { Expect, expectSchemaShape } from './utils.ts';

const intSchema = type.keywords.number.integer.atLeast(CONSTANTS.INT32_MIN).atMost(CONSTANTS.INT32_MAX);
const serialNumberModeSchema = type.keywords.number.integer.atLeast(0).atMost(Number.MAX_SAFE_INTEGER);
const textSchema = type.string.atMostLength(CONSTANTS.INT16_UNSIGNED_MAX);

test('table - select', (t) => {
	const table = mysqlTable('test', {
		id: serial().primaryKey(),
		name: text().notNull(),
	});

	const result = createSelectSchema(table);
	const expected = type({ id: serialNumberModeSchema, name: textSchema });
	expectSchemaShape(t, expected).from(result);
	Expect<Equal<typeof result, typeof expected>>();
});

test('table in schema - select', (tc) => {
	const schema = mysqlSchema('test');
	const table = schema.table('test', {
		id: serial().primaryKey(),
		name: text().notNull(),
	});

	const result = createSelectSchema(table);
	const expected = type({ id: serialNumberModeSchema, name: textSchema });
	expectSchemaShape(tc, expected).from(result);
	Expect<Equal<typeof result, typeof expected>>();
});

test('table - insert', (t) => {
	const table = mysqlTable('test', {
		id: serial().primaryKey(),
		name: text().notNull(),
		age: int(),
	});

	const result = createInsertSchema(table);
	const expected = type({
		id: serialNumberModeSchema.optional(),
		name: textSchema,
		age: intSchema.or(type.null).optional(),
	});
	expectSchemaShape(t, expected).from(result);
	Expect<Equal<typeof result, typeof expected>>();
});

test('table - update', (t) => {
	const table = mysqlTable('test', {
		id: serial().primaryKey(),
		name: text().notNull(),
// ... (442 more lines)

Subdomains

Dependencies

Frequently Asked Questions

What does mysql.test.ts do?
mysql.test.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the ValidationAdapters domain, TypeMapping subdomain.
What functions are defined in mysql.test.ts?
mysql.test.ts defines 2 function(s): nestedSelect, view.
What does mysql.test.ts depend on?
mysql.test.ts imports 11 module(s): Expect, arktype, column.ts, constants.ts, drizzle-orm, expectSchemaShape, index.ts, json-rules-engine, and 3 more.
Where is mysql.test.ts in the architecture?
mysql.test.ts is located at drizzle-arktype/tests/mysql.test.ts (domain: ValidationAdapters, subdomain: TypeMapping, directory: drizzle-arktype/tests).

Analyze Your Own Codebase

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

Try Supermodel Free