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

mapDefault() — drizzle-orm Function Reference

Architecture documentation for the mapDefault() function in introspect-pg.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  f3c4f27e_519e_55a5_f4bc_bca97865abec["mapDefault()"]
  71516551_23e3_bf30_27c9_000fb046ef71["introspect-pg.ts"]
  f3c4f27e_519e_55a5_f4bc_bca97865abec -->|defined in| 71516551_23e3_bf30_27c9_000fb046ef71
  d060c9b2_d1df_37e7_df71_422307a42ed6["createTableColumns()"]
  d060c9b2_d1df_37e7_df71_422307a42ed6 -->|calls| f3c4f27e_519e_55a5_f4bc_bca97865abec
  b87c196f_7e95_6fa2_a5ef_339aa1ab6107["buildArrayDefault()"]
  f3c4f27e_519e_55a5_f4bc_bca97865abec -->|calls| b87c196f_7e95_6fa2_a5ef_339aa1ab6107
  a34da7d2_49ca_2fcb_20a0_d3c69b4fdba9["mapColumnDefault()"]
  f3c4f27e_519e_55a5_f4bc_bca97865abec -->|calls| a34da7d2_49ca_2fcb_20a0_d3c69b4fdba9
  b79b7789_7dc7_8d59_d31c_04fd15a06eee["unescapeSingleQuotes()"]
  f3c4f27e_519e_55a5_f4bc_bca97865abec -->|calls| b79b7789_7dc7_8d59_d31c_04fd15a06eee
  style f3c4f27e_519e_55a5_f4bc_bca97865abec fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/src/introspect-pg.ts lines 673–836

const mapDefault = (
	tableName: string,
	type: string,
	name: string,
	enumTypes: Set<string>,
	typeSchema: string,
	defaultValue?: any,
	internals?: PgKitInternals,
) => {
	const isExpression = internals?.tables[tableName]?.columns[name]?.isDefaultAnExpression ?? false;
	const isArray = internals?.tables[tableName]?.columns[name]?.isArray ?? false;
	const lowered = type.toLowerCase().replace('[]', '');

	if (isArray) {
		return typeof defaultValue !== 'undefined' ? `.default(${buildArrayDefault(defaultValue, lowered)})` : '';
	}

	if (enumTypes.has(`${typeSchema}.${type.replace('[]', '')}`)) {
		return typeof defaultValue !== 'undefined'
			? `.default(${mapColumnDefault(unescapeSingleQuotes(defaultValue, true), isExpression)})`
			: '';
	}

	if (lowered.startsWith('integer')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('smallint')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('bigint')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('boolean')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('double precision')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('real')) {
		return typeof defaultValue !== 'undefined' ? `.default(${mapColumnDefault(defaultValue, isExpression)})` : '';
	}

	if (lowered.startsWith('uuid')) {
		return defaultValue === 'gen_random_uuid()'
			? '.defaultRandom()'
			: defaultValue
			? `.default(sql\`${defaultValue}\`)`
			: '';
	}

	if (lowered.startsWith('numeric')) {
		defaultValue = defaultValue
			? (defaultValue.startsWith(`'`) && defaultValue.endsWith(`'`)
				? defaultValue.substring(1, defaultValue.length - 1)
				: defaultValue)
			: undefined;
		return defaultValue ? `.default('${mapColumnDefault(defaultValue, isExpression)}')` : '';
	}

	if (lowered.startsWith('timestamp')) {
		return defaultValue === 'now()'
			? '.defaultNow()'
			: /^'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d+)?([+-]\d{2}(:\d{2})?)?'$/.test(defaultValue) // Matches 'YYYY-MM-DD HH:MI:SS', 'YYYY-MM-DD HH:MI:SS.FFFFFF', 'YYYY-MM-DD HH:MI:SS+TZ', 'YYYY-MM-DD HH:MI:SS.FFFFFF+TZ' and 'YYYY-MM-DD HH:MI:SS+HH:MI'
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: defaultValue
			? `.default(sql\`${defaultValue}\`)`
			: '';
	}

	if (lowered.startsWith('time')) {
		return defaultValue === 'now()'
			? '.defaultNow()'
			: /^'\d{2}:\d{2}(:\d{2})?(\.\d+)?'$/.test(defaultValue) // Matches 'HH:MI', 'HH:MI:SS' and 'HH:MI:SS.FFFFFF'
			? `.default(${mapColumnDefault(defaultValue, isExpression)})`
			: defaultValue
			? `.default(sql\`${defaultValue}\`)`

Domain

Subdomains

Frequently Asked Questions

What does mapDefault() do?
mapDefault() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/introspect-pg.ts.
Where is mapDefault() defined?
mapDefault() is defined in drizzle-kit/src/introspect-pg.ts at line 673.
What does mapDefault() call?
mapDefault() calls 3 function(s): buildArrayDefault, mapColumnDefault, unescapeSingleQuotes.
What calls mapDefault()?
mapDefault() is called by 1 function(s): createTableColumns.

Analyze Your Own Codebase

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

Try Supermodel Free