Skip to content

Commit 7b73327

Browse files
authored
Merge pull request #276266 from microsoft/tyriar/saferLightDark
Simplify light/dark icon check
2 parents 5ed75a2 + 75c05eb commit 7b73327

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/vs/workbench/contrib/terminal/common/terminalExtensionPoints.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { IExtensionTerminalProfile, ITerminalCompletionProviderContribution, ITe
1010
import { URI } from '../../../../base/common/uri.js';
1111
import { Emitter, Event } from '../../../../base/common/event.js';
1212
import { isProposedApiEnabled } from '../../../services/extensions/common/extensions.js';
13+
import { isObject } from '../../../../base/common/types.js';
1314

1415
// terminal extension point
1516
const terminalsExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint<ITerminalContributions>(terminalContributionsDescriptor);
@@ -63,13 +64,16 @@ export class TerminalContributionService implements ITerminalContributionService
6364
}
6465

6566
function hasValidTerminalIcon(profile: ITerminalProfileContribution): boolean {
66-
return !profile.icon ||
67-
(
68-
typeof profile.icon === 'string' ||
69-
URI.isUri(profile.icon) ||
70-
(
71-
(<{ light: URI; dark: URI }>profile.icon).light && URI.isUri(profile.icon.light) &&
72-
(<{ light: URI; dark: URI }>profile.icon).dark && URI.isUri(profile.icon.dark)
73-
)
67+
function isValidDarkLightIcon(obj: unknown): obj is { light: URI; dark: URI } {
68+
return (
69+
isObject(obj) &&
70+
'light' in obj && URI.isUri(obj.light) &&
71+
'dark' in obj && URI.isUri(obj.dark)
7472
);
73+
}
74+
return !profile.icon || (
75+
typeof profile.icon === 'string' ||
76+
URI.isUri(profile.icon) ||
77+
isValidDarkLightIcon(profile.icon)
78+
);
7579
}

0 commit comments

Comments
 (0)