Skip to content

Commit 58fc779

Browse files
committed
shuffle code around
1 parent 5ebe872 commit 58fc779

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

packages/repl/src/lib/Output/AstNode.svelte

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@
2222
2323
let list_item_el = $state() as HTMLLIElement;
2424
25-
let is_root = $derived(path_nodes[0] === value);
2625
let is_leaf = $derived(path_nodes[path_nodes.length - 1] === value);
27-
let is_ast_array = $derived(Array.isArray(value));
28-
let is_collapsable = $derived(value && typeof value === 'object');
26+
let is_array = $derived(Array.isArray(value));
27+
let is_primitive = $derived(value === null || typeof value !== 'object');
2928
let is_markable = $derived(
30-
is_collapsable &&
29+
!is_primitive &&
3130
'start' in value &&
3231
'end' in value &&
3332
typeof value.start === 'number' &&
@@ -38,9 +37,9 @@
3837
let preview_text = $state('');
3938
4039
$effect(() => {
41-
if (!is_collapsable || !collapsed) return;
40+
if (is_primitive || !collapsed) return;
4241
43-
if (is_ast_array) {
42+
if (is_array) {
4443
if (!('length' in value)) return;
4544
4645
preview_text = `[ ${value.length} element${value.length === 1 ? '' : 's'} ]`;
@@ -91,36 +90,35 @@
9190

9291
<li
9392
bind:this={list_item_el}
94-
class:marked={!is_root && is_leaf}
93+
class:marked={!root && is_leaf}
9594
onmouseover={handle_mark_text}
9695
onfocus={handle_mark_text}
9796
onmouseleave={handle_unmark_text}
9897
>
99-
{#if !is_root && is_collapsable}
98+
{#if !root && !is_primitive}
10099
<button class="ast-toggle" class:open={!collapsed} onclick={() => (collapsed = !collapsed)}>
101100
{key_text}
102101
</button>
103102
{:else if key_text}
104103
<span>{key_text}</span>
105104
{/if}
106-
{#if is_collapsable}
107-
{#if collapsed && !is_root}
108-
<button class="preview" onclick={() => (collapsed = !collapsed)}>
109-
{preview_text}
110-
</button>
111-
{:else}
112-
<span>{is_ast_array ? '[' : '{'}</span>
113-
<ul>
114-
{#each Object.entries(value) as [k, v]}
115-
<AstNode key={is_ast_array ? '' : k} value={v} {path_nodes} {autoscroll} />
116-
{/each}
117-
</ul>
118-
<span>{is_ast_array ? ']' : '}'}</span>
119-
{/if}
120-
{:else}
105+
106+
{#if is_primitive}
121107
<span class="token {typeof value}">
122108
{JSON.stringify(value)}
123109
</span>
110+
{:else if collapsed && !root}
111+
<button class="preview" onclick={() => (collapsed = !collapsed)}>
112+
{preview_text}
113+
</button>
114+
{:else}
115+
<span>{is_array ? '[' : '{'}</span>
116+
<ul>
117+
{#each Object.entries(value) as [k, v]}
118+
<AstNode key={is_array ? '' : k} value={v} {path_nodes} {autoscroll} />
119+
{/each}
120+
</ul>
121+
<span>{is_array ? ']' : '}'}</span>
124122
{/if}
125123
</li>
126124

0 commit comments

Comments
 (0)