diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
| commit | b28028ac4082842143b0f528d6bc539da6ccb419 (patch) | |
| tree | 1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/localforage-cordovasqlitedriver | |
| parent | 676270d21beed31d767a06c89522198c77d5d865 (diff) | |
mega changes, including updates and X
Diffstat (limited to 'www/lib/localforage-cordovasqlitedriver')
18 files changed, 800 insertions, 0 deletions
diff --git a/www/lib/localforage-cordovasqlitedriver/.babelrc b/www/lib/localforage-cordovasqlitedriver/.babelrc new file mode 100644 index 00000000..653b5be2 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": [ "es2015-rollup" ] +}
\ No newline at end of file diff --git a/www/lib/localforage-cordovasqlitedriver/.bower.json b/www/lib/localforage-cordovasqlitedriver/.bower.json new file mode 100644 index 00000000..7cc247e6 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.bower.json @@ -0,0 +1,34 @@ +{ + "name": "localforage-cordovasqlitedriver", + "version": "1.4.1", + "main": [ + "src/localforage-cordovasqlitedriver.js" + ], + "ignore": [ + ".travis.yml", + "CONTRIBUTING.md", + "config.rb", + "Gemfile", + "Gemfile.lock", + "Rakefile", + "LICENSE", + "docs*", + "examples*", + "test*", + "site*" + ], + "dependencies": { + "localforage": "^1.4.0" + }, + "homepage": "https://github.com/thgreasi/localForage-cordovaSQLiteDriver", + "_release": "1.4.1", + "_resolution": { + "type": "version", + "tag": "v1.4.1", + "commit": "8e372775636d7e462bb3231cd9745864f420a0f4" + }, + "_source": "https://github.com/thgreasi/localForage-cordovaSQLiteDriver.git", + "_target": "~1.4.1", + "_originalSource": "localForage-cordovaSQLiteDriver", + "_direct": true +}
\ No newline at end of file diff --git a/www/lib/localforage-cordovasqlitedriver/.eslintrc b/www/lib/localforage-cordovasqlitedriver/.eslintrc new file mode 100644 index 00000000..9e56abf4 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.eslintrc @@ -0,0 +1,25 @@ +{ + "parser": "babel-eslint", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "modules": true + } + }, + "extends": "eslint:recommended", + "env": { + "node": true, + "mocha": true + }, + "rules":{ + "no-console": 0 + }, + "globals": { + "localforage": true, + "Promise": true, + "console": true, + "self": true, + "System": true + } +}
\ No newline at end of file diff --git a/www/lib/localforage-cordovasqlitedriver/.gitignore b/www/lib/localforage-cordovasqlitedriver/.gitignore new file mode 100644 index 00000000..0f1e467f --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.gitignore @@ -0,0 +1,35 @@ +.DS_Store +.swp +build +bower_components +node_modules +components + +# Logs + Sauce Labs Tests +*.log + +#WebStorm files +.idea + +### Ruby Stuff for slate docs +*.gem +*.rbc +.bundle +.config +coverage +InstalledFiles +lib/bundler/man +pkg +rdoc +spec/reports +test/tmp +test/version_tmp +tmp +*.DS_STORE +build/ +.cache + +# YARD artifacts +.yardoc +_yardoc +doc/ diff --git a/www/lib/localforage-cordovasqlitedriver/.jscsrc b/www/lib/localforage-cordovasqlitedriver/.jscsrc new file mode 100644 index 00000000..3415b8de --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.jscsrc @@ -0,0 +1,31 @@ +{ + "esnext": true, + "disallowSpacesInAnonymousFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowTrailingComma": true, + "requireBlocksOnNewline": true, + "requireLineFeedAtFileEnd": true, + "requireSpaceAfterKeywords": [ + "if", + "else", + "for", + "while", + "do", + "switch", + "return", + "try", + "catch" + ], + "requireSpaceBeforeBlockStatements": true, + "requireSpacesInConditionalExpression": true, + "requireSpacesInFunctionExpression": { + "beforeOpeningCurlyBrace": true + }, + "safeContextKeyword": ["globalObject", "self"], + "validateQuoteMarks": { + "escape": true, + "mark": "'" + }, + "validateIndentation": 4 +} diff --git a/www/lib/localforage-cordovasqlitedriver/.jshintrc b/www/lib/localforage-cordovasqlitedriver/.jshintrc new file mode 100644 index 00000000..f29a720b --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/.jshintrc @@ -0,0 +1,32 @@ +{ + "asi": false, + "bitwise": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "esnext": true, + "immed": true, + "latedef": true, + "newcap": true, + "noarg": true, + "nonew": true, + "quotmark": false, + "strict": false, + "trailing": false, + "undef": true, + "unused": true, + + "validthis": true, + + "globals": { + "console": true, + "define": true, + "localforage": true, + "module": true, + "Promise": true, + "require": true, + "self": true, + "System": true + } +} diff --git a/www/lib/localforage-cordovasqlitedriver/README.md b/www/lib/localforage-cordovasqlitedriver/README.md new file mode 100644 index 00000000..88669300 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/README.md @@ -0,0 +1,65 @@ +# localForage-cordovaSQLiteDriver +[](https://www.npmjs.com/package/localforage-cordovasqlitedriver) +SQLite driver for [Cordova](https://cordova.apache.org/) apps using [localForage](https://github.com/mozilla/localForage). + +## Requirements + +* [Cordova](https://cordova.apache.org/)/[ionic](http://ionicframework.com/) +* [Cordova SQLite storage plugin](https://github.com/litehelpers/Cordova-sqlite-storage/) or [Cordova SQLite Plugin 2](https://github.com/nolanlawson/cordova-plugin-sqlite-2) +* [localForage](https://github.com/mozilla/localForage) v1.4.0+ + * for earlier versions of localforage, please use the v1.2.x releases + +## Install Dependencies + +* install Cordova-sqlite-storage plugin `cordova plugin add https://github.com/litehelpers/Cordova-sqlite-storage.git` +* install localForage-cordovaSQLiteDriver `bower install --save localForage-cordovaSQLiteDriver` + +## CHANGELOG + +### v1.3 +Reduce driver size (almost by 50%) by "inheriting" the method implementations of the `localforage.WEBSQL` driver. + +### v1.2 *BREAKING CHANGE* +Add support for newer versions of [Cordova SQLite storage plugin](https://github.com/litehelpers/Cordova-sqlite-storage/) (v0.8.x & v1.2.x). + +*UPGRADE WARNING*: The default storage location for SQLite has changed in newer versions of [Cordova SQLite storage plugin](https://github.com/litehelpers/Cordova-sqlite-storage/). The new "`default`" location value is NOT the same as the old "`default`" location and will break an upgrade for an app that was using the old default value (0) on iOS. If you are upgrading to a newer version of `localForage-cordovaSQLiteDriver` you need to verify where your previous storage location was and update the `location` property of the localForage database. Otherwise the default is `'default'`. This is to avoid breaking the iCloud Design Guide. See [here](https://github.com/litehelpers/Cordova-sqlite-storage#important-icloud-backup-of-sqlite-database-is-not-allowed) for further details. + +### v1.1 +Try using the `getSerializer()` (available in localforage v1.3) as the prefered way to retrieve the serializer. + +## Setup Your Project + +* Include localforage and localForage-cordovaSQLiteDriver in your main html page, after the cordova include. +* Call `defineDriver` and `setDriver` to make localForage use the cordovaSQLiteDriver. + +```html +<script src="cordova.js"></script> + +<script src="lib/localforage/dist/localforage.js"></script> +<script src="lib/localForage-cordovaSQLiteDriver/src/localforage-cordovasqlitedriver.js"></script> +<script> +localforage.defineDriver(window.cordovaSQLiteDriver).then(function() { + return localforage.setDriver([ + // Try setting cordovaSQLiteDriver if available, + window.cordovaSQLiteDriver._driver, + // otherwise use one of the default localforage drivers as a fallback. + // This should allow you to transparently do your tests in a browser + localforage.INDEXEDDB, + localforage.WEBSQL, + localforage.LOCALSTORAGE + ]); +}).then(function() { + // this should alert "cordovaSQLiteDriver" when in an emulator or a device + alert(localforage.driver()); + // set a value; + return localforage.setItem('testPromiseKey', 'testPromiseValue'); +}).then(function() { + return localforage.getItem('testPromiseKey'); +}).then(function(value) { + alert(value); +}).catch(function(err) { + alert(err); +}); +</script> +``` +[Exaple Ionic project](https://github.com/thgreasi/localForage-cordovaSQLiteDriver-TestIonicApp) diff --git a/www/lib/localforage-cordovasqlitedriver/bower.json b/www/lib/localforage-cordovasqlitedriver/bower.json new file mode 100644 index 00000000..2c3510de --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/bower.json @@ -0,0 +1,23 @@ +{ + "name": "localforage-cordovasqlitedriver", + "version": "1.4.1", + "main": [ + "src/localforage-cordovasqlitedriver.js" + ], + "ignore": [ + ".travis.yml", + "CONTRIBUTING.md", + "config.rb", + "Gemfile", + "Gemfile.lock", + "Rakefile", + "LICENSE", + "docs*", + "examples*", + "test*", + "site*" + ], + "dependencies": { + "localforage": "^1.4.0" + } +} diff --git a/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.es6.js b/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.es6.js new file mode 100644 index 00000000..8dbc92b0 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.es6.js @@ -0,0 +1,142 @@ +function getSerializerPromise(localForageInstance) { + if (getSerializerPromise.result) { + return getSerializerPromise.result; + } + if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') { + Promise.reject(new Error('localforage.getSerializer() was not available! ' + 'localforage v1.4+ is required!')); + } + getSerializerPromise.result = localForageInstance.getSerializer(); + return getSerializerPromise.result; +} + +function getDriverPromise(localForageInstance, driverName) { + getDriverPromise.result = getDriverPromise.result || {}; + if (getDriverPromise.result[driverName]) { + return getDriverPromise.result[driverName]; + } + if (!localForageInstance || typeof localForageInstance.getDriver !== 'function') { + Promise.reject(new Error('localforage.getDriver() was not available! ' + 'localforage v1.4+ is required!')); + } + getDriverPromise.result[driverName] = localForageInstance.getDriver(driverName); + return getDriverPromise.result[driverName]; +} + +function getWebSqlDriverPromise(localForageInstance) { + return getDriverPromise(localForageInstance, localForageInstance.WEBSQL); +} + +/* global document, sqlitePlugin */ +// we can't import this, since it gets defined later +// import sqlitePlugin from 'sqlitePlugin'; + +var deviceReady = new Promise(function (resolve, reject) { + if (typeof sqlitePlugin !== 'undefined') { + resolve(); + } else if (typeof cordova === 'undefined') { + reject(); + } else { + // Wait for Cordova to load + document.addEventListener("deviceready", resolve, false); + } +}); + +var openDatabasePromise = deviceReady.catch(Promise.resolve).then(function () { + return new Promise(function (resolve, reject) { + if (typeof sqlitePlugin !== 'undefined' && typeof sqlitePlugin.openDatabase === 'function') { + resolve(sqlitePlugin.openDatabase); + } else { + reject('SQLite plugin is not present.'); + } + }); +}); + +// // If cordova is not present, we can stop now. +// if (!globalObject.cordova) { +// return; +// } + +// Open the cordova sqlite plugin database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; + } + } + + var dbInfoPromise = openDatabasePromise.then(function (openDatabase) { + return new Promise(function (resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.location = dbInfo.location || 'default'; + dbInfo.db = openDatabase({ + name: dbInfo.name, + version: String(dbInfo.version), + description: dbInfo.description, + size: dbInfo.size, + location: dbInfo.location + }); + } catch (e) { + reject(e); + } + + // Create our key/value table if it doesn't exist. + dbInfo.db.transaction(function (t) { + t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () { + self._dbInfo = dbInfo; + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }); + }); + + var serializerPromise = getSerializerPromise(self); + var webSqlDriverPromise = getWebSqlDriverPromise(self); + + return Promise.all([serializerPromise, webSqlDriverPromise, dbInfoPromise]).then(function (results) { + dbInfo.serializer = results[0]; + return dbInfoPromise; + }); +} + +var cordovaSQLiteDriver = { + _driver: 'cordovaSQLiteDriver', + _initStorage: _initStorage, + _support: function _support() { + return openDatabasePromise.then(function (openDatabase) { + return !!openDatabase; + }).catch(function () { + return false; + }); + } +}; + +function wireUpDriverMethods(driver) { + var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem']; + + function wireUpDriverMethod(driver, methodName) { + driver[methodName] = function () { + var localForageInstance = this; + var args = arguments; + return getWebSqlDriverPromise(localForageInstance).then(function (webSqlDriver) { + return webSqlDriver[methodName].apply(localForageInstance, args); + }); + }; + } + + for (var i = 0, len = LibraryMethods.length; i < len; i++) { + wireUpDriverMethod(driver, LibraryMethods[i]); + } +} + +wireUpDriverMethods(cordovaSQLiteDriver); + +export default cordovaSQLiteDriver;
\ No newline at end of file diff --git a/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.js b/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.js new file mode 100644 index 00000000..f6b925e6 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/dist/localforage-cordovasqlitedriver.js @@ -0,0 +1,150 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.cordovaSQLiteDriver = factory()); +}(this, function () { 'use strict'; + + function getSerializerPromise(localForageInstance) { + if (getSerializerPromise.result) { + return getSerializerPromise.result; + } + if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') { + Promise.reject(new Error('localforage.getSerializer() was not available! ' + 'localforage v1.4+ is required!')); + } + getSerializerPromise.result = localForageInstance.getSerializer(); + return getSerializerPromise.result; + } + + function getDriverPromise(localForageInstance, driverName) { + getDriverPromise.result = getDriverPromise.result || {}; + if (getDriverPromise.result[driverName]) { + return getDriverPromise.result[driverName]; + } + if (!localForageInstance || typeof localForageInstance.getDriver !== 'function') { + Promise.reject(new Error('localforage.getDriver() was not available! ' + 'localforage v1.4+ is required!')); + } + getDriverPromise.result[driverName] = localForageInstance.getDriver(driverName); + return getDriverPromise.result[driverName]; + } + + function getWebSqlDriverPromise(localForageInstance) { + return getDriverPromise(localForageInstance, localForageInstance.WEBSQL); + } + + /* global document, sqlitePlugin */ + // we can't import this, since it gets defined later + // import sqlitePlugin from 'sqlitePlugin'; + + var deviceReady = new Promise(function (resolve, reject) { + if (typeof sqlitePlugin !== 'undefined') { + resolve(); + } else if (typeof cordova === 'undefined') { + reject(); + } else { + // Wait for Cordova to load + document.addEventListener("deviceready", resolve, false); + } + }); + + var openDatabasePromise = deviceReady.catch(Promise.resolve).then(function () { + return new Promise(function (resolve, reject) { + if (typeof sqlitePlugin !== 'undefined' && typeof sqlitePlugin.openDatabase === 'function') { + resolve(sqlitePlugin.openDatabase); + } else { + reject('SQLite plugin is not present.'); + } + }); + }); + + // // If cordova is not present, we can stop now. + // if (!globalObject.cordova) { + // return; + // } + + // Open the cordova sqlite plugin database (automatically creates one if one didn't + // previously exist), using any options set in the config. + function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; + } + } + + var dbInfoPromise = openDatabasePromise.then(function (openDatabase) { + return new Promise(function (resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.location = dbInfo.location || 'default'; + dbInfo.db = openDatabase({ + name: dbInfo.name, + version: String(dbInfo.version), + description: dbInfo.description, + size: dbInfo.size, + location: dbInfo.location + }); + } catch (e) { + reject(e); + } + + // Create our key/value table if it doesn't exist. + dbInfo.db.transaction(function (t) { + t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () { + self._dbInfo = dbInfo; + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }); + }); + + var serializerPromise = getSerializerPromise(self); + var webSqlDriverPromise = getWebSqlDriverPromise(self); + + return Promise.all([serializerPromise, webSqlDriverPromise, dbInfoPromise]).then(function (results) { + dbInfo.serializer = results[0]; + return dbInfoPromise; + }); + } + + var cordovaSQLiteDriver = { + _driver: 'cordovaSQLiteDriver', + _initStorage: _initStorage, + _support: function _support() { + return openDatabasePromise.then(function (openDatabase) { + return !!openDatabase; + }).catch(function () { + return false; + }); + } + }; + + function wireUpDriverMethods(driver) { + var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem']; + + function wireUpDriverMethod(driver, methodName) { + driver[methodName] = function () { + var localForageInstance = this; + var args = arguments; + return getWebSqlDriverPromise(localForageInstance).then(function (webSqlDriver) { + return webSqlDriver[methodName].apply(localForageInstance, args); + }); + }; + } + + for (var i = 0, len = LibraryMethods.length; i < len; i++) { + wireUpDriverMethod(driver, LibraryMethods[i]); + } + } + + wireUpDriverMethods(cordovaSQLiteDriver); + + return cordovaSQLiteDriver; + +}));
\ No newline at end of file diff --git a/www/lib/localforage-cordovasqlitedriver/lib/cordova-sqlite.js b/www/lib/localforage-cordovasqlitedriver/lib/cordova-sqlite.js new file mode 100644 index 00000000..9a755349 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/lib/cordova-sqlite.js @@ -0,0 +1,25 @@ +/* global document, sqlitePlugin */ +// we can't import this, since it gets defined later +// import sqlitePlugin from 'sqlitePlugin'; + +var deviceReady = new Promise(function(resolve, reject) { + if (typeof sqlitePlugin !== 'undefined') { + resolve(); + } else if (typeof cordova === 'undefined') { + reject(); + } else { + // Wait for Cordova to load + document.addEventListener("deviceready", resolve, false); + } +}); + +export var openDatabasePromise = deviceReady.catch(Promise.resolve).then(function() { + return new Promise(function(resolve, reject) { + if (typeof sqlitePlugin !== 'undefined' && + typeof sqlitePlugin.openDatabase === 'function') { + resolve(sqlitePlugin.openDatabase); + } else { + reject('SQLite plugin is not present.'); + } + }); +}); diff --git a/www/lib/localforage-cordovasqlitedriver/lib/localforage-cordovasqlitedriver.js b/www/lib/localforage-cordovasqlitedriver/lib/localforage-cordovasqlitedriver.js new file mode 100644 index 00000000..ffbf7a79 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/lib/localforage-cordovasqlitedriver.js @@ -0,0 +1,120 @@ +/* + * Includes code from: + * + * localForage - websql driver + * https://github.com/mozilla/localforage + * + * Copyright (c) 2015 Mozilla + * Licensed under Apache 2.0 license. + * + */ +// import localforage from 'localforage'; +import { getSerializerPromise, getWebSqlDriverPromise } from './utils'; +import { openDatabasePromise } from './cordova-sqlite'; + +// // If cordova is not present, we can stop now. +// if (!globalObject.cordova) { +// return; +// } + +// Open the cordova sqlite plugin database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + + if (options) { + for (var i in options) { + dbInfo[i] = typeof(options[i]) !== 'string' ? + options[i].toString() : options[i]; + } + } + + var dbInfoPromise = openDatabasePromise.then(function(openDatabase){ + return new Promise(function(resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.location = dbInfo.location || 'default'; + dbInfo.db = openDatabase({ + name: dbInfo.name, + version: String(dbInfo.version), + description: dbInfo.description, + size: dbInfo.size, + location: dbInfo.location + }); + } catch (e) { + reject(e); + } + + // Create our key/value table if it doesn't exist. + dbInfo.db.transaction(function(t) { + t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + + ' (id INTEGER PRIMARY KEY, key unique, value)', [], + function() { + self._dbInfo = dbInfo; + resolve(); + }, function(t, error) { + reject(error); + }); + }); + }); + }); + + var serializerPromise = getSerializerPromise(self); + var webSqlDriverPromise = getWebSqlDriverPromise(self); + + return Promise.all([ + serializerPromise, + webSqlDriverPromise, + dbInfoPromise + ]).then(function(results) { + dbInfo.serializer = results[0]; + return dbInfoPromise; + }); +} + +var cordovaSQLiteDriver = { + _driver: 'cordovaSQLiteDriver', + _initStorage: _initStorage, + _support: function() { + return openDatabasePromise.then(function(openDatabase) { + return !!openDatabase; + }).catch(function(){ + return false; + }); + } +}; + +function wireUpDriverMethods(driver) { + var LibraryMethods = [ + 'clear', + 'getItem', + 'iterate', + 'key', + 'keys', + 'length', + 'removeItem', + 'setItem' + ]; + + function wireUpDriverMethod(driver, methodName) { + driver[methodName] = function () { + var localForageInstance = this; + var args = arguments; + return getWebSqlDriverPromise(localForageInstance).then(function (webSqlDriver) { + return webSqlDriver[methodName].apply(localForageInstance, args); + }); + }; + } + + for (var i = 0, len = LibraryMethods.length; i < len; i++) { + wireUpDriverMethod(driver, LibraryMethods[i]); + } +} + +wireUpDriverMethods(cordovaSQLiteDriver); + +export default cordovaSQLiteDriver; diff --git a/www/lib/localforage-cordovasqlitedriver/lib/utils.js b/www/lib/localforage-cordovasqlitedriver/lib/utils.js new file mode 100644 index 00000000..e83b61d9 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/lib/utils.js @@ -0,0 +1,40 @@ +export function getSerializerPromise(localForageInstance) { + if (getSerializerPromise.result) { + return getSerializerPromise.result; + } + if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') { + Promise.reject(new Error( + 'localforage.getSerializer() was not available! ' + + 'localforage v1.4+ is required!')); + } + getSerializerPromise.result = localForageInstance.getSerializer(); + return getSerializerPromise.result; +} + +export function getDriverPromise(localForageInstance, driverName) { + getDriverPromise.result = getDriverPromise.result || {}; + if (getDriverPromise.result[driverName]) { + return getDriverPromise.result[driverName]; + } + if (!localForageInstance || typeof localForageInstance.getDriver !== 'function') { + Promise.reject(new Error( + 'localforage.getDriver() was not available! ' + + 'localforage v1.4+ is required!')); + } + getDriverPromise.result[driverName] = localForageInstance.getDriver(driverName); + return getDriverPromise.result[driverName]; +} + +export function getWebSqlDriverPromise(localForageInstance) { + return getDriverPromise(localForageInstance, localForageInstance.WEBSQL); +} + +export function executeCallback(promise, callback) { + if (callback) { + promise.then(function(result) { + callback(null, result); + }, function(error) { + callback(error); + }); + } +} diff --git a/www/lib/localforage-cordovasqlitedriver/package.json b/www/lib/localforage-cordovasqlitedriver/package.json new file mode 100644 index 00000000..cb09c3c7 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/package.json @@ -0,0 +1,44 @@ +{ + "name": "localforage-cordovasqlitedriver", + "version": "1.4.1", + "description": "SQLite driver for Cordova apps using localForage.", + "homepage": "https://github.com/thgreasi/localForage-cordovaSQLiteDriver", + "main": "dist/localforage-cordovasqlitedriver.js", + "jsnext:main": "dist/localforage-cordovasqlitedriver.es6.js", + "scripts": { + "prebuild": "eslint lib test", + "build": "rollup -c rollup.config.umd.js && rollup -c rollup.config.es6.js", + "pretest": "rollup -c rollup.config.test.js", + "test": "mocha build/test-bundle.js", + "prepublish": "npm run build && npm test" + }, + "repository": { + "type": "git", + "url": "git://github.com/thgreasi/localForage-cordovaSQLiteDriver.git" + }, + "keywords": [ + "localforage", + "SQLite", + "driver", + "cordova" + ], + "author": "Thodoris Greasidis", + "licence": "Apache-2.0", + "bugs": { + "url": "http://github.com/thgreasi/localForage-cordovaSQLiteDriver/issues" + }, + "devDependencies": { + "babel-eslint": "^6.0.4", + "babel-preset-es2015-rollup": "^1.1.1", + "eslint": "^2.8.0", + "mocha": "^2.4.5", + "requirejs": "^2.2.0", + "rollup": "^0.26.1", + "rollup-plugin-babel": "^2.4.0", + "rollup-plugin-multi-entry": "^1.2.0", + "source-map-support": "^0.4.0" + }, + "dependencies": { + "localforage": ">=1.4.0" + } +} diff --git a/www/lib/localforage-cordovasqlitedriver/rollup.config.es6.js b/www/lib/localforage-cordovasqlitedriver/rollup.config.es6.js new file mode 100644 index 00000000..ef894ed6 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/rollup.config.es6.js @@ -0,0 +1,6 @@ +import config from './rollup.config'; + +config.format = 'es6'; +config.dest = 'dist/localforage-cordovasqlitedriver.es6.js'; + +export default config; diff --git a/www/lib/localforage-cordovasqlitedriver/rollup.config.js b/www/lib/localforage-cordovasqlitedriver/rollup.config.js new file mode 100644 index 00000000..b189698c --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/rollup.config.js @@ -0,0 +1,7 @@ +import babel from 'rollup-plugin-babel'; + +export default { + entry: 'lib/localforage-cordovasqlitedriver.js', + // sourceMap: true, + plugins: [babel()] +}; diff --git a/www/lib/localforage-cordovasqlitedriver/rollup.config.test.js b/www/lib/localforage-cordovasqlitedriver/rollup.config.test.js new file mode 100644 index 00000000..ec95bc65 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/rollup.config.test.js @@ -0,0 +1,11 @@ +import babel from 'rollup-plugin-babel'; +import multiEntry from 'rollup-plugin-multi-entry'; + +export default { + entry: 'test/**/*_test.js', + plugins: [babel(), multiEntry()], + format: 'cjs', + intro: 'require("source-map-support").install();', + dest: 'build/test-bundle.js', + sourceMap: true +}; diff --git a/www/lib/localforage-cordovasqlitedriver/rollup.config.umd.js b/www/lib/localforage-cordovasqlitedriver/rollup.config.umd.js new file mode 100644 index 00000000..75f776a8 --- /dev/null +++ b/www/lib/localforage-cordovasqlitedriver/rollup.config.umd.js @@ -0,0 +1,7 @@ +import config from './rollup.config'; + +config.format = 'umd'; +config.dest = 'dist/localforage-cordovasqlitedriver.js'; +config.moduleName = 'cordovaSQLiteDriver'; + +export default config; |
