Add connection profiles (#63)

* Add connection setup

* Refactor

* Fix lifecycle
This commit is contained in:
Thomas Nordquist
2019-02-16 05:36:02 -08:00
committed by GitHub
parent f316d5699d
commit 93ea829987
19 changed files with 1225 additions and 418 deletions

View File

@@ -0,0 +1,51 @@
import { ConnectionOptions, createEmptyConnection } from './ConnectionOptions'
import { v4 } from 'uuid'
interface LegacyConnectionSettings {
host: string
protocol: string
port: number
tls: boolean
certValidation: boolean
clientId: string
connectionId?: string
username: string
password: string
}
export function loadLegacyConnectionSettings(): ConnectionOptions | undefined {
const legacySettingsString = window.localStorage.getItem('connectionSettings')
if (!legacySettingsString) {
return
}
let legacyConnection
try {
legacyConnection = JSON.parse(legacySettingsString) as LegacyConnectionSettings
} catch {
return
}
const protocolMap: {[s: string]: string} = {
'tcp://': 'mqtt',
'ws://': 'ws',
'mqtt://': 'mqtt',
}
const migratedOptions: Partial<ConnectionOptions> = {
certValidation: legacyConnection.certValidation,
host: legacyConnection.host,
name: legacyConnection.host,
protocol: protocolMap[legacyConnection.protocol] as any,
port: legacyConnection.port,
username: legacyConnection.username,
password: legacyConnection.password,
clientId: legacyConnection.clientId,
encryption: legacyConnection.tls,
}
return {
...createEmptyConnection(),
...migratedOptions,
}
}