UNPKG

holly-sdk

Version:
93 lines (79 loc) 2.67 kB
"use strict"; 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; }();