diff --git a/CHANGELOG.md b/CHANGELOG.md index 72c1b23c..4718a002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Make the preview option stable against occasional invalid URL errors ([#627](https://github.com/marp-team/marp-cli/pull/627)) + ## v4.0.4 - 2024-12-25 ### Added diff --git a/src/preview.ts b/src/preview.ts index aac35d0a..ef41a71b 100644 --- a/src/preview.ts +++ b/src/preview.ts @@ -165,15 +165,17 @@ export class Preview extends (EventEmitter as new () => TypedEmitter { debugPreview('Activated the window finder for %s.', id) - const url = new URL(target.url()) + if (target.type() === 'page') { + const url = new URL(target.url()) - if (url.searchParams.get('__marp_cli_id') === id) { - debugPreview('Found a target window with id: %s', id) - pptr.off('targetcreated', idMatcher) + if (url.searchParams.get('__marp_cli_id') === id) { + debugPreview('Found a target window with id: %s', id) + pptr.off('targetcreated', idMatcher) - void (async () => { - res((await target.page()) ?? (await target.asPage())) - })() + void (async () => { + res((await target.page()) ?? (await target.asPage())) + })() + } } }