Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 54x 35x 15x 1x 103x 1x 7x 6x 40062x 1x 1x 3x 1x 20x 1x 1x 9x 1x 1x 41345x 41345x 1x 1x | const Promise = require('bluebird');
const util = require('util');
const check = require('check-types');
let dseDriver;
try {
// eslint-disable-next-line import/no-extraneous-dependencies, import/no-unresolved
dseDriver = require('dse-driver');
} catch (e) {
dseDriver = null;
}
const cql = Promise.promisifyAll(dseDriver || require('cassandra-driver'));
const validators = {};
validators.is_array = (obj) => (check.array(obj));
validators.is_object = (obj) => (check.object(obj));
validators.is_long = (obj) => ((obj instanceof cql.types.Long));
validators.is_decimal = (obj) => ((obj instanceof cql.types.BigDecimal));
validators.is_integer = (obj) => (check.integer(obj));
validators.is_var_int = (obj) => ((obj instanceof cql.types.Integer));
validators.is_boolean = (obj) => ((obj === true || obj === false));
validators.is_number = (obj) => (check.number(obj));
validators.is_string = (obj) => (check.string(obj));
validators.is_local_date = (obj) => ((obj instanceof cql.types.LocalDate));
validators.is_local_time = (obj) => ((obj instanceof cql.types.LocalTime));
validators.is_date = (obj) => (check.date(new Date(obj)));
validators.is_buffer = (obj) => ((obj instanceof Buffer));
validators.is_timeuuid = (obj) => ((obj instanceof cql.types.TimeUuid));
validators.is_uuid = (obj) => ((obj instanceof cql.types.Uuid));
validators.is_inet = (obj) => ((obj instanceof cql.types.InetAddress));
validators.is_frozen = (obj) => ((validators.is_array(obj) || validators.is_object(obj)));
const TYPE_MAP = {
ascii: { validator: validators.is_string },
bigint: { validator: validators.is_long },
blob: { validator: validators.is_buffer },
boolean: { validator: validators.is_boolean },
counter: { validator: validators.is_long },
date: { validator: validators.is_local_date },
decimal: { validator: validators.is_decimal },
double: { validator: validators.is_number },
float: { validator: validators.is_number },
inet: { validator: validators.is_inet },
int: { validator: validators.is_integer },
list: { validator: validators.is_array },
map: { validator: validators.is_object },
set: { validator: validators.is_array },
smallint: { validator: validators.is_integer },
text: { validator: validators.is_string },
time: { validator: validators.is_local_time },
timestamp: { validator: validators.is_date },
timeuuid: { validator: validators.is_timeuuid },
tinyint: { validator: validators.is_integer },
uuid: { validator: validators.is_uuid },
varchar: { validator: validators.is_string },
varint: { validator: validators.is_var_int },
frozen: { validator: validators.is_frozen },
};
TYPE_MAP.generic_type_validator = function f(fieldtype) {
Iif (!this[fieldtype]) return null;
return {
validator: this[fieldtype].validator,
message(value, propName, fieldType) {
return util.format('Invalid Value: "%s" for Field: %s (Type: %s)', value, propName, fieldType);
},
type: 'type_validator',
};
};
module.exports = TYPE_MAP;
|