Skip to content

Commit d5b3322

Browse files
authored
feat: add $state.frozen support (#466)
1 parent e27a3de commit d5b3322

10 files changed

+12338
-0
lines changed

.changeset/sharp-kangaroos-tease.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte-eslint-parser": patch
3+
---
4+
5+
feat: add `$state.frozen` support

src/parser/typescript/analyze/index.ts

+4
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,10 @@ function analyzeRuneVariables(
318318
"<T>(initial: T): T",
319319
"<T>(): T | undefined",
320320
]);
321+
appendDeclareNamespaceVirtualScripts(globalName, [
322+
"export function frozen<T>(initial: T): Readonly<T>;",
323+
"export function frozen<T>(): Readonly<T> | undefined;",
324+
]);
321325
break;
322326
}
323327
case "$derived": {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script>
2+
let numbers = $state.frozen([1, 2, 3]);
3+
</script>
4+
5+
<button onclick="{() => (numbers = [...numbers, numbers.length + 1])}">
6+
push
7+
</button>
8+
9+
<button onclick="{() => (numbers = numbers.slice(0, -1))}"> pop </button>
10+
11+
<p>
12+
{numbers.join(" + ") || 0}
13+
=
14+
{numbers.reduce((a, b) => a + b, 0)}
15+
</p>

0 commit comments

Comments
 (0)