mirror of
https://github.com/voideditor/void
synced 2026-05-24 09:58:23 +00:00
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
import { Uri } from 'vscode';
|
|
import { AuthProviderType } from '../github';
|
|
|
|
const VALID_DESKTOP_CALLBACK_SCHEMES = [
|
|
'vscode',
|
|
'vscode-insiders',
|
|
// On Windows, some browsers don't seem to redirect back to OSS properly.
|
|
// As a result, you get stuck in the auth flow. We exclude this from the
|
|
// list until we can figure out a way to fix this behavior in browsers.
|
|
// 'code-oss',
|
|
'vscode-wsl',
|
|
'vscode-exploration'
|
|
];
|
|
|
|
export function isSupportedClient(uri: Uri): boolean {
|
|
return (
|
|
VALID_DESKTOP_CALLBACK_SCHEMES.includes(uri.scheme) ||
|
|
// vscode.dev & insiders.vscode.dev
|
|
/(?:^|\.)vscode\.dev$/.test(uri.authority) ||
|
|
// github.dev & codespaces
|
|
/(?:^|\.)github\.dev$/.test(uri.authority)
|
|
);
|
|
}
|
|
|
|
export function isSupportedTarget(type: AuthProviderType, gheUri?: Uri): boolean {
|
|
return (
|
|
type === AuthProviderType.github ||
|
|
isHostedGitHubEnterprise(gheUri!)
|
|
);
|
|
}
|
|
|
|
export function isHostedGitHubEnterprise(uri: Uri): boolean {
|
|
return /\.ghe\.com$/.test(uri.authority);
|
|
}
|