UNPKG

@showbridge/lib

Version:

Main library for showbridge protocol router

63 lines (62 loc) 1.59 kB
import { ConfigObj } from '@showbridge/types'; import { CloudProtocolParams, HTTPProtocolParams, MIDIProtocolParams, MQTTProtocolParams, TCPProtocolParams, UDPProtocolParams } from '@showbridge/types/dist/models/params/protocols.js'; import { ValidateFunction } from 'ajv'; import { SomeJSONSchema } from 'ajv/dist/types/json-schema.js'; import { Trigger } from './triggers/index.js'; type ConfigProtocols = { cloud: { params: CloudProtocolParams; }; http: { params: HTTPProtocolParams; }; midi: { params: MIDIProtocolParams; }; mqtt: { params: MQTTProtocolParams; }; tcp: { params: TCPProtocolParams; }; udp: { params: UDPProtocolParams; }; }; type ConfigHandlers = { http: { triggers: Trigger<unknown>[]; }; midi: { triggers: Trigger<unknown>[]; }; mqtt: { triggers: Trigger<unknown>[]; }; osc: { triggers: Trigger<unknown>[]; }; tcp: { triggers: Trigger<unknown>[]; }; udp: { triggers: Trigger<unknown>[]; }; ws: { triggers: Trigger<unknown>[]; }; }; declare class Config { schema: SomeJSONSchema; validate: ValidateFunction<unknown>; obj: ConfigObj; handlers: ConfigHandlers; protocols: ConfigProtocols; constructor(configObj: any, schema: SomeJSONSchema); loadHandlers(): void; loadProtocols(): void; migrate(configObj: ConfigObj): ConfigObj; getTriggers(messageType: string): Trigger<unknown>[]; toJSON(): any; } export default Config;