Home / Function/ truncate() — svelte Function Reference

truncate() — svelte Function Reference

Architecture documentation for the truncate() function in css-prune.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  a446abce_d160_6f0a_0d38_aca50a65af3e["truncate()"]
  cb1bf043_dade_7352_cc2b_976ffa2968d8["css-prune.js"]
  a446abce_d160_6f0a_0d38_aca50a65af3e -->|defined in| cb1bf043_dade_7352_cc2b_976ffa2968d8
  93e4e2a8_d367_c800_840d_5097d02af978["get_relative_selectors()"]
  93e4e2a8_d367_c800_840d_5097d02af978 -->|calls| a446abce_d160_6f0a_0d38_aca50a65af3e
  44fb7f7e_7a78_eedb_fde3_53e386135788["relative_selector_might_apply_to_node()"]
  44fb7f7e_7a78_eedb_fde3_53e386135788 -->|calls| a446abce_d160_6f0a_0d38_aca50a65af3e
  style a446abce_d160_6f0a_0d38_aca50a65af3e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js lines 163–186

function truncate(node) {
	const i = node.children.findLastIndex(({ metadata, selectors }) => {
		const first = selectors[0];
		return (
			// not after a :global selector
			!metadata.is_global_like &&
			!(first.type === 'PseudoClassSelector' && first.name === 'global' && first.args === null) &&
			// not a :global(...) without a :has/is/where(...) modifier that is scoped
			!metadata.is_global
		);
	});

	return node.children.slice(0, i + 1).map((child) => {
		// In case of `:root.y:has(...)`, `y` is unscoped, but everything in `:has(...)` should be scoped (if not global).
		// To properly accomplish that, we gotta filter out all selector types except `:has`.
		const root = child.selectors.find((s) => s.type === 'PseudoClassSelector' && s.name === 'root');
		if (!root || child.metadata.is_global_like) return child;

		return {
			...child,
			selectors: child.selectors.filter((s) => s.type === 'PseudoClassSelector' && s.name === 'has')
		};
	});
}

Domain

Subdomains

Frequently Asked Questions

What does truncate() do?
truncate() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js.
Where is truncate() defined?
truncate() is defined in packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js at line 163.
What calls truncate()?
truncate() is called by 2 function(s): get_relative_selectors, relative_selector_might_apply_to_node.

Analyze Your Own Codebase

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

Try Supermodel Free