feat(user): two constructors used for domain which come from user config or param in open_with_vscode link

This commit is contained in:
Levi Yan
2025-06-22 11:05:39 +08:00
parent dd106a1ecb
commit 9b56dba1e2

View File

@@ -19,19 +19,41 @@ export default class User {
private localUserPrivateKeyPath: string = ''
private devstarHostname: string;
constructor(context: vscode.ExtensionContext) {
/**
* devstarDomain由配置项提供
* @param context
*/
constructor(context: vscode.ExtensionContext);
/**
* devstarDomain由open with vscode链接提供
* @param context
* @param devstarDomain
*/
constructor(context: vscode.ExtensionContext, devstarDomain: string);
constructor(context: vscode.ExtensionContext, devstarDomain?: string) {
this.context = context;
this.username = this.context.globalState.get(this.usernameKey);
this.userToken = this.context.globalState.get(this.userTokenKey);
// 提取devstar domain的主域名用于本地ssh key的命名
let devstarDomainFromConfig: string | undefined;
let devstarDomainURL: string;
devstarDomainFromConfig = vscode.workspace.getConfiguration('devstar').get('devstarDomain')
// 如果没有配置devstar domain则默认domain为https://devstar.cn
devstarDomainURL = (devstarDomainFromConfig === undefined || devstarDomainFromConfig === "") ? 'https://devstar.cn' : devstarDomainFromConfig;
let parsedUrl = new URL(devstarDomainURL);
this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname并用下划线替换.
if (devstarDomain != undefined && devstarDomain != "") {
// open with vscode链接提供域名
this.devstarDomain = devstarDomain
let parsedUrl = new URL(devstarDomain);
this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname并用下划线替换.
} else {
// 用户配置项提供域名
let devstarDomainFromConfig: string | undefined;
let devstarDomainURL: string;
devstarDomainFromConfig = vscode.workspace.getConfiguration('devstar').get('devstarDomain')
// 如果没有配置devstar domain则默认domain为https://devstar.cn
devstarDomainURL = (devstarDomainFromConfig === undefined || devstarDomainFromConfig === "") ? 'https://devstar.cn' : devstarDomainFromConfig;
this.devstarDomain = devstarDomainURL
let parsedUrl = new URL(devstarDomainURL);
this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname并用下划线替换.
}
}
public async login(token: string, username: string) {