From 4ab517bc44664fdf65a1bdb27dcda7a455cfe42e Mon Sep 17 00:00:00 2001 From: Levi Yan Date: Sun, 22 Jun 2025 15:54:27 +0800 Subject: [PATCH] refactor: use standard format for domain --- src/devstar-api.ts | 4 ++-- src/home.ts | 28 +++++++++++++++------------- src/user.ts | 27 ++++++++++++++++----------- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/devstar-api.ts b/src/devstar-api.ts index 531188c..ba79d13 100644 --- a/src/devstar-api.ts +++ b/src/devstar-api.ts @@ -21,7 +21,7 @@ export default class DevstarAPIHandler { constructor(devstarDomainURL?: string) { if (devstarDomainURL == undefined || devstarDomainURL == "") { // 获取domain - const devstarDomainFromUserConfig = utils.devstarDomain() + const devstarDomainFromUserConfig: string | undefined = utils.devstarDomain() if (undefined == devstarDomainFromUserConfig || "" == devstarDomainFromUserConfig) { this.devstarDomain = "https://devstar.cn"; } else { @@ -29,7 +29,7 @@ export default class DevstarAPIHandler { } } else { // open with vscode传入 - this.devstarDomain = devstarDomainURL + this.devstarDomain = devstarDomainURL.endsWith('/') ? devstarDomainURL.slice(0, -1) : devstarDomainURL } } diff --git a/src/home.ts b/src/home.ts index 3d67b42..b23670b 100644 --- a/src/home.ts +++ b/src/home.ts @@ -33,15 +33,17 @@ export default class DSHome { this.remoteContainer = new RemoteContainer(user); if (devstarDomain != undefined && devstarDomain != "") { - this.devstarDomain = devstarDomain + this.devstarDomain = devstarDomain.endsWith('/') ? devstarDomain.slice(0, -1) : devstarDomain + this.devstarHomePageUrl = this.devstarDomain + "/devstar-home" } else { - this.devstarDomain = utils.devstarDomain() - } - - if (undefined == this.devstarDomain || "" == this.devstarDomain) { - this.devstarHomePageUrl = "https://devstar.cn/devstar-home" - } else { - this.devstarHomePageUrl = this.devstarDomain.endsWith('/') ? this.devstarDomain + "devstar-home" : this.devstarDomain + "/devstar-home" + const devstarDomainFromConfig = utils.devstarDomain() + if (devstarDomainFromConfig != undefined && devstarDomainFromConfig != "") { + this.devstarDomain = devstarDomainFromConfig.endsWith('/') ? devstarDomainFromConfig.slice(0, -1) : devstarDomainFromConfig + this.devstarHomePageUrl = this.devstarDomain + "/devstar-home" + } else { + this.devstarDomain = "https://devstar.cn" + this.devstarHomePageUrl = "https://devstar.cn/devstar-home" + } } } @@ -53,12 +55,12 @@ export default class DSHome { this.remoteContainer = remoteContainer } - setDevstarDomain(devstarDomain: string) { - if (undefined == devstarDomain || "" == devstarDomain) { - this.devstarDomain = devstarDomain - this.devstarHomePageUrl = "https://devstar.cn/devstar-home" - } else { + setDevstarDomainAndHomePageURL(devstarDomain: string) { + if (devstarDomain != undefined && devstarDomain != "") { + this.devstarDomain = devstarDomain.endsWith('/') ? devstarDomain.slice(0, -1) : devstarDomain this.devstarHomePageUrl = devstarDomain.endsWith('/') ? this.devstarDomain + "devstar-home" : devstarDomain + "/devstar-home" + } else { + console.error("devstarDomain is undefined or null") } } diff --git a/src/user.ts b/src/user.ts index d942404..38fc7ef 100644 --- a/src/user.ts +++ b/src/user.ts @@ -40,25 +40,30 @@ export default class User { // 提取devstar domain的主域名,用于本地ssh key的命名 if (devstarDomain != undefined && devstarDomain != "") { // open with vscode链接提供域名 - this.devstarDomain = devstarDomain + this.devstarDomain = devstarDomain.endsWith('/') ? devstarDomain.slice(0, -1) : 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,并用下划线替换. + const devstarDomainFromConfig: string | undefined = utils.devstarDomain(); + if (devstarDomainFromConfig != undefined && devstarDomainFromConfig != "") { + // 用户配置项提供域名 + this.devstarDomain = devstarDomainFromConfig.endsWith('/') ? devstarDomainFromConfig.slice(0, -1) : devstarDomainFromConfig + let parsedUrl = new URL(this.devstarDomain); + this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname,并用下划线替换. + } else { + // 如果没有配置devstar domain,则默认domain为https://devstar.cn + this.devstarDomain = "https://devstar.cn" + this.devstarHostname = "devstar_cn" + } } + + this.usernameKey = "devstarUsername_" + this.devstarDomain + this.userTokenKey = "devstarUserToken_" + this.devstarDomain } setDevstarDomainAndHostname(devstarDomain: string) { if (devstarDomain != "") { - this.devstarDomain = devstarDomain + this.devstarDomain = devstarDomain.endsWith('/') ? devstarDomain.slice(0, -1) : devstarDomain const parsedUrl = new URL(devstarDomain) this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); } else {