added first prototype of the new HB with indexedDB

This commit is contained in:
Kevin Jahns 2015-06-09 18:08:23 +02:00
parent c5b47e88ac
commit 7a89c1cc6d
3 changed files with 155 additions and 0 deletions

View File

@ -0,0 +1,48 @@
class Buffer
constructor: (@buffer)->
set: (op)->
that = this
new Promise (resolve, reject)=>
request = that.buffer.put op
request.onsuccess = (event)->
resolve op
request.onerror = (event)->
reject "Could not set value!"
get: (uid)->
that = this
new Promise (resolve, reject)=>
request = that.buffer.get uid
request.onsuccess = (event)->
resolve request.result
request.onerror = (event)->
reject "Could not set value!"
class window.HB
constructor: ()->
@ready = (new Promise (resolve, reject)->
request = indexedDB.open "Testy", 7
request.onerror = ()->
reject "Couldn't open the IndexedDB database!"
request.onsuccess = (event)->
resolve event.target.result
request.onupgradeneeded = (event)->
db = event.target.result
objectStore = db.createObjectStore "HistoryBuffer", {keyPath: "uid"}
).catch (message)->
throw new Error message
requestBuffer: ()->
@ready.then (db)->
new Promise (resolve, reject)->
resolve new Buffer(db.transaction(["HistoryBuffer"], "readwrite").objectStore("HistoryBuffer"))
removeDatabase: ()->
req = indexedDB.deleteDatabase "Testy"
req.onsuccess = ()->
console.log("Deleted database successfully");
req.onerror = ()->
console.log("Couldn't delete database")
window.hb = new HB()

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Y Example</title>
<script src="./index.js"></script>
</head>
<body>
<h1 contentEditable> Tutorial</h1>
</body>
</html>

View File

@ -0,0 +1,96 @@
// Generated by CoffeeScript 1.9.2
(function() {
var Buffer;
Buffer = (function() {
function Buffer(buffer) {
this.buffer = buffer;
}
Buffer.prototype.set = function(op) {
var that;
that = this;
return new Promise((function(_this) {
return function(resolve, reject) {
var request;
request = that.buffer.put(op);
request.onsuccess = function(event) {
return resolve(op);
};
return request.onerror = function(event) {
return reject("Could not set value!");
};
};
})(this));
};
Buffer.prototype.get = function(uid) {
var that;
that = this;
return new Promise((function(_this) {
return function(resolve, reject) {
var request;
request = that.buffer.get(uid);
request.onsuccess = function(event) {
return resolve(request.result);
};
return request.onerror = function(event) {
return reject("Could not set value!");
};
};
})(this));
};
return Buffer;
})();
window.HB = (function() {
function HB() {
this.ready = (new Promise(function(resolve, reject) {
var request;
request = indexedDB.open("Testy", 7);
request.onerror = function() {
return reject("Couldn't open the IndexedDB database!");
};
request.onsuccess = function(event) {
return resolve(event.target.result);
};
return request.onupgradeneeded = function(event) {
var db, objectStore;
db = event.target.result;
return objectStore = db.createObjectStore("HistoryBuffer", {
keyPath: "uid"
});
};
}))["catch"](function(message) {
throw new Error(message);
});
}
HB.prototype.requestBuffer = function() {
return this.ready.then(function(db) {
return new Promise(function(resolve, reject) {
return resolve(new Buffer(db.transaction(["HistoryBuffer"], "readwrite").objectStore("HistoryBuffer")));
});
});
};
HB.prototype.removeDatabase = function() {
var req;
req = indexedDB.deleteDatabase("Testy");
req.onsuccess = function() {
return console.log("Deleted database successfully");
};
return req.onerror = function() {
return console.log("Couldn't delete database");
};
};
return HB;
})();
window.hb = new HB();
}).call(this);