Lint and format src/compiler/utils/extract_svelte_ignore.js

pull/8569/head
Simon Holthausen 3 years ago
parent 2ec612b6e4
commit d287043d3e

@ -7,13 +7,13 @@ const regex_svelte_ignore = /^\s*svelte-ignore\s+([\s\S]+)\s*$/m;
* @returns {string[]} * @returns {string[]}
*/ */
export function extract_svelte_ignore(text) { export function extract_svelte_ignore(text) {
const match = regex_svelte_ignore.exec(text); const match = regex_svelte_ignore.exec(text);
return match return match
? match[1] ? match[1]
.split(regex_whitespace) .split(regex_whitespace)
.map((x) => x.trim()) .map((x) => x.trim())
.filter(Boolean) .filter(Boolean)
: []; : [];
} }
/** /**
@ -21,7 +21,9 @@ export function extract_svelte_ignore(text) {
* @returns {string[]} * @returns {string[]}
*/ */
export function extract_svelte_ignore_from_comments(node) { export function extract_svelte_ignore_from_comments(node) {
return flatten((node.leadingComments || []).map((comment) => extract_svelte_ignore(comment.value))); return flatten(
(node.leadingComments || []).map((comment) => extract_svelte_ignore(comment.value))
);
} }
/** /**
@ -30,22 +32,22 @@ export function extract_svelte_ignore_from_comments(node) {
* @returns {string[]} * @returns {string[]}
*/ */
export function extract_ignores_above_position(position, template_nodes) { export function extract_ignores_above_position(position, template_nodes) {
const previous_node_idx = template_nodes.findIndex((child) => child.end === position); const previous_node_idx = template_nodes.findIndex((child) => child.end === position);
if (previous_node_idx === -1) { if (previous_node_idx === -1) {
return []; return [];
} }
for (let i = previous_node_idx; i >= 0; i--) { for (let i = previous_node_idx; i >= 0; i--) {
const node = template_nodes[i]; const node = template_nodes[i];
if (node.type !== 'Comment' && node.type !== 'Text') { if (node.type !== 'Comment' && node.type !== 'Text') {
return []; return [];
} }
if (node.type === 'Comment') { if (node.type === 'Comment') {
if (node.ignores.length) { if (node.ignores.length) {
return node.ignores; return node.ignores;
} }
} }
} }
return []; return [];
} }
/** /**
@ -53,24 +55,20 @@ export function extract_ignores_above_position(position, template_nodes) {
* @returns {string[]} * @returns {string[]}
*/ */
export function extract_ignores_above_node(node) { export function extract_ignores_above_node(node) {
/** /**
* This utilizes the fact that node has a prev and a next attribute * This utilizes the fact that node has a prev and a next attribute
* which means that it can find svelte-ignores along * which means that it can find svelte-ignores along
* the nodes on the same level as itself who share the same parent. * the nodes on the same level as itself who share the same parent.
*/ */
let cur_node = node.prev; let cur_node = node.prev;
while (cur_node) { while (cur_node) {
if (cur_node.type !== 'Comment' && cur_node.type !== 'Text') { if (cur_node.type !== 'Comment' && cur_node.type !== 'Text') {
return []; return [];
} }
if (cur_node.type === 'Comment' && cur_node.ignores.length) { if (cur_node.type === 'Comment' && cur_node.ignores.length) {
return cur_node.ignores; return cur_node.ignores;
} }
cur_node = cur_node.prev; cur_node = cur_node.prev;
} }
return []; return [];
} }

Loading…
Cancel
Save