merkle-btree
Version:
Content-addressed b-tree
67 lines (55 loc) • 1.76 kB
JavaScript
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import { randomBytes } from 'crypto';
var GUNStorage = function () {
function GUNStorage(gun) {
_classCallCheck(this, GUNStorage);
this.gun = gun.get('identifi');
}
GUNStorage.prototype.put = function put(value, name) {
var _this = this;
return new Promise(function (resolve) {
randomBytes(32, function (err, buffer) {
var key = name || buffer.toString('base64');
_this.gun.get(key).put(value, function (ack) {
console.log('waiting for ack');
if (ack.err) {
console.log('ack error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
return;
// return reject(ack.err);
}
console.log('ack success!', key);
});
resolve(key);
});
});
};
GUNStorage.prototype.get = function get(hash) {
var _this2 = this;
return new Promise(function (resolve) {
_this2.gun.get(hash).on(function (data, key, msg, event) {
event.off();
if (!data) {
return;
//return reject(`Error: Hash cannot be found at ${hash}`);
}
resolve(data);
});
});
};
GUNStorage.prototype.remove = function remove(key) {
var _this3 = this;
return new Promise(function (resolve, reject) {
_this3.gun.get(key).put(null, function (ack) {
if (ack.err) {
return reject(ack.err);
}
});
resolve(key);
});
};
GUNStorage.prototype.clear = function clear() {
return Promise.resolve();
};
return GUNStorage;
}();
export default GUNStorage;