utils.ts — drizzle-orm Source File
Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 2 imports, 4 dependents.
Entity Profile
Dependency Diagram
graph LR b6483f8f_39d9_6c02_34b8_9a3df7d428eb["utils.ts"] a9e31838_d52b_02c1_2b9d_c4354b2ad2fa["valibot"] b6483f8f_39d9_6c02_34b8_9a3df7d428eb --> a9e31838_d52b_02c1_2b9d_c4354b2ad2fa 8d35eaf2_a542_cfd4_fa1a_fafca0f02686["vitest"] b6483f8f_39d9_6c02_34b8_9a3df7d428eb --> 8d35eaf2_a542_cfd4_fa1a_fafca0f02686 1bf01e0d_32f6_c53c_135f_427fc06b2360["mysql.test.ts"] 1bf01e0d_32f6_c53c_135f_427fc06b2360 --> b6483f8f_39d9_6c02_34b8_9a3df7d428eb f5bdd4a8_7392_24f0_b17c_d98d0b1db060["pg.test.ts"] f5bdd4a8_7392_24f0_b17c_d98d0b1db060 --> b6483f8f_39d9_6c02_34b8_9a3df7d428eb 00b34a50_02d5_93ca_7f88_bf3d79d32df9["singlestore.test.ts"] 00b34a50_02d5_93ca_7f88_bf3d79d32df9 --> b6483f8f_39d9_6c02_34b8_9a3df7d428eb fb71c760_c401_e9c7_5556_1ea015bc362f["sqlite.test.ts"] fb71c760_c401_e9c7_5556_1ea015bc362f --> b6483f8f_39d9_6c02_34b8_9a3df7d428eb style b6483f8f_39d9_6c02_34b8_9a3df7d428eb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type * as v from 'valibot';
import { expect, type TaskContext } from 'vitest';
function onlySpecifiedKeys(obj: Record<string, any>, keys: string[]) {
return Object.fromEntries(Object.entries(obj).filter(([key]) => keys.includes(key)));
}
export function expectSchemaShape<T extends v.ObjectSchema<v.ObjectEntries, undefined>>(t: TaskContext, expected: T) {
return {
from(actual: T) {
expect(Object.keys(actual.entries)).toStrictEqual(Object.keys(expected.entries));
for (const key of Object.keys(actual.entries)) {
const actualEntry = actual.entries[key] as any;
const expectedEntry = expected.entries[key] as any;
const keys = ['kind', 'type', 'expects', 'async', 'message'];
actualEntry.pipe ??= [];
expectedEntry.pipe ??= [];
expect(onlySpecifiedKeys(actualEntry, keys)).toStrictEqual(onlySpecifiedKeys(expectedEntry, keys));
expect(actualEntry.pipe.length).toStrictEqual(expectedEntry.pipe.length);
for (let i = 0; i < actualEntry.pipe.length; i++) {
const actualPipeElement = actualEntry.pipe[i];
const expectedPipeElement = expectedEntry.pipe[i];
expect(onlySpecifiedKeys(actualPipeElement, keys)).toStrictEqual(
onlySpecifiedKeys(expectedPipeElement, keys),
);
}
}
},
};
}
export function expectEnumValues<T extends v.EnumSchema<any, undefined>>(t: TaskContext, expected: T) {
return {
from(actual: T) {
expect(actual.enum).toStrictEqual(expected.enum);
},
};
}
export function Expect<_ extends true>() {}
Domain
Subdomains
Dependencies
- valibot
- vitest
Imported By
Source
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 DrizzleORM domain, QueryBuilders subdomain.
What functions are defined in utils.ts?
utils.ts defines 4 function(s): Expect, expectEnumValues, expectSchemaShape, onlySpecifiedKeys.
What does utils.ts depend on?
utils.ts imports 2 module(s): valibot, vitest.
What files import utils.ts?
utils.ts is imported by 4 file(s): mysql.test.ts, pg.test.ts, singlestore.test.ts, sqlite.test.ts.
Where is utils.ts in the architecture?
utils.ts is located at drizzle-valibot/tests/utils.ts (domain: DrizzleORM, subdomain: QueryBuilders, directory: drizzle-valibot/tests).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free