mirror of
https://github.com/caprover/caprover
synced 2026-08-09 01:01:01 +00:00
65 lines
1.5 KiB
JavaScript
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()
|