utils.ts — drizzle-orm Source File
Architecture documentation for utils.ts, a typescript file in the drizzle-orm codebase. 4 imports, 3 dependents.
Entity Profile
Dependency Diagram
graph LR 34140e39_ad92_a121_09b2_e3e2624fd021["utils.ts"] 217e2cbd_4fb7_ceab_251c_5733ece08a8f["views.ts"] 34140e39_ad92_a121_09b2_e3e2624fd021 --> 217e2cbd_4fb7_ceab_251c_5733ece08a8f 1667b582_3430_eb68_88ed_3f551edd5fa5["err"] 34140e39_ad92_a121_09b2_e3e2624fd021 --> 1667b582_3430_eb68_88ed_3f551edd5fa5 5fbcc7ce_945a_7e2d_e12d_559fa5000971["warning"] 34140e39_ad92_a121_09b2_e3e2624fd021 --> 5fbcc7ce_945a_7e2d_e12d_559fa5000971 8a4d5c8d_866e_cf50_8833_1e188ec956e8["semver"] 34140e39_ad92_a121_09b2_e3e2624fd021 --> 8a4d5c8d_866e_cf50_8833_1e188ec956e8 4e02c2bb_54a8_1500_813e_2cafd1ad4f59["connections.ts"] 4e02c2bb_54a8_1500_813e_2cafd1ad4f59 --> 34140e39_ad92_a121_09b2_e3e2624fd021 3337fb45_cdc6_b02c_a270_5043f829b54b["index.ts"] 3337fb45_cdc6_b02c_a270_5043f829b54b --> 34140e39_ad92_a121_09b2_e3e2624fd021 5bf76609_579e_d312_b33b_ab5b8b683111["schema.ts"] 5bf76609_579e_d312_b33b_ab5b8b683111 --> 34140e39_ad92_a121_09b2_e3e2624fd021 style 34140e39_ad92_a121_09b2_e3e2624fd021 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import semver from 'semver';
import { err, warning } from './views';
export const assertExists = (it?: any) => {
if (!it) throw new Error();
};
export const ormVersionGt = async (version: string) => {
const { npmVersion } = await import('drizzle-orm/version');
if (!semver.gte(npmVersion, version)) {
return false;
}
return true;
};
export const assertStudioNodeVersion = () => {
if (semver.gte(process.version, '18.0.0')) return;
err('Drizzle Studio requires NodeJS v18 or above');
process.exit(1);
};
export const checkPackage = async (it: string) => {
try {
await import(it);
return true;
} catch (e) {
return false;
}
};
export const assertPackages = async (...pkgs: string[]) => {
try {
for (let i = 0; i < pkgs.length; i++) {
const it = pkgs[i];
await import(it);
}
} catch (e) {
err(
`please install required packages: ${
pkgs
.map((it) => `'${it}'`)
.join(' ')
}`,
);
process.exit(1);
}
};
// ex: either pg or postgres are needed
export const assertEitherPackage = async (
...pkgs: string[]
): Promise<string[]> => {
const availables = [] as string[];
for (let i = 0; i < pkgs.length; i++) {
try {
const it = pkgs[i];
await import(it);
availables.push(it);
} catch (e) {}
}
if (availables.length > 0) {
return availables;
}
err(
`Please install one of those packages are needed: ${
pkgs
.map((it) => `'${it}'`)
.join(' or ')
}`,
);
process.exit(1);
};
const requiredApiVersion = 10;
export const assertOrmCoreVersion = async () => {
try {
const { compatibilityVersion } = await import('drizzle-orm/version');
await import('drizzle-orm/relations');
if (compatibilityVersion && compatibilityVersion === requiredApiVersion) {
return;
}
if (!compatibilityVersion || compatibilityVersion < requiredApiVersion) {
console.log(
'This version of drizzle-kit requires newer version of drizzle-orm\nPlease update drizzle-orm package to the latest version 👍',
);
} else {
console.log(
'This version of drizzle-kit is outdated\nPlease update drizzle-kit package to the latest version 👍',
);
}
} catch (e) {
console.log('Please install latest version of drizzle-orm');
}
process.exit(1);
};
export const ormCoreVersions = async () => {
try {
const { compatibilityVersion, npmVersion } = await import(
'drizzle-orm/version'
);
return { compatibilityVersion, npmVersion };
} catch (e) {
return {};
}
};
Domain
Subdomains
Functions
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 DrizzleKit domain, SchemaDiffer subdomain.
What functions are defined in utils.ts?
utils.ts defines 8 function(s): assertEitherPackage, assertExists, assertOrmCoreVersion, assertPackages, assertStudioNodeVersion, checkPackage, ormCoreVersions, ormVersionGt.
What does utils.ts depend on?
utils.ts imports 4 module(s): err, semver, views.ts, warning.
What files import utils.ts?
utils.ts is imported by 3 file(s): connections.ts, index.ts, schema.ts.
Where is utils.ts in the architecture?
utils.ts is located at drizzle-kit/src/cli/utils.ts (domain: DrizzleKit, subdomain: SchemaDiffer, directory: drizzle-kit/src/cli).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free