diff --git a/examples/indexedDB/index.coffee b/examples/indexedDB/index.coffee new file mode 100644 index 0000000000000000000000000000000000000000..78f079af237be939f91f25b4582273ae507b4f2b --- /dev/null +++ b/examples/indexedDB/index.coffee @@ -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() diff --git a/examples/indexedDB/index.html b/examples/indexedDB/index.html new file mode 100644 index 0000000000000000000000000000000000000000..b925cc8869a3ac47382e292c6f3af70eb20506b5 --- /dev/null +++ b/examples/indexedDB/index.html @@ -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> diff --git a/examples/indexedDB/index.js b/examples/indexedDB/index.js new file mode 100644 index 0000000000000000000000000000000000000000..071b17c7925868fda673b438026263c797e44627 --- /dev/null +++ b/examples/indexedDB/index.js @@ -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);