poseidon-cassandra
Version:
A future wrapper around the node-cassandra-cql driver using Poseidon
344 lines • 11.6 kB
JavaScript
var Promise = require('bluebird');
var Driver = require('./driver');
function Keyspace(Driver, connectionName) {
this.connectionName = connectionName;
this.instance = Driver.openConnection(connectionName);
return;
}
Keyspace.prototype.batch = function () {
var args = arguments;
var deferred = Promise.pending();
this.instance.catch(function (err) {
deferred.reject(err);
return deferred.promise;
}).then(function (instanceValue) {
var callback = function () {
if (arguments[0]) {
if (arguments.length === 1 || arguments[1] == null) {
deferred.reject(arguments[0]);
} else {
deferred.reject(Array.prototype.slice.call(arguments, 0));
}
} else {
switch (arguments.length) {
case 0:
deferred.resolve();
break;
case 2:
deferred.resolve(arguments[1]);
break;
case 3:
deferred.resolve([
arguments[1],
arguments[2]
]);
break;
case 4:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3]
]);
break;
case 5:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4]
]);
break;
case 6:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4],
arguments[5]
]);
break;
default:
deferred.resolve(Array.prototype.slice.call(null, arguments, 1));
break;
}
}
};
switch (args.length) {
case 0:
instanceValue.batch(callback);
break;
case 1:
instanceValue.batch(args[0], callback);
break;
case 2:
instanceValue.batch(args[0], args[1], callback);
break;
case 3:
instanceValue.batch(args[0], args[1], args[2], callback);
break;
case 4:
instanceValue.batch(args[0], args[1], args[2], args[3], callback);
break;
case 5:
instanceValue.batch(args[0], args[1], args[2], args[3], args[4], callback);
break;
default:
instanceValue.batch.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback));
break;
}
});
return deferred.promise;
};
Keyspace.prototype.eachRow = function () {
var args = arguments;
var deferred = Promise.pending();
this.instance.catch(function (err) {
deferred.reject(err);
return deferred.promise;
}).then(function (instanceValue) {
var callback = function () {
if (arguments[0]) {
if (arguments.length === 1 || arguments[1] == null) {
deferred.reject(arguments[0]);
} else {
deferred.reject(Array.prototype.slice.call(arguments, 0));
}
} else {
switch (arguments.length) {
case 0:
deferred.resolve();
break;
case 2:
deferred.resolve(arguments[1]);
break;
case 3:
deferred.resolve([
arguments[1],
arguments[2]
]);
break;
case 4:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3]
]);
break;
case 5:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4]
]);
break;
case 6:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4],
arguments[5]
]);
break;
default:
deferred.resolve(Array.prototype.slice.call(null, arguments, 1));
break;
}
}
};
switch (args.length) {
case 0:
instanceValue.eachRow(callback);
break;
case 1:
instanceValue.eachRow(args[0], callback);
break;
case 2:
instanceValue.eachRow(args[0], args[1], callback);
break;
case 3:
instanceValue.eachRow(args[0], args[1], args[2], callback);
break;
case 4:
instanceValue.eachRow(args[0], args[1], args[2], args[3], callback);
break;
case 5:
instanceValue.eachRow(args[0], args[1], args[2], args[3], args[4], callback);
break;
default:
instanceValue.eachRow.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback));
break;
}
});
return deferred.promise;
};
Keyspace.prototype.execute = function () {
var args = arguments;
var deferred = Promise.pending();
this.instance.catch(function (err) {
deferred.reject(err);
return deferred.promise;
}).then(function (instanceValue) {
var callback = function () {
if (arguments[0]) {
if (arguments.length === 1 || arguments[1] == null) {
deferred.reject(arguments[0]);
} else {
deferred.reject(Array.prototype.slice.call(arguments, 0));
}
} else {
switch (arguments.length) {
case 0:
deferred.resolve();
break;
case 2:
deferred.resolve(arguments[1]);
break;
case 3:
deferred.resolve([
arguments[1],
arguments[2]
]);
break;
case 4:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3]
]);
break;
case 5:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4]
]);
break;
case 6:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4],
arguments[5]
]);
break;
default:
deferred.resolve(Array.prototype.slice.call(null, arguments, 1));
break;
}
}
};
switch (args.length) {
case 0:
instanceValue.execute(callback);
break;
case 1:
instanceValue.execute(args[0], callback);
break;
case 2:
instanceValue.execute(args[0], args[1], callback);
break;
case 3:
instanceValue.execute(args[0], args[1], args[2], callback);
break;
case 4:
instanceValue.execute(args[0], args[1], args[2], args[3], callback);
break;
case 5:
instanceValue.execute(args[0], args[1], args[2], args[3], args[4], callback);
break;
default:
instanceValue.execute.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback));
break;
}
});
return deferred.promise;
};
Keyspace.prototype.stream = function () {
var args = arguments;
var deferred = Promise.pending();
this.instance.catch(function (err) {
deferred.reject(err);
return deferred.promise;
}).then(function (instanceValue) {
var callback = function () {
if (arguments[0]) {
if (arguments.length === 1 || arguments[1] == null) {
deferred.reject(arguments[0]);
} else {
deferred.reject(Array.prototype.slice.call(arguments, 0));
}
} else {
switch (arguments.length) {
case 0:
deferred.resolve();
break;
case 2:
deferred.resolve(arguments[1]);
break;
case 3:
deferred.resolve([
arguments[1],
arguments[2]
]);
break;
case 4:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3]
]);
break;
case 5:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4]
]);
break;
case 6:
deferred.resolve([
arguments[1],
arguments[2],
arguments[3],
arguments[4],
arguments[5]
]);
break;
default:
deferred.resolve(Array.prototype.slice.call(null, arguments, 1));
break;
}
}
};
switch (args.length) {
case 0:
instanceValue.stream(callback);
break;
case 1:
instanceValue.stream(args[0], callback);
break;
case 2:
instanceValue.stream(args[0], args[1], callback);
break;
case 3:
instanceValue.stream(args[0], args[1], args[2], callback);
break;
case 4:
instanceValue.stream(args[0], args[1], args[2], args[3], callback);
break;
case 5:
instanceValue.stream(args[0], args[1], args[2], args[3], args[4], callback);
break;
default:
instanceValue.stream.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback));
break;
}
});
return deferred.promise;
};
module.exports = Keyspace;