DCSOlympus/client/src/context/contextmanager.ts
2023-12-09 15:51:16 +01:00

40 lines
1.1 KiB
TypeScript

import { Manager } from "../other/manager";
import { Context, ContextInterface } from "./context";
export class ContextManager extends Manager {
#currentContext!: string;
constructor() {
super();
}
add(name: string, contextConfig: ContextInterface) {
super.add(name, new Context(contextConfig));
if (Object.values(this.getAll()).length === 1) {
this.#currentContext = name;
}
return this;
}
currentContextIs(contextName: string) {
return contextName === this.#currentContext;
}
getCurrentContext() {
const contexts = this.getAll();
return (contexts.hasOwnProperty(this.#currentContext)) ? contexts[this.#currentContext] : false;
}
setContext(contextName: string) {
if (!this.get(contextName)) {
console.error(`setContext(): context name "${contextName}" does not exist.`);
return false;
}
this.#currentContext = contextName;
console.log(`Setting context to "${this.#currentContext}".`);
}
}