UNPKG

@intuitionrobotics/thunderstorm

Version:
62 lines 2.16 kB
/* * Thunderstorm is a full web app framework! * * Typescript & Express backend infrastructure that natively runs on firebase function * Typescript & React frontend infrastructure * * Copyright (C) 2020 Intuition Robotics * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { ThunderDispatcher } from "./thunder-dispatcher.js"; import {} from "../../shared/request-types.js"; import { ModuleManager } from "@intuitionrobotics/ts-common/core/module-manager"; import { removeItemFromArray } from "@intuitionrobotics/ts-common/utils/array-tools"; export class AbstractThunder extends ModuleManager { listeners = []; constructor() { super(); this._DEBUG_FLAG.enable(false); // @ts-expect-error TS struggles with this dynamic typing ThunderDispatcher.listenersResolver = () => this.listeners; } static getInstance() { return AbstractThunder.instance; } init() { super.init(); this.renderApp(); return this; } setRenderApp(renderApp) { this.renderApp = renderApp; return this; } addUIListener(listener) { this.logInfo(`Register UI listener: ${listener}`); this.listeners.push(listener); } removeUIListener(listener) { this.logInfo(`Unregister UI listener: ${listener}`); removeItemFromArray(this.listeners, listener); } build(onStarted) { super.build(); onStarted?.(); } renderApp = () => { // Stub }; } export const dispatch_requestCompleted = new ThunderDispatcher("__onRequestCompleted"); //# sourceMappingURL=AbstractThunder.js.map