UNPKG

@intuitionrobotics/ts-common

Version:
40 lines 1.8 kB
import { ModuleManager } from "./module-manager.js"; import { Logger } from "./logger/Logger.js"; import { type ValidatorTypeResolver } from "../validator/validator.js"; import { type TimerHandler } from "../utils/date-time-tools.js"; export declare abstract class Module<Config = any> extends Logger { private name; protected manager?: ModuleManager; readonly initiated = false; protected configValidator?: ValidatorTypeResolver<Config>; protected timeoutMap: { [k: string]: number; }; private moduleDefaultConfig?; private manualConfig?; private resolvedConfig?; private resolvedAtEpoch; protected get config(): Config; constructor(name: string); private deduceName; debounce(handler: TimerHandler, key: string, ms?: number): void; throttle(handler: TimerHandler, key: string, ms?: number): void; throttleV2(handler: TimerHandler, key: string, ms: number, force?: boolean): void; setConfigValidator(validator: ValidatorTypeResolver<Config>): void; setDefaultConfig(config: Partial<Config>): void; getName(): string; setName(name: string): void; setConfig(config: Config): void; setManager(manager: ModuleManager): void; protected runAsync: (label: string, toCall: () => Promise<any>) => void; /** * @deprecated Backend (Storm) never calls init() — `Storm.build()` fails if a * registered module overrides it. Move work to the constructor (only if trivially * cheap and config-independent) or to lazy memoized getters that resolve on first * use. Run `thunderstorm-codemod check-module-init` to flag offenders. * The frontend (Thunder) still calls init() eagerly at app boot. */ protected init(): void; validate(): void; } //# sourceMappingURL=module.d.ts.map