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

testPolicyResolver() — drizzle-orm Function Reference

Architecture documentation for the testPolicyResolver() function in schemaDiffer.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  5c0a54e1_d2f8_ab8d_7ce4_e9a683283904["testPolicyResolver()"]
  fb6b4a65_030b_ce6b_df0d_2be21adcd2b3["schemaDiffer.ts"]
  5c0a54e1_d2f8_ab8d_7ce4_e9a683283904 -->|defined in| fb6b4a65_030b_ce6b_df0d_2be21adcd2b3
  e15327fc_6c47_0a22_5e26_e5f3a2056272["diffTestSchemasPush()"]
  e15327fc_6c47_0a22_5e26_e5f3a2056272 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904
  a9b90700_95b1_2733_ec44_94b71b29bd74["applyPgDiffs()"]
  a9b90700_95b1_2733_ec44_94b71b29bd74 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904
  c00494ea_6230_22b6_9b91_d37781a8ac08["diffTestSchemas()"]
  c00494ea_6230_22b6_9b91_d37781a8ac08 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904
  099eb17b_7dab_5785_cbf8_b861b392a028["introspectPgToFile()"]
  099eb17b_7dab_5785_cbf8_b861b392a028 -->|calls| 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904
  style 5c0a54e1_d2f8_ab8d_7ce4_e9a683283904 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/tests/schemaDiffer.ts lines 464–526

export const testPolicyResolver = (renames: Set<string>) =>
async (
	input: TablePolicyResolverInput<Policy>,
): Promise<TablePolicyResolverOutput<Policy>> => {
	try {
		if (
			input.created.length === 0
			|| input.deleted.length === 0
			|| renames.size === 0
		) {
			return {
				tableName: input.tableName,
				schema: input.schema,
				created: input.created,
				renamed: [],
				deleted: input.deleted,
			};
		}

		let createdPolicies = [...input.created];
		let deletedPolicies = [...input.deleted];

		const renamed: { from: Policy; to: Policy }[] = [];

		const schema = input.schema || 'public';

		for (let rename of renames) {
			const [from, to] = rename.split('->');

			const idxFrom = deletedPolicies.findIndex((it) => {
				return `${schema}.${input.tableName}.${it.name}` === from;
			});

			if (idxFrom >= 0) {
				const idxTo = createdPolicies.findIndex((it) => {
					return `${schema}.${input.tableName}.${it.name}` === to;
				});

				renamed.push({
					from: deletedPolicies[idxFrom],
					to: createdPolicies[idxTo],
				});

				delete createdPolicies[idxTo];
				delete deletedPolicies[idxFrom];

				createdPolicies = createdPolicies.filter(Boolean);
				deletedPolicies = deletedPolicies.filter(Boolean);
			}
		}

		return {
			tableName: input.tableName,
			schema: input.schema,
			created: createdPolicies,
			deleted: deletedPolicies,
			renamed,
		};
	} catch (e) {
		console.error(e);
		throw e;
	}
};

Domain

Subdomains

Frequently Asked Questions

What does testPolicyResolver() do?
testPolicyResolver() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/schemaDiffer.ts.
Where is testPolicyResolver() defined?
testPolicyResolver() is defined in drizzle-kit/tests/schemaDiffer.ts at line 464.
What calls testPolicyResolver()?
testPolicyResolver() is called by 4 function(s): applyPgDiffs, diffTestSchemas, diffTestSchemasPush, introspectPgToFile.

Analyze Your Own Codebase

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

Try Supermodel Free