pgImports.ts — drizzle-orm Source File
Architecture documentation for pgImports.ts, a typescript file in the drizzle-orm codebase. 5 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 04ea3fca_c22c_3db0_5ecd_ef1de68ce128["pgImports.ts"] 09e5bcf1_0f03_3dbd_fbdb_762440f28855["utils.ts"] 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 --> 09e5bcf1_0f03_3dbd_fbdb_762440f28855 54221957_c725_0bfe_4345_4f3837d39296["safeRegister"] 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 --> 54221957_c725_0bfe_4345_4f3837d39296 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 53497908_16e7_977d_e97d_7414884a88a6["pg-core"] 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 --> 53497908_16e7_977d_e97d_7414884a88a6 202c0b4f_d331_3b16_d76e_0c2d0db343df["relations"] 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 --> 202c0b4f_d331_3b16_d76e_0c2d0db343df e668bfef_9125_1ef0_2f94_a0f9605584bd["api.ts"] e668bfef_9125_1ef0_2f94_a0f9605584bd --> 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 style 04ea3fca_c22c_3db0_5ecd_ef1de68ce128 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { is } from 'drizzle-orm';
import {
AnyPgTable,
isPgEnum,
isPgMaterializedView,
isPgSequence,
isPgView,
PgEnum,
PgMaterializedView,
PgPolicy,
PgRole,
PgSchema,
PgSequence,
PgTable,
PgView,
} from 'drizzle-orm/pg-core';
import { Relations } from 'drizzle-orm/relations';
import { safeRegister } from '../cli/commands/utils';
export const prepareFromExports = (exports: Record<string, unknown>) => {
const tables: AnyPgTable[] = [];
const enums: PgEnum<any>[] = [];
const schemas: PgSchema[] = [];
const sequences: PgSequence[] = [];
const roles: PgRole[] = [];
const policies: PgPolicy[] = [];
const views: PgView[] = [];
const matViews: PgMaterializedView[] = [];
const relations: Relations[] = [];
const i0values = Object.values(exports);
i0values.forEach((t) => {
if (isPgEnum(t)) {
enums.push(t);
return;
}
if (is(t, PgTable)) {
tables.push(t);
}
if (is(t, PgSchema)) {
schemas.push(t);
}
if (isPgView(t)) {
views.push(t);
}
if (isPgMaterializedView(t)) {
matViews.push(t);
}
if (isPgSequence(t)) {
sequences.push(t);
}
if (is(t, PgRole)) {
roles.push(t);
}
if (is(t, PgPolicy)) {
policies.push(t);
}
if (is(t, Relations)) {
relations.push(t);
}
});
return { tables, enums, schemas, sequences, views, matViews, roles, policies, relations };
};
export const prepareFromPgImports = async (imports: string[]) => {
const tables: AnyPgTable[] = [];
const enums: PgEnum<any>[] = [];
const schemas: PgSchema[] = [];
const sequences: PgSequence[] = [];
const views: PgView[] = [];
const roles: PgRole[] = [];
const policies: PgPolicy[] = [];
const matViews: PgMaterializedView[] = [];
const relations: Relations[] = [];
const { unregister } = await safeRegister();
for (let i = 0; i < imports.length; i++) {
const it = imports[i];
const i0: Record<string, unknown> = require(`${it}`);
const prepared = prepareFromExports(i0);
tables.push(...prepared.tables);
enums.push(...prepared.enums);
schemas.push(...prepared.schemas);
sequences.push(...prepared.sequences);
views.push(...prepared.views);
matViews.push(...prepared.matViews);
roles.push(...prepared.roles);
policies.push(...prepared.policies);
relations.push(...prepared.relations);
}
unregister();
return {
tables: Array.from(new Set(tables)),
enums,
schemas,
sequences,
views,
matViews,
roles,
policies,
relations,
};
};
Domain
Subdomains
Dependencies
- drizzle-orm
- pg-core
- relations
- safeRegister
- utils.ts
Imported By
Source
Frequently Asked Questions
What does pgImports.ts do?
pgImports.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 pgImports.ts?
pgImports.ts defines 2 function(s): prepareFromExports, prepareFromPgImports.
What does pgImports.ts depend on?
pgImports.ts imports 5 module(s): drizzle-orm, pg-core, relations, safeRegister, utils.ts.
What files import pgImports.ts?
pgImports.ts is imported by 1 file(s): api.ts.
Where is pgImports.ts in the architecture?
pgImports.ts is located at drizzle-kit/src/serializer/pgImports.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