couch-elastic-stream
Version:
data streaming from couchdb to elastic via kafka.
55 lines (43 loc) • 1.58 kB
JavaScript
;
const CouchSourceConfig = require('./lib/CouchSourceConfig');
const ElasticSinkConfig = require('./lib/ElasticSinkConfig');
const CouchSourceConnector = require('./lib/source/CouchSourceConnector');
const ElasticSinkConnector = require('./lib/sink/ElasticSinkConnector');
const CouchSourceTask = require('./lib/source/CouchSourceTask');
const ElasticSinkTask = require('./lib/sink/ElasticSinkTask');
const JsonConverter = require("./lib/utils/JsonConverter.js");
const ConverterFactory = require("./lib/utils/ConverterFactory.js");
const Promise = require('bluebird');
const runSourceConnector = (properties, converters = [], onError = null) => {
const config = new CouchSourceConfig(properties,
CouchSourceConnector,
CouchSourceTask, [JsonConverter].concat(converters));
if (onError) {
config.on("error", onError);
}
return config.run().then(() => {
return config;
})
.catch((err)=> {
return Promise.reject(err);
});
};
const runSinkConnector = (properties, converters = [], onError = null) => {
const config = new ElasticSinkConfig(properties,
ElasticSinkConnector,
ElasticSinkTask, [JsonConverter].concat(converters));
if (onError) {
config.on("error", onError);
}
return config.run().then(() => {
return config;
})
.catch((error) => {
return Promise.reject(error);
});
};
module.exports = {
runSourceConnector,
runSinkConnector,
ConverterFactory
}