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
Source
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