Home / Function/ convertToSerializedForm() — astro Function Reference

convertToSerializedForm() — astro Function Reference

Architecture documentation for the convertToSerializedForm() function in serialize.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  1502697a_a04e_810c_bd56_b25bd832d1c5["convertToSerializedForm()"]
  503a0de8_cf3d_458a_44c0_c9f295739fb6["serialize.ts"]
  1502697a_a04e_810c_bd56_b25bd832d1c5 -->|defined in| 503a0de8_cf3d_458a_44c0_c9f295739fb6
  42efedaa_f93f_0129_45b0_2c2090ccf2dc["serializeArray()"]
  42efedaa_f93f_0129_45b0_2c2090ccf2dc -->|calls| 1502697a_a04e_810c_bd56_b25bd832d1c5
  8d7cde9f_83f1_0783_c6af_f3a4c88f86d5["serializeObject()"]
  8d7cde9f_83f1_0783_c6af_f3a4c88f86d5 -->|calls| 1502697a_a04e_810c_bd56_b25bd832d1c5
  42efedaa_f93f_0129_45b0_2c2090ccf2dc["serializeArray()"]
  1502697a_a04e_810c_bd56_b25bd832d1c5 -->|calls| 42efedaa_f93f_0129_45b0_2c2090ccf2dc
  8d7cde9f_83f1_0783_c6af_f3a4c88f86d5["serializeObject()"]
  1502697a_a04e_810c_bd56_b25bd832d1c5 -->|calls| 8d7cde9f_83f1_0783_c6af_f3a4c88f86d5
  style 1502697a_a04e_810c_bd56_b25bd832d1c5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/runtime/server/serialize.ts lines 57–110

function convertToSerializedForm(
	value: any,
	metadata: AstroComponentMetadata | Record<string, any> = {},
	parents = new WeakSet<any>(),
): [ValueOf<typeof PROP_TYPE>, any] | [ValueOf<typeof PROP_TYPE>] {
	const tag = Object.prototype.toString.call(value);
	switch (tag) {
		case '[object Date]': {
			return [PROP_TYPE.Date, (value as Date).toISOString()];
		}
		case '[object RegExp]': {
			return [PROP_TYPE.RegExp, (value as RegExp).source];
		}
		case '[object Map]': {
			return [PROP_TYPE.Map, serializeArray(Array.from(value as Map<any, any>), metadata, parents)];
		}
		case '[object Set]': {
			return [PROP_TYPE.Set, serializeArray(Array.from(value as Set<any>), metadata, parents)];
		}
		case '[object BigInt]': {
			return [PROP_TYPE.BigInt, (value as bigint).toString()];
		}
		case '[object URL]': {
			return [PROP_TYPE.URL, (value as URL).toString()];
		}
		case '[object Array]': {
			return [PROP_TYPE.JSON, serializeArray(value, metadata, parents)];
		}
		case '[object Uint8Array]': {
			return [PROP_TYPE.Uint8Array, Array.from(value as Uint8Array)];
		}
		case '[object Uint16Array]': {
			return [PROP_TYPE.Uint16Array, Array.from(value as Uint16Array)];
		}
		case '[object Uint32Array]': {
			return [PROP_TYPE.Uint32Array, Array.from(value as Uint32Array)];
		}
		default: {
			if (value !== null && typeof value === 'object') {
				return [PROP_TYPE.Value, serializeObject(value, metadata, parents)];
			}
			if (value === Infinity) {
				return [PROP_TYPE.Infinity, 1];
			}
			if (value === -Infinity) {
				return [PROP_TYPE.Infinity, -1];
			}
			if (value === undefined) {
				return [PROP_TYPE.Value];
			}
			return [PROP_TYPE.Value, value];
		}
	}
}

Domain

Subdomains

Frequently Asked Questions

What does convertToSerializedForm() do?
convertToSerializedForm() is a function in the astro codebase, defined in packages/astro/src/runtime/server/serialize.ts.
Where is convertToSerializedForm() defined?
convertToSerializedForm() is defined in packages/astro/src/runtime/server/serialize.ts at line 57.
What does convertToSerializedForm() call?
convertToSerializedForm() calls 2 function(s): serializeArray, serializeObject.
What calls convertToSerializedForm()?
convertToSerializedForm() is called by 2 function(s): serializeArray, serializeObject.

Analyze Your Own Codebase

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

Try Supermodel Free