mirror of https://github.com/sveltejs/svelte
including css-unused-selector, unused-export-let, module-script-reactive-declaration Fixes #5954 Related to #5281pull/6504/head
parent
b662c7fd41
commit
39fab6ee8b
@ -0,0 +1,12 @@
|
|||||||
|
import { flatten } from "./flatten";
|
||||||
|
|
||||||
|
const pattern = /^\s*svelte-ignore\s+([\s\S]+)\s*$/m;
|
||||||
|
|
||||||
|
export function extract_svelte_ignore(text: string): string[] {
|
||||||
|
const match = pattern.exec(text);
|
||||||
|
return match ? match[1].split(/[^\S]/).map(x => x.trim()).filter(Boolean) : [];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function extract_svelte_ignore_from_comments<Node extends { leadingComments?: Array<{value: string}> }>(node: Node): string[] {
|
||||||
|
return flatten((node.leadingComments || []).map(comment => extract_svelte_ignore(comment.value)));
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
export function flatten<T>(nodes: T[][], target?: T[]): T[];
|
||||||
|
export function flatten<T>(nodes: T[], target?: T[]): T[];
|
||||||
|
export function flatten(nodes: any[], target: any[] = []): any[] {
|
||||||
|
for (let i = 0; i < nodes.length; i += 1) {
|
||||||
|
const node = nodes[i];
|
||||||
|
if (Array.isArray(node)) {
|
||||||
|
flatten(node, target);
|
||||||
|
} else {
|
||||||
|
target.push(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
<script context="module">
|
||||||
|
let foo;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// svelte-ignore unused-export-let
|
||||||
|
export let unused;
|
||||||
|
// svelte-ignore module-script-reactive-declaration
|
||||||
|
$: reactive = foo;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- svelte-ignore css-unused-selector -->
|
||||||
|
<style>
|
||||||
|
.unused {}
|
||||||
|
</style>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
Loading…
Reference in new issue