2017-01-13 19:34:04 -05:00
|
|
|
import { loadAdapter } from './Adapters/AdapterLoader';
|
2018-09-01 13:58:06 -04:00
|
|
|
import { EventEmitterMQ } from './Adapters/MessageQueue/EventEmitterMQ';
|
2017-01-13 19:34:04 -05:00
|
|
|
|
|
|
|
|
const ParseMessageQueue = {};
|
|
|
|
|
|
|
|
|
|
ParseMessageQueue.createPublisher = function(config: any): any {
|
2018-09-01 13:58:06 -04:00
|
|
|
const adapter = loadAdapter(
|
|
|
|
|
config.messageQueueAdapter,
|
|
|
|
|
EventEmitterMQ,
|
|
|
|
|
config
|
|
|
|
|
);
|
2017-01-13 19:34:04 -05:00
|
|
|
if (typeof adapter.createPublisher !== 'function') {
|
|
|
|
|
throw 'pubSubAdapter should have createPublisher()';
|
|
|
|
|
}
|
|
|
|
|
return adapter.createPublisher(config);
|
2018-09-01 13:58:06 -04:00
|
|
|
};
|
2017-01-13 19:34:04 -05:00
|
|
|
|
|
|
|
|
ParseMessageQueue.createSubscriber = function(config: any): void {
|
2018-09-01 13:58:06 -04:00
|
|
|
const adapter = loadAdapter(
|
|
|
|
|
config.messageQueueAdapter,
|
|
|
|
|
EventEmitterMQ,
|
|
|
|
|
config
|
|
|
|
|
);
|
2017-01-13 19:34:04 -05:00
|
|
|
if (typeof adapter.createSubscriber !== 'function') {
|
|
|
|
|
throw 'messageQueueAdapter should have createSubscriber()';
|
|
|
|
|
}
|
|
|
|
|
return adapter.createSubscriber(config);
|
2018-09-01 13:58:06 -04:00
|
|
|
};
|
2017-01-13 19:34:04 -05:00
|
|
|
|
2018-09-01 13:58:06 -04:00
|
|
|
export { ParseMessageQueue };
|