Home / Function/ squashGelScheme() — drizzle-orm Function Reference

squashGelScheme() — drizzle-orm Function Reference

Architecture documentation for the squashGelScheme() function in gelSchema.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  bd3b7a09_d6ac_f9d2_de45_840316358cf8["squashGelScheme()"]
  964b24c5_3481_bed3_69f7_b6e4cefe58bb["gelSchema.ts"]
  bd3b7a09_d6ac_f9d2_de45_840316358cf8 -->|defined in| 964b24c5_3481_bed3_69f7_b6e4cefe58bb
  920ff56d_9b78_d6a4_9c81_c1e6a3d1d992["mapValues()"]
  bd3b7a09_d6ac_f9d2_de45_840316358cf8 -->|calls| 920ff56d_9b78_d6a4_9c81_c1e6a3d1d992
  style bd3b7a09_d6ac_f9d2_de45_840316358cf8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/serializer/gelSchema.ts lines 505–615

export const squashGelScheme = (
	json: GelSchema,
	action?: 'push' | undefined,
): GelSchemaSquashed => {
	const mappedTables = Object.fromEntries(
		Object.entries(json.tables).map((it) => {
			const squashedIndexes = mapValues(it[1].indexes, (index) => {
				return action === 'push'
					? GelSquasher.squashIdxPush(index)
					: GelSquasher.squashIdx(index);
			});

			const squashedFKs = mapValues(it[1].foreignKeys, (fk) => {
				return GelSquasher.squashFK(fk);
			});

			const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => {
				return GelSquasher.squashPK(pk);
			});

			const mappedColumns = Object.fromEntries(
				Object.entries(it[1].columns).map((it) => {
					const mappedIdentity = it[1].identity
						? GelSquasher.squashIdentity(it[1].identity)
						: undefined;
					return [
						it[0],
						{
							...it[1],
							identity: mappedIdentity,
						},
					];
				}),
			);

			const squashedUniqueConstraints = mapValues(
				it[1].uniqueConstraints,
				(unq) => {
					return GelSquasher.squashUnique(unq);
				},
			);

			const squashedPolicies = mapValues(it[1].policies, (policy) => {
				return action === 'push'
					? GelSquasher.squashPolicyPush(policy)
					: GelSquasher.squashPolicy(policy);
			});
			const squashedChecksContraints = mapValues(
				it[1].checkConstraints,
				(check) => {
					return GelSquasher.squashCheck(check);
				},
			);

			return [
				it[0],
				{
					name: it[1].name,
					schema: it[1].schema,
					columns: mappedColumns,
					indexes: squashedIndexes,
					foreignKeys: squashedFKs,
					compositePrimaryKeys: squashedPKs,
					uniqueConstraints: squashedUniqueConstraints,
					policies: squashedPolicies,
					checkConstraints: squashedChecksContraints,
					isRLSEnabled: it[1].isRLSEnabled ?? false,
				},
			];
		}),
	);

	const mappedSequences = Object.fromEntries(
		Object.entries(json.sequences).map((it) => {
			return [
				it[0],
				{
					name: it[1].name,
					schema: it[1].schema,
					values: GelSquasher.squashSequence(it[1]),
				},

Domain

Subdomains

Calls

Frequently Asked Questions

What does squashGelScheme() do?
squashGelScheme() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/serializer/gelSchema.ts.
Where is squashGelScheme() defined?
squashGelScheme() is defined in drizzle-kit/src/serializer/gelSchema.ts at line 505.
What does squashGelScheme() call?
squashGelScheme() calls 1 function(s): mapValues.

Analyze Your Own Codebase

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

Try Supermodel Free