nope/modules/mod-MQTT-Interface/assembly/manual-assembly.ts
2020-08-30 09:45:44 +02:00

64 lines
1.5 KiB
TypeScript

/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
* @create date 2018-06-11 01:49:04
* @modify date 2018-07-02 05:09:13
* @desc [description]
*/
import { ITopicMatcher } from '../../ZISS-Publish-And-Subscribe-System/type/interfaces';
import { MQTTMatcher } from '../src/mqtt-matching';
import { MQTTConverter } from '../src/mqtt-converter'
import { ExternalMQTTServerWithConverter } from '../src/mqtt-interface.FileLoader';
import * as MQTT from '../type/types';
import * as mqtt from 'mqtt';
export const TYPES = {
MQTTMatcher: MQTT.TYPES.MQTTMatcher,
MQTTInterface: Symbol('MQTTExternalBroker'),
MQTTConverter: MQTT.TYPES.MQTTConverter,
};
import { IDescriptor } from '../../ZISS-Assembly-Builder/type/interfaces';
export const EXPORT: Array<IDescriptor> = [
{
selector: TYPES.MQTTMatcher,
type: MQTTMatcher,
options: {
scope: 'inSingletonScope',
},
},
{
selector: TYPES.MQTTInterface,
type: ExternalMQTTServerWithConverter,
options: {
scope: 'inSingletonScope',
},
},
{
selector: TYPES.MQTTConverter,
type: MQTTConverter,
options: {
scope: 'inSingletonScope',
},
},
{
selector: MQTT.TYPES.MQTTLibrary,
type: mqtt,
options: {
toConstant: true
},
},
];
export const REQUIRE = ['PUBSUB'];
export const NAME = 'MQTT';
/** Export the Type */
export type Matcher = ITopicMatcher;
export type MQTTInterface = ExternalMQTTServerWithConverter;