



























@@ -73,6 +73,17 @@ export async function createBrowserProfileConfig(params: {
7373const mutation = await mutateConfigFile<BrowserProfileConfig>({
7474afterWrite: { mode: "auto" },
7575mutate: async (draft) => {
76+const rawDraftBrowser = draft.browser as
77+| (NonNullable<typeof draft.browser> & { cdpPortRangeEnd?: unknown })
78+| undefined;
79+const draftCdpPortRangeEnd =
80+typeof rawDraftBrowser?.cdpPortRangeEnd === "number"
81+ ? rawDraftBrowser.cdpPortRangeEnd
82+ : undefined;
83+const useRebasedPortRange =
84+draft.gateway?.port !== undefined ||
85+draft.browser?.cdpPortRangeStart !== undefined ||
86+draftCdpPortRangeEnd !== undefined;
7687const latestResolved = resolveBrowserConfig(
7788{
7889 ...params.resolved,
@@ -82,12 +93,14 @@ export async function createBrowserProfileConfig(params: {
8293draft,
8394);
8495const latestRootResolved = resolveBrowserConfig(draft.browser, draft);
96+const latestProfileSource = useRebasedPortRange ? latestRootResolved : latestResolved;
8597const latestProfiles = draft.browser?.profiles ?? {};
86-if (params.name in latestProfiles || params.name in latestResolved.profiles) {
98+if (params.name in latestProfiles || params.name in latestProfileSource.profiles) {
8799throw new BrowserConflictError(`profile "${params.name}" already exists`);
88100}
8910190-const profileColor = params.color ?? allocateColor(getUsedColors(latestResolved.profiles));
102+const profileColor =
103+params.color ?? allocateColor(getUsedColors(latestProfileSource.profiles));
9110492105let nextProfileConfig: BrowserProfileConfig;
93106if (params.parsedCdpUrl) {
@@ -109,18 +122,7 @@ export async function createBrowserProfileConfig(params: {
109122color: profileColor,
110123};
111124} else {
112-const usedPorts = getUsedPorts(latestResolved.profiles);
113-const rawDraftBrowser = draft.browser as
114-| (NonNullable<typeof draft.browser> & { cdpPortRangeEnd?: unknown })
115-| undefined;
116-const draftCdpPortRangeEnd =
117-typeof rawDraftBrowser?.cdpPortRangeEnd === "number"
118- ? rawDraftBrowser.cdpPortRangeEnd
119- : undefined;
120-const useRebasedPortRange =
121-draft.gateway?.port !== undefined ||
122-draft.browser?.cdpPortRangeStart !== undefined ||
123-draftCdpPortRangeEnd !== undefined;
125+const usedPorts = getUsedPorts(latestProfileSource.profiles);
124126const rangeSource = useRebasedPortRange ? latestRootResolved : params.resolved;
125127const range = cdpPortRange({
126128controlPort: rangeSource.controlPort,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。