Home / Class/ PgCreatePolicyConvertor Class — drizzle-orm Architecture

PgCreatePolicyConvertor Class — drizzle-orm Architecture

Architecture documentation for the PgCreatePolicyConvertor class in sqlgenerator.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  52e7a846_b7dc_243d_dce9_f82a27463a07["PgCreatePolicyConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  52e7a846_b7dc_243d_dce9_f82a27463a07 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  6e6441d1_86d4_ee1f_bfbd_c1c33a77845e["can()"]
  52e7a846_b7dc_243d_dce9_f82a27463a07 -->|method| 6e6441d1_86d4_ee1f_bfbd_c1c33a77845e
  37697f6d_58a7_5188_1ba4_613ed78834df["convert()"]
  52e7a846_b7dc_243d_dce9_f82a27463a07 -->|method| 37697f6d_58a7_5188_1ba4_613ed78834df

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 209–230

class PgCreatePolicyConvertor extends Convertor {
	override can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'create_policy' && dialect === 'postgresql';
	}
	override convert(statement: JsonCreatePolicyStatement): string | string[] {
		const policy = statement.data;

		const tableNameWithSchema = statement.schema
			? `"${statement.schema}"."${statement.tableName}"`
			: `"${statement.tableName}"`;

		const usingPart = policy.using ? ` USING (${policy.using})` : '';

		const withCheckPart = policy.withCheck ? ` WITH CHECK (${policy.withCheck})` : '';

		const policyToPart = policy.to?.map((v) =>
			['current_user', 'current_role', 'session_user', 'public'].includes(v) ? v : `"${v}"`
		).join(', ');

		return `CREATE POLICY "${policy.name}" ON ${tableNameWithSchema} AS ${policy.as?.toUpperCase()} FOR ${policy.for?.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`;
	}
}

Domain

Frequently Asked Questions

What is the PgCreatePolicyConvertor class?
PgCreatePolicyConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is PgCreatePolicyConvertor defined?
PgCreatePolicyConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 209.

Analyze Your Own Codebase

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

Try Supermodel Free