(e: Entry)
| 56 | } |
| 57 | |
| 58 | async function closeEntry(e: Entry): Promise<void> { |
| 59 | try { e.tunnel?.close(); } catch { /* tunnel already gone */ } |
| 60 | await e.handle.close().catch(() => {}); |
| 61 | } |
| 62 | |
| 63 | /** |
| 64 | * Start (or reuse) a live server for an artifact. Reuse keeps the user's open browser tab |