Home / Function/ visitors.Rule() — svelte Function Reference

visitors.Rule() — svelte Function Reference

Architecture documentation for the visitors.Rule() function in index.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  f2626db1_8d8a_52b8_8277_273f5a8d1261["visitors.Rule()"]
  194b07ed_c18e_6587_618d_b4b4d02442e0["index.js"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|defined in| 194b07ed_c18e_6587_618d_b4b4d02442e0
  a8fd9736_9ea9_9a69_e694_2cfe2f847ce9["remove_preceding_whitespace()"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|calls| a8fd9736_9ea9_9a69_e694_2cfe2f847ce9
  89bfdfe0_279c_4966_749b_58ebd6de97ce["is_empty()"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|calls| 89bfdfe0_279c_4966_749b_58ebd6de97ce
  8e10e0b5_42cd_f5d4_1013_8f80e38b577c["is_in_global_block()"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|calls| 8e10e0b5_42cd_f5d4_1013_8f80e38b577c
  e7f24ef7_f61c_364e_ac57_be2c4042cc79["escape_comment_close()"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|calls| e7f24ef7_f61c_364e_ac57_be2c4042cc79
  2875e67d_6ea2_6e07_649a_ad100c54e869["is_used()"]
  f2626db1_8d8a_52b8_8277_273f5a8d1261 -->|calls| 2875e67d_6ea2_6e07_649a_ad100c54e869
  style f2626db1_8d8a_52b8_8277_273f5a8d1261 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/3-transform/css/index.js lines 138–197

	Rule(node, { state, next, visit, path }) {
		if (state.minify) {
			remove_preceding_whitespace(node.start, state);
			remove_preceding_whitespace(node.block.end - 1, state);
		}

		// keep empty rules in dev, because it's convenient to
		// see them in devtools
		if (!dev && is_empty(node, is_in_global_block(path))) {
			if (state.minify) {
				state.code.remove(node.start, node.end);
			} else {
				state.code.prependRight(node.start, '/* (empty) ');
				state.code.appendLeft(node.end, '*/');
				escape_comment_close(node, state.code);
			}

			return;
		}

		if (!is_used(node) && !is_in_global_block(path)) {
			if (state.minify) {
				state.code.remove(node.start, node.end);
			} else {
				state.code.prependRight(node.start, '/* (unused) ');
				state.code.appendLeft(node.end, '*/');
				escape_comment_close(node, state.code);
			}

			return;
		}

		if (node.metadata.is_global_block) {
			const selector = node.prelude.children[0];

			if (
				node.prelude.children.length === 1 &&
				selector.children.length === 1 &&
				selector.children[0].selectors.length === 1
			) {
				// `:global {...}`
				if (state.minify) {
					state.code.remove(node.start, node.block.start + 1);
					state.code.remove(node.block.end - 1, node.end);
				} else {
					state.code.prependRight(node.start, '/* ');
					state.code.appendLeft(node.block.start + 1, '*/');

					state.code.prependRight(node.block.end - 1, '/*');
					state.code.appendLeft(node.block.end, '*/');
				}

				// don't recurse into selectors but visit the body
				visit(node.block);
				return;
			}
		}

		next();
	},

Domain

Subdomains

Frequently Asked Questions

What does visitors.Rule() do?
visitors.Rule() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/css/index.js.
Where is visitors.Rule() defined?
visitors.Rule() is defined in packages/svelte/src/compiler/phases/3-transform/css/index.js at line 138.
What does visitors.Rule() call?
visitors.Rule() calls 5 function(s): escape_comment_close, is_empty, is_in_global_block, is_used, remove_preceding_whitespace.

Analyze Your Own Codebase

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

Try Supermodel Free