From 9b56dba1e2d04d0dcf69f87f536ca72042eec605 Mon Sep 17 00:00:00 2001 From: Levi Yan Date: Sun, 22 Jun 2025 11:05:39 +0800 Subject: [PATCH] feat(user): two constructors used for domain which come from user config or param in open_with_vscode link --- src/user.ts | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/src/user.ts b/src/user.ts index 715c549..09077e3 100644 --- a/src/user.ts +++ b/src/user.ts @@ -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) {