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+ } ) ) ) ;
0 commit comments