Home / Class/ CreateTypeEnumConvertor Class — drizzle-orm Architecture

CreateTypeEnumConvertor Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  13136106_a856_4f84_043e_c76843b1dc3f["CreateTypeEnumConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  13136106_a856_4f84_043e_c76843b1dc3f -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  392af024_c3b4_7879_3002_5e8280e10e03["can()"]
  13136106_a856_4f84_043e_c76843b1dc3f -->|method| 392af024_c3b4_7879_3002_5e8280e10e03
  5d74f2d3_75ea_3b3e_58ff_04a35f70eafd["convert()"]
  13136106_a856_4f84_043e_c76843b1dc3f -->|method| 5d74f2d3_75ea_3b3e_58ff_04a35f70eafd

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 1375–1402

class CreateTypeEnumConvertor extends Convertor {
	can(statement: JsonStatement): boolean {
		return statement.type === 'create_type_enum';
	}

	convert(st: JsonCreateEnumStatement) {
		const { name, values, schema } = st;

		const enumNameWithSchema = schema ? `"${schema}"."${name}"` : `"${name}"`;

		let valuesStatement = '(';
		valuesStatement += values.map((it) => `'${escapeSingleQuotes(it)}'`).join(', ');
		valuesStatement += ')';

		// TODO do we need this?
		// let statement = 'DO $$ BEGIN';
		// statement += '\n';
		let statement = `CREATE TYPE ${enumNameWithSchema} AS ENUM${valuesStatement};`;
		// statement += '\n';
		// statement += 'EXCEPTION';
		// statement += '\n';
		// statement += ' WHEN duplicate_object THEN null;';
		// statement += '\n';
		// statement += 'END $$;';
		// statement += '\n';
		return statement;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free