feat(user): two constructors used for domain which come from user config or param in open_with_vscode link
This commit is contained in:
		
							
								
								
									
										38
									
								
								src/user.ts
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								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) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user