Home / Function/ encode() — svelte Function Reference

encode() — svelte Function Reference

Architecture documentation for the encode() function in hydratable.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8["encode()"]
  2d51c6c9_d3dc_2c19_12a2_18adb2ef1c08["hydratable.js"]
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8 -->|defined in| 2d51c6c9_d3dc_2c19_12a2_18adb2ef1c08
  aceb9558_4599_fbdb_f0c7_8abf2fb32324["hydratable()"]
  aceb9558_4599_fbdb_f0c7_8abf2fb32324 -->|calls| f0cff7bd_d799_b072_8f02_3d0ffad0caa8
  8362c319_fb03_c16d_839d_c59e10f334e7["get_user_code_location()"]
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8 -->|calls| 8362c319_fb03_c16d_839d_c59e10f334e7
  d7ab38d4_84e0_b5a4_64df_a5aeb990307c["is_promise()"]
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8 -->|calls| d7ab38d4_84e0_b5a4_64df_a5aeb990307c
  d4e392d5_f087_0d75_c137_5e55abc4ed42["hydratable_serialization_failed()"]
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8 -->|calls| d4e392d5_f087_0d75_c137_5e55abc4ed42
  122be111_f8a0_6c03_dcfd_2b3fd0b29e3d["serialization_stack()"]
  f0cff7bd_d799_b072_8f02_3d0ffad0caa8 -->|calls| 122be111_f8a0_6c03_dcfd_2b3fd0b29e3d
  style f0cff7bd_d799_b072_8f02_3d0ffad0caa8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/server/hydratable.js lines 48–87

function encode(key, value, unresolved) {
	/** @type {HydratableLookupEntry} */
	const entry = { value, serialized: '' };

	if (DEV) {
		entry.stack = get_user_code_location();
	}

	let uid = 1;

	entry.serialized = devalue.uneval(entry.value, (value, uneval) => {
		if (is_promise(value)) {
			// we serialize promises as `"${i}"`, because it's impossible for that string
			// to occur 'naturally' (since the quote marks would have to be escaped)
			// this placeholder is returned synchronously from `uneval`, which includes it in the
			// serialized string. Later (at least one microtask from now), when `p.then` runs, it'll
			// be replaced.
			const placeholder = `"${uid++}"`;
			const p = value
				.then((v) => {
					entry.serialized = entry.serialized.replace(placeholder, `r(${uneval(v)})`);
				})
				.catch((devalue_error) =>
					e.hydratable_serialization_failed(
						key,
						serialization_stack(entry.stack, devalue_error?.stack)
					)
				);

			unresolved?.set(p, key);
			// prevent unhandled rejections from crashing the server, track which promises are still resolving when render is complete
			p.catch(() => {}).finally(() => unresolved?.delete(p));

			(entry.promises ??= []).push(p);
			return placeholder;
		}
	});

	return entry;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does encode() do?
encode() is a function in the svelte codebase, defined in packages/svelte/src/internal/server/hydratable.js.
Where is encode() defined?
encode() is defined in packages/svelte/src/internal/server/hydratable.js at line 48.
What does encode() call?
encode() calls 4 function(s): get_user_code_location, hydratable_serialization_failed, is_promise, serialization_stack.
What calls encode()?
encode() is called by 1 function(s): hydratable.

Analyze Your Own Codebase

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

Try Supermodel Free