tabel
Version:
A simple orm for PostgreSQL which works with simple javascript objects and arrays
77 lines (65 loc) • 2.29 kB
JavaScript
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _require = require('lodash'),
isArray = _require.isArray;
var Hash = function () {
function Hash(client, name) {
_classCallCheck(this, Hash);
this.client = client;
this.name = name;
}
_createClass(Hash, [{
key: 'fullKey',
value: function fullKey(key) {
var _this = this;
if (isArray(key)) {
return key.map(function (k) {
return _this.fullKey(k);
});
}
return this.name + '.' + key;
}
}, {
key: 'assign',
value: function assign(values, lifetime) {
var _this2 = this;
return Promise.all(Object.keys(values).map(function (key) {
return _this2.set(key, values[key], lifetime);
}));
}
}, {
key: 'has',
value: function has(key) {
return this.client.exists(this.fullKey(key));
}
}, {
key: 'get',
value: function get(key) {
var defaultVal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
return this.client.get(this.fullKey(key), defaultVal);
}
}, {
key: 'set',
value: function set(key, val, lifetime) {
return this.client.set(this.fullKey(key), val, lifetime);
}
}, {
key: 'del',
value: function del(key) {
return this.client.del(this.fullKey(key));
}
}, {
key: 'delete',
value: function _delete(key) {
return this.delete(key);
}
}, {
key: 'clear',
value: function clear() {
return this.client.clear(this.name + '.');
}
}]);
return Hash;
}();
module.exports = Hash;