@showbridge/lib
Version:
Main library for showbridge protocol router
63 lines (62 loc) • 1.59 kB
TypeScript
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;