From 51dccdeaf9129aaa3e0e299fa568aacc7330f8a6 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 28 Feb 2012 14:37:42 -0500 Subject: [PATCH] Indexed DB additions --- src/modules/indexedDB.js | 46 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/modules/indexedDB.js b/src/modules/indexedDB.js index b6be2b7..2363bc9 100644 --- a/src/modules/indexedDB.js +++ b/src/modules/indexedDB.js @@ -36,7 +36,7 @@ { var request = {}; - version = version || 0; + version = version || 1; // Ask for permission to use db request = db.open(dbname, version); @@ -63,7 +63,51 @@ // Connect to the specified db indexedDB.current_db = request.result; }; + }, + /** + * Helper function to create a new object store + * + * @memberOf $_.indexedDB + * @name create_store + * @function + * @param string name + * @param [string] key + * @param [bool] generator + * @return IDBDataStore object + */ + create_store: function(name, key, generator) + { + var params = {}; + + if(typeof key !== "undefined") + { + params.keyPath = key; + } + + if(typeof generator !== "undefined") + { + // Cast to a boolean value + params.autoIncrement = !! generator; + } + + return db.createObjectStore(name, params); + }, + /** + * Delete an object store + * + * @memberOf $_.indexedDB + * @name delete_store + * @function + * @param string name + */ + delete_store: function(name) + { + var request = db.deleteObjectStore(); + + // Pass the error up + request.onerror = db.onerror; } + }; $_.ext('indexedDB', indexedDB);