Home / Class/ MySqlDecimal Class — drizzle-orm Architecture

MySqlDecimal Class — drizzle-orm Architecture

Architecture documentation for the MySqlDecimal class in decimal.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  95b071b9_724a_bc1e_e11b_2b42adc59bbc["MySqlDecimal"]
  1cab2e69_931d_80bd_c0f4_f9093012117e["decimal.ts"]
  95b071b9_724a_bc1e_e11b_2b42adc59bbc -->|defined in| 1cab2e69_931d_80bd_c0f4_f9093012117e
  e6c32510_71f6_9fd5_d855_ec1988995547["mapFromDriverValue()"]
  95b071b9_724a_bc1e_e11b_2b42adc59bbc -->|method| e6c32510_71f6_9fd5_d855_ec1988995547
  4cea38f9_e736_525e_4b7f_fb2aaa05b336["getSQLType()"]
  95b071b9_724a_bc1e_e11b_2b42adc59bbc -->|method| 4cea38f9_e736_525e_4b7f_fb2aaa05b336

Relationship Graph

Source Code

drizzle-orm/src/mysql-core/columns/decimal.ts lines 40–67

export class MySqlDecimal<T extends ColumnBaseConfig<'string', 'MySqlDecimal'>>
	extends MySqlColumnWithAutoIncrement<T, MySqlDecimalConfig>
{
	static override readonly [entityKind]: string = 'MySqlDecimal';

	readonly precision: number | undefined = this.config.precision;
	readonly scale: number | undefined = this.config.scale;
	readonly unsigned: boolean | undefined = this.config.unsigned;

	override mapFromDriverValue(value: unknown): string {
		if (typeof value === 'string') return value;

		return String(value);
	}

	getSQLType(): string {
		let type = '';
		if (this.precision !== undefined && this.scale !== undefined) {
			type += `decimal(${this.precision},${this.scale})`;
		} else if (this.precision === undefined) {
			type += 'decimal';
		} else {
			type += `decimal(${this.precision})`;
		}
		type = type === 'decimal(10,0)' || type === 'decimal(10)' ? 'decimal' : type;
		return this.unsigned ? `${type} unsigned` : type;
	}
}

Domain

Frequently Asked Questions

What is the MySqlDecimal class?
MySqlDecimal is a class in the drizzle-orm codebase, defined in drizzle-orm/src/mysql-core/columns/decimal.ts.
Where is MySqlDecimal defined?
MySqlDecimal is defined in drizzle-orm/src/mysql-core/columns/decimal.ts at line 40.

Analyze Your Own Codebase

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

Try Supermodel Free