Home / Function/ TitleElement() — svelte Function Reference

TitleElement() — svelte Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  fc471bd0_caed_35be_8561_9d55a2505105["TitleElement()"]
  f8561a4f_8669_f7da_9b3c_fd7e65e998a5["TitleElement.js"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|defined in| f8561a4f_8669_f7da_9b3c_fd7e65e998a5
  f3280f06_553d_66c3_8ca2_c3c36dcdda64["build_template_chunk()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| f3280f06_553d_66c3_8ca2_c3c36dcdda64
  5ff7d39f_78e8_c057_8c8e_279f6e72149e["add()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| 5ff7d39f_78e8_c057_8c8e_279f6e72149e
  10046df1_7862_0e3a_2d28_14faf64ff123["apply()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| 10046df1_7862_0e3a_2d28_14faf64ff123
  6f7809e4_1338_fe87_a5b2_2bb5d1626fdf["sync_values()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| 6f7809e4_1338_fe87_a5b2_2bb5d1626fdf
  3c8a9b45_1c84_b995_7438_57a8885c67ba["async_values()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| 3c8a9b45_1c84_b995_7438_57a8885c67ba
  c8d80c9d_ab6c_13c0_c85e_a9b120f82f45["blockers()"]
  fc471bd0_caed_35be_8561_9d55a2505105 -->|calls| c8d80c9d_ab6c_13c0_c85e_a9b120f82f45
  style fc471bd0_caed_35be_8561_9d55a2505105 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/3-transform/client/visitors/TitleElement.js lines 10–48

export function TitleElement(node, context) {
	const memoizer = new Memoizer();
	const { has_state, value } = build_template_chunk(
		/** @type {any} */ (node.fragment.nodes),
		context,
		context.state,
		(value, metadata) => memoizer.add(value, metadata)
	);
	const evaluated = context.state.scope.evaluate(value);

	const statement = b.stmt(
		b.assignment(
			'=',
			b.member(b.id('$.document'), b.id('title', node.name_loc)),
			evaluated.is_known
				? b.literal(evaluated.value)
				: evaluated.is_defined
					? value
					: b.logical('??', value, b.literal(''))
		)
	);

	// Make sure it only changes the title once async work is done
	if (has_state) {
		context.state.after_update.push(
			b.stmt(
				b.call(
					'$.deferred_template_effect',
					b.arrow(memoizer.apply(), b.block([statement])),
					memoizer.sync_values(),
					memoizer.async_values(),
					memoizer.blockers()
				)
			)
		);
	} else {
		context.state.after_update.push(b.stmt(b.call('$.effect', b.thunk(b.block([statement])))));
	}
}

Domain

Subdomains

Frequently Asked Questions

What does TitleElement() do?
TitleElement() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/TitleElement.js.
Where is TitleElement() defined?
TitleElement() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/TitleElement.js at line 10.
What does TitleElement() call?
TitleElement() calls 6 function(s): add, apply, async_values, blockers, build_template_chunk, sync_values.

Analyze Your Own Codebase

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

Try Supermodel Free