Skip to content

Commit bb19f88

Browse files
authored
Merge pull request #19 from thgreasi/lf1.5
chore: use localforage v1.5 & drop @types
2 parents 3a00354 + af277d2 commit bb19f88

File tree

8 files changed

+165
-137
lines changed

8 files changed

+165
-137
lines changed

.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"presets": [ "es2015-rollup" ]
2+
"presets": [ "es2015" ]
33
}

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ SQLite driver for [Cordova](https://cordova.apache.org/) apps using [localForage
66

77
* [Cordova](https://cordova.apache.org/)/[ionic](http://ionicframework.com/)
88
* [Cordova SQLite storage plugin](https://github.com/litehelpers/Cordova-sqlite-storage/) or [Cordova SQLite Plugin 2](https://github.com/nolanlawson/cordova-plugin-sqlite-2)
9-
* [localForage](https://github.com/mozilla/localForage) v1.4.0+
10-
* for earlier versions of localforage, please use the v1.2.x releases
9+
* [localForage](https://github.com/mozilla/localForage) v1.5.0+
10+
* for localforage 1.4.x, please use the v1.5.0 release of this package
11+
* for even older versions of localforage, please use the v1.2.x releases
12+
1113

1214
## Install Dependencies
1315

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "localforage-cordovasqlitedriver",
3-
"version": "1.5.0",
3+
"version": "1.6.0",
44
"main": [
55
"dist/localforage-cordovasqlitedriver.js"
66
],
@@ -18,6 +18,6 @@
1818
"site*"
1919
],
2020
"dependencies": {
21-
"localforage": "^1.4.0"
21+
"localforage": "^1.5.0"
2222
}
2323
}

dist/localforage-cordovasqlitedriver.es6.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ function getOpenDatabasePromise() {
5656
});
5757
}
5858

59+
/*
60+
* Includes code from:
61+
*
62+
* localForage - websql driver
63+
* https://github.com/mozilla/localforage
64+
*
65+
* Copyright (c) 2015 Mozilla
66+
* Licensed under Apache 2.0 license.
67+
*
68+
*/
69+
// import localforage from 'localforage';
5970
// // If cordova is not present, we can stop now.
6071
// if (!globalObject.cordova) {
6172
// return;
@@ -145,4 +156,4 @@ function wireUpDriverMethods(driver) {
145156

146157
wireUpDriverMethods(cordovaSQLiteDriver);
147158

148-
export default cordovaSQLiteDriver;
159+
export default cordovaSQLiteDriver;

dist/localforage-cordovasqlitedriver.js

Lines changed: 132 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -2,155 +2,166 @@
22
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
33
typeof define === 'function' && define.amd ? define(factory) :
44
(global.cordovaSQLiteDriver = factory());
5-
}(this, function () { 'use strict';
5+
}(this, (function () { 'use strict';
66

7-
function getSerializerPromise(localForageInstance) {
8-
if (getSerializerPromise.result) {
9-
return getSerializerPromise.result;
10-
}
11-
if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') {
12-
return Promise.reject(new Error('localforage.getSerializer() was not available! ' + 'localforage v1.4+ is required!'));
13-
}
14-
getSerializerPromise.result = localForageInstance.getSerializer();
7+
function getSerializerPromise(localForageInstance) {
8+
if (getSerializerPromise.result) {
159
return getSerializerPromise.result;
1610
}
11+
if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') {
12+
return Promise.reject(new Error('localforage.getSerializer() was not available! ' + 'localforage v1.4+ is required!'));
13+
}
14+
getSerializerPromise.result = localForageInstance.getSerializer();
15+
return getSerializerPromise.result;
16+
}
1717

18-
function getDriverPromise(localForageInstance, driverName) {
19-
getDriverPromise.result = getDriverPromise.result || {};
20-
if (getDriverPromise.result[driverName]) {
21-
return getDriverPromise.result[driverName];
22-
}
23-
if (!localForageInstance || typeof localForageInstance.getDriver !== 'function') {
24-
return Promise.reject(new Error('localforage.getDriver() was not available! ' + 'localforage v1.4+ is required!'));
25-
}
26-
getDriverPromise.result[driverName] = localForageInstance.getDriver(driverName);
18+
function getDriverPromise(localForageInstance, driverName) {
19+
getDriverPromise.result = getDriverPromise.result || {};
20+
if (getDriverPromise.result[driverName]) {
2721
return getDriverPromise.result[driverName];
2822
}
29-
30-
function getWebSqlDriverPromise(localForageInstance) {
31-
return getDriverPromise(localForageInstance, localForageInstance.WEBSQL);
23+
if (!localForageInstance || typeof localForageInstance.getDriver !== 'function') {
24+
return Promise.reject(new Error('localforage.getDriver() was not available! ' + 'localforage v1.4+ is required!'));
3225
}
26+
getDriverPromise.result[driverName] = localForageInstance.getDriver(driverName);
27+
return getDriverPromise.result[driverName];
28+
}
29+
30+
function getWebSqlDriverPromise(localForageInstance) {
31+
return getDriverPromise(localForageInstance, localForageInstance.WEBSQL);
32+
}
33+
34+
/* global document, sqlitePlugin */
35+
// we can't import this, since it gets defined later
36+
// import sqlitePlugin from 'sqlitePlugin';
37+
38+
var deviceReady = new Promise(function (resolve, reject) {
39+
if (typeof sqlitePlugin !== 'undefined') {
40+
resolve();
41+
} else if (typeof cordova === 'undefined') {
42+
reject(new Error('cordova is not defined.'));
43+
} else {
44+
// Wait for Cordova to load
45+
document.addEventListener("deviceready", function () {
46+
return resolve();
47+
}, false);
48+
}
49+
});
3350

34-
/* global document, sqlitePlugin */
35-
// we can't import this, since it gets defined later
36-
// import sqlitePlugin from 'sqlitePlugin';
51+
var deviceReadyDone = deviceReady.catch(function () {
52+
return Promise.resolve();
53+
});
3754

38-
var deviceReady = new Promise(function (resolve, reject) {
39-
if (typeof sqlitePlugin !== 'undefined') {
40-
resolve();
41-
} else if (typeof cordova === 'undefined') {
42-
reject(new Error('cordova is not defined.'));
55+
function getOpenDatabasePromise() {
56+
return deviceReadyDone.then(function () {
57+
if (typeof sqlitePlugin !== 'undefined' && typeof sqlitePlugin.openDatabase === 'function') {
58+
return sqlitePlugin.openDatabase;
4359
} else {
44-
// Wait for Cordova to load
45-
document.addEventListener("deviceready", function () {
46-
return resolve();
47-
}, false);
60+
throw new Error('SQLite plugin is not present.');
4861
}
4962
});
63+
}
64+
65+
/*
66+
* Includes code from:
67+
*
68+
* localForage - websql driver
69+
* https://github.com/mozilla/localforage
70+
*
71+
* Copyright (c) 2015 Mozilla
72+
* Licensed under Apache 2.0 license.
73+
*
74+
*/
75+
// import localforage from 'localforage';
76+
// // If cordova is not present, we can stop now.
77+
// if (!globalObject.cordova) {
78+
// return;
79+
// }
80+
81+
// Open the cordova sqlite plugin database (automatically creates one if one didn't
82+
// previously exist), using any options set in the config.
83+
function _initStorage(options) {
84+
var self = this;
85+
var dbInfo = {
86+
db: null
87+
};
5088

51-
var deviceReadyDone = deviceReady.catch(function () {
52-
return Promise.resolve();
53-
});
54-
55-
function getOpenDatabasePromise() {
56-
return deviceReadyDone.then(function () {
57-
if (typeof sqlitePlugin !== 'undefined' && typeof sqlitePlugin.openDatabase === 'function') {
58-
return sqlitePlugin.openDatabase;
59-
} else {
60-
throw new Error('SQLite plugin is not present.');
61-
}
62-
});
89+
if (options) {
90+
for (var i in options) {
91+
dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];
92+
}
6393
}
6494

65-
// // If cordova is not present, we can stop now.
66-
// if (!globalObject.cordova) {
67-
// return;
68-
// }
69-
70-
// Open the cordova sqlite plugin database (automatically creates one if one didn't
71-
// previously exist), using any options set in the config.
72-
function _initStorage(options) {
73-
var self = this;
74-
var dbInfo = {
75-
db: null
76-
};
77-
78-
if (options) {
79-
for (var i in options) {
80-
dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];
95+
var dbInfoPromise = getOpenDatabasePromise().then(function (openDatabase) {
96+
return new Promise(function (resolve, reject) {
97+
// Open the database; the openDatabase API will automatically
98+
// create it for us if it doesn't exist.
99+
try {
100+
dbInfo.location = dbInfo.location || 'default';
101+
dbInfo.db = openDatabase({
102+
name: dbInfo.name,
103+
version: String(dbInfo.version),
104+
description: dbInfo.description,
105+
size: dbInfo.size,
106+
location: dbInfo.location
107+
});
108+
} catch (e) {
109+
reject(e);
81110
}
82-
}
83111

84-
var dbInfoPromise = getOpenDatabasePromise().then(function (openDatabase) {
85-
return new Promise(function (resolve, reject) {
86-
// Open the database; the openDatabase API will automatically
87-
// create it for us if it doesn't exist.
88-
try {
89-
dbInfo.location = dbInfo.location || 'default';
90-
dbInfo.db = openDatabase({
91-
name: dbInfo.name,
92-
version: String(dbInfo.version),
93-
description: dbInfo.description,
94-
size: dbInfo.size,
95-
location: dbInfo.location
96-
});
97-
} catch (e) {
98-
reject(e);
99-
}
100-
101-
// Create our key/value table if it doesn't exist.
102-
dbInfo.db.transaction(function (t) {
103-
t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () {
104-
self._dbInfo = dbInfo;
105-
resolve();
106-
}, function (t, error) {
107-
reject(error);
108-
});
112+
// Create our key/value table if it doesn't exist.
113+
dbInfo.db.transaction(function (t) {
114+
t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' (id INTEGER PRIMARY KEY, key unique, value)', [], function () {
115+
self._dbInfo = dbInfo;
116+
resolve();
117+
}, function (t, error) {
118+
reject(error);
109119
});
110120
});
111121
});
122+
});
112123

113-
var serializerPromise = getSerializerPromise(self);
114-
var webSqlDriverPromise = getWebSqlDriverPromise(self);
124+
var serializerPromise = getSerializerPromise(self);
125+
var webSqlDriverPromise = getWebSqlDriverPromise(self);
115126

116-
return Promise.all([serializerPromise, webSqlDriverPromise, dbInfoPromise]).then(function (results) {
117-
dbInfo.serializer = results[0];
118-
return dbInfoPromise;
127+
return Promise.all([serializerPromise, webSqlDriverPromise, dbInfoPromise]).then(function (results) {
128+
dbInfo.serializer = results[0];
129+
return dbInfoPromise;
130+
});
131+
}
132+
133+
var cordovaSQLiteDriver = {
134+
_driver: 'cordovaSQLiteDriver',
135+
_initStorage: _initStorage,
136+
_support: function _support() {
137+
return getOpenDatabasePromise().then(function (openDatabase) {
138+
return !!openDatabase;
139+
}).catch(function () {
140+
return false;
119141
});
120142
}
143+
};
121144

122-
var cordovaSQLiteDriver = {
123-
_driver: 'cordovaSQLiteDriver',
124-
_initStorage: _initStorage,
125-
_support: function _support() {
126-
return getOpenDatabasePromise().then(function (openDatabase) {
127-
return !!openDatabase;
128-
}).catch(function () {
129-
return false;
130-
});
131-
}
132-
};
133-
134-
function wireUpDriverMethods(driver) {
135-
var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'];
145+
function wireUpDriverMethods(driver) {
146+
var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'];
136147

137-
function wireUpDriverMethod(driver, methodName) {
138-
driver[methodName] = function () {
139-
var localForageInstance = this;
140-
var args = arguments;
141-
return getWebSqlDriverPromise(localForageInstance).then(function (webSqlDriver) {
142-
return webSqlDriver[methodName].apply(localForageInstance, args);
143-
});
144-
};
145-
}
148+
function wireUpDriverMethod(driver, methodName) {
149+
driver[methodName] = function () {
150+
var localForageInstance = this;
151+
var args = arguments;
152+
return getWebSqlDriverPromise(localForageInstance).then(function (webSqlDriver) {
153+
return webSqlDriver[methodName].apply(localForageInstance, args);
154+
});
155+
};
156+
}
146157

147-
for (var i = 0, len = LibraryMethods.length; i < len; i++) {
148-
wireUpDriverMethod(driver, LibraryMethods[i]);
149-
}
158+
for (var i = 0, len = LibraryMethods.length; i < len; i++) {
159+
wireUpDriverMethod(driver, LibraryMethods[i]);
150160
}
161+
}
151162

152-
wireUpDriverMethods(cordovaSQLiteDriver);
163+
wireUpDriverMethods(cordovaSQLiteDriver);
153164

154-
return cordovaSQLiteDriver;
165+
return cordovaSQLiteDriver;
155166

156-
}));
167+
})));

package.json

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "localforage-cordovasqlitedriver",
3-
"version": "1.5.0",
3+
"version": "1.6.0",
44
"description": "SQLite driver for Cordova apps using localForage.",
55
"homepage": "https://github.com/thgreasi/localForage-cordovaSQLiteDriver",
66
"main": "dist/localforage-cordovasqlitedriver.js",
@@ -29,18 +29,20 @@
2929
"url": "http://github.com/thgreasi/localForage-cordovaSQLiteDriver/issues"
3030
},
3131
"devDependencies": {
32-
"babel-eslint": "^6.0.4",
33-
"babel-preset-es2015-rollup": "^1.1.1",
32+
"babel-eslint": "^7.1.1",
33+
"babel-plugin-external-helpers": "^6.18.0",
34+
"babel-preset-es2015": "^6.18.0",
35+
"babel-register": "^6.18.0",
36+
"babelrc-rollup": "^3.0.0",
3437
"eslint": "^2.8.0",
3538
"mocha": "^2.4.5",
3639
"requirejs": "^2.2.0",
37-
"rollup": "^0.26.1",
38-
"rollup-plugin-babel": "^2.4.0",
39-
"rollup-plugin-multi-entry": "^1.2.0",
40+
"rollup": "^0.37.0",
41+
"rollup-plugin-babel": "^2.7.1",
42+
"rollup-plugin-multi-entry": "^2.0.1",
4043
"source-map-support": "^0.4.0"
4144
},
4245
"dependencies": {
43-
"@types/localforage": "0.0.30",
44-
"localforage": ">=1.4.0"
46+
"localforage": ">=1.5.0"
4547
}
4648
}

rollup.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import babel from 'rollup-plugin-babel';
2+
import babelrc from 'babelrc-rollup';
23

34
export default {
45
entry: 'lib/localforage-cordovasqlitedriver.js',
56
// sourceMap: true,
6-
plugins: [babel()]
7+
plugins: [babel(babelrc())]
78
};

0 commit comments

Comments
 (0)