Home / Function/ get_relative_selectors() — svelte Function Reference

get_relative_selectors() — svelte Function Reference

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

Function javascript Compiler Analyzer calls 1 called by 2

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js lines 125–157

function get_relative_selectors(node) {
	const selectors = truncate(node);

	if (node.metadata.rule?.metadata.parent_rule && selectors.length > 0) {
		let has_explicit_nesting_selector = false;

		// nesting could be inside pseudo classes like :is, :has or :where
		for (let selector of selectors) {
			walk(selector, null, {
				// @ts-ignore
				NestingSelector() {
					has_explicit_nesting_selector = true;
				}
			});

			// if we found one we can break from the others
			if (has_explicit_nesting_selector) break;
		}

		if (!has_explicit_nesting_selector) {
			if (selectors[0].combinator === null) {
				selectors[0] = {
					...selectors[0],
					combinator: descendant_combinator
				};
			}

			selectors.unshift(nesting_selector);
		}
	}

	return selectors;
}

Domain

Subdomains

Calls

Frequently Asked Questions

What does get_relative_selectors() do?
get_relative_selectors() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js.
Where is get_relative_selectors() defined?
get_relative_selectors() is defined in packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js at line 125.
What does get_relative_selectors() call?
get_relative_selectors() calls 1 function(s): truncate.
What calls get_relative_selectors()?
get_relative_selectors() is called by 2 function(s): prune, 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