holly-sdk
Version:
More details coming soon.
93 lines (79 loc) • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
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 KEYSTORE_NAME = "_keystore";
var Q = require("q");
var Keystore = exports.Keystore = function () {
function Keystore(db) {
_classCallCheck(this, Keystore);
this.db = db(KEYSTORE_NAME);
this.db.ensureIndex({ fieldName: 'id', unique: true });
}
_createClass(Keystore, [{
key: "getAll",
value: function getAll() {
var deferred = Q.defer();
this.db.find({}, function (err, docs) {
if (err) {
deferred.reject(err);
return;
}
var dict = {};
for (var i in docs) {
var d = docs[i];
dict[d.id] = d.value;
}
deferred.resolve(dict);
});
return deferred.promise;
}
}, {
key: "get",
value: function get(key) {
var deferred = Q.defer();
this.db.find({ id: key }, function (err, docs) {
if (err) {
deferred.reject(err);
return;
}
var dict = {};
for (var i in docs) {
deferred.resolve(docs[i].value);
return;
}
deferred.resolve(undefined);
});
return deferred.promise;
}
}, {
key: "set",
value: function set(key, value) {
var deferred = Q.defer();
this.db.update({ id: key }, { id: key, value: value }, { upsert: true }, function (err, numReplaced, upsert) {
if (err) {
deferred.reject(err);
return;
}
deferred.resolve(numReplaced);
});
return deferred.promise;
}
}, {
key: "reset",
value: function reset() {
var deferred = Q.defer();
this.db.remove({}, { multi: true }, function (err, numRemoved) {
if (err) {
deferred.reject(err);
return;
}
deferred.resolve(numRemoved);
});
return deferred.promise;
}
}]);
return Keystore;
}();