From 0719df020b8bc038c085e82eb48ef02144648251 Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 12 Mar 2026 11:17:57 +0800 Subject: [PATCH] refactor: improve options.open normalization --- src/server.ts | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/server.ts b/src/server.ts index f54ac7c..a0c543c 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1061,41 +1061,42 @@ class Server< return [{ target: normalizedTarget, options: normalizedOptions }]; }; + let normalizedOpens: NormalizedOpen[] = []; + if (typeof options.open === 'undefined') { - options.open = []; + // do nothing } else if (typeof options.open === 'boolean') { - options.open = options.open - ? ([ - { - target: '', - options: defaultOpenOptions, - }, - ] as NormalizedOpen[]) - : []; + if (options.open) { + normalizedOpens = [ + { + target: '', + options: defaultOpenOptions, + }, + ]; + } } else if (typeof options.open === 'string') { - options.open = [ - { target: options.open, options: defaultOpenOptions }, - ] as NormalizedOpen[]; + normalizedOpens = [ + { + target: options.open, + options: defaultOpenOptions, + }, + ]; } else if (Array.isArray(options.open)) { - const result: NormalizedOpen[] = []; - for (const item of options.open) { if (typeof item === 'string') { - result.push({ target: item, options: defaultOpenOptions }); + normalizedOpens.push({ target: item, options: defaultOpenOptions }); // eslint-disable-next-line no-continue continue; } - result.push(...getOpenItemsFromObject(item)); + normalizedOpens.push(...getOpenItemsFromObject(item)); } - - options.open = result as NormalizedOpen[]; } else { - options.open = [ - ...getOpenItemsFromObject(options.open), - ] as NormalizedOpen[]; + normalizedOpens = [...getOpenItemsFromObject(options.open)]; } + options.open = normalizedOpens; + if (typeof options.port === 'string' && options.port !== 'auto') { options.port = Number(options.port); }