yahoo-swiv
Version:
A web-based exploratory visualization UI for Druid.io
58 lines (57 loc) • 2.06 kB
JavaScript
"use strict";
var swiv_plywood_1 = require('swiv-plywood');
var plywood_druid_requester_1 = require('plywood-druid-requester');
var plywood_mysql_requester_1 = require('plywood-mysql-requester');
var plywood_postgres_requester_1 = require('plywood-postgres-requester');
function properRequesterFactory(options) {
var type = options.type, host = options.host, retry = options.retry, timeout = options.timeout, verbose = options.verbose, concurrentLimit = options.concurrentLimit;
var requester;
switch (type) {
case 'druid':
requester = plywood_druid_requester_1.druidRequesterFactory({
host: host,
timeout: timeout || 30000,
requestDecorator: options.druidRequestDecorator
});
break;
case 'mysql':
requester = plywood_mysql_requester_1.mySqlRequesterFactory({
host: host,
database: options.database,
user: options.user,
password: options.password
});
break;
case 'postgres':
requester = plywood_postgres_requester_1.postgresRequesterFactory({
host: host,
database: options.database,
user: options.user,
password: options.password
});
break;
default:
throw new Error("unknown requester type " + type);
}
if (retry) {
requester = swiv_plywood_1.retryRequesterFactory({
requester: requester,
retry: retry,
delay: 500,
retryOnTimeout: false
});
}
if (verbose) {
requester = swiv_plywood_1.verboseRequesterFactory({
requester: requester
});
}
if (concurrentLimit) {
requester = swiv_plywood_1.concurrentLimitRequesterFactory({
requester: requester,
concurrentLimit: concurrentLimit
});
}
return requester;
}
exports.properRequesterFactory = properRequesterFactory;