Files
caprover/app-cli/helpers/MachineHelper.js
T
2018-11-01 21:30:57 +01:00

65 lines
1.5 KiB
JavaScript

const { printMessage } = require("../utils/messageHandler")
const configstore = require("configstore")
const packagejson = require("../package.json")
const configs = new configstore(packagejson.name, {
captainMachines: []
})
class MachineHelper {
constructor() {
this.machines = configs.get("captainMachines")
}
getMachinesAsOptions() {
const firstItemInOption = [
{
name: "-- CANCEL --",
value: "",
short: ""
}
]
const listOfMachines = this.machines.map(machine => {
return {
name: `${machine.name} at ${machine.baseUrl}`,
value: `${machine.name}`,
short: `${machine.name} at ${machine.baseUrl}`
}
})
return [...firstItemInOption, ...listOfMachines]
}
setMachines(machines) {
this.machines = machines
}
addMachine(newMachine) {
const tempMachines = this.machines
const newMachines = [...tempMachines, newMachine]
// Add to local storage
configs.set("captainMachines", newMachines)
this.setMachines(configs.get("captainMachines"))
}
logoutMachine(machineName) {
const removedMachine = MachineHelper.machines.filter(
machine => machine.name === machineName
)[0]
const newMachines = MachineHelper.machines.filter(
machine => machine.name !== machineName
)
MachineHelper.setMachines(newMachines)
printMessage(
`You are now logged out from ${removedMachine.name} at ${
removedMachine.baseUrl
}...\n`
)
}
}
module.exports = new MachineHelper()