UNPKG

@devmn/cloud-cli

Version:

CLI tool for Intelligo Cloud.

46 lines (40 loc) 1.4 kB
import Constants from '../utils/Constants' import StorageHelper from '../utils/StorageHelper' import { IHashMapGeneric } from '../models/IHashMapGeneric' import { IMachine } from '../models/storage/StoredObjects' import ApiManager from './ApiManager' function hashCode(str: string) { let hash = 0 let i let chr if (str.length === 0) { return hash } for (i = 0; i < str.length; i++) { chr = str.charCodeAt(i) hash = (hash << 5) - hash + chr hash |= 0 // Convert to 32bit integer } return hash } export default class CliApiManager { static instances: IHashMapGeneric<ApiManager> = {} static get(capMachine: IMachine) { const hashKey = 'v' + hashCode(capMachine.baseUrl) if (!CliApiManager.instances[hashKey]) { CliApiManager.instances[hashKey] = new ApiManager( capMachine.baseUrl + Constants.BASE_API_PATH, capMachine.appToken, function(token) { capMachine.authToken = token if (capMachine.name) { StorageHelper.get().saveMachine(capMachine) } return Promise.resolve() } ) } CliApiManager.instances[hashKey].setAuthToken(capMachine.authToken) return CliApiManager.instances[hashKey] } }