diff --git a/sqlite.js b/sqlite.js index 9d673ad6..cee32e16 100644 --- a/sqlite.js +++ b/sqlite.js @@ -8,70 +8,83 @@ * See http://opensource.org/licenses/alphabetical for full text. */ -import plugin, {SQLiteFactory} from './lib/sqlite.core.js'; - +import plugin, { SQLiteFactory } from "./lib/sqlite.core.js"; var config = [ - [false,"SQLitePlugin","transaction",false,true], - [false,"SQLitePlugin","readTransaction",false,true], - [false,"SQLitePlugin","close",false,false], - [false,"SQLitePlugin","executeSql",true,false], - [false,"SQLitePluginTransaction","executeSql",true,false], - [false,"SQLiteFactory","deleteDatabase",false,false], - [true,"SQLiteFactory","openDatabase",false,false] + [false, "SQLitePlugin", "transaction", false, true], + [false, "SQLitePlugin", "readTransaction", false, true], + [false, "SQLitePlugin", "close", false, false], + [false, "SQLitePlugin", "executeSql", true, false], + [false, "SQLitePluginTransaction", "executeSql", true, false], + [false, "SQLiteFactory", "deleteDatabase", false, false], + [true, "SQLiteFactory", "openDatabase", false, false] ]; var originalFns = {}; config.forEach(entry => { - let [returnValueExpected,prototype,fn]= entry; + let [returnValueExpected, prototype, fn] = entry; let originalFn = plugin[prototype].prototype[fn]; originalFns[prototype + "." + fn] = originalFn; }); -function enablePromiseRuntime(enable){ - if (enable){ +function enablePromiseRuntime(enable) { + if (enable) { createPromiseRuntime(); } else { createCallbackRuntime(); } -}; +} function createCallbackRuntime() { config.forEach(entry => { - let [returnValueExpected,prototype,fn,argsNeedPadding,reverseCallbacks]= entry; + let [ + returnValueExpected, + prototype, + fn, + argsNeedPadding, + reverseCallbacks + ] = entry; plugin[prototype].prototype[fn] = originalFns[prototype + "." + fn]; }); - console.log("Callback based runtime ready"); -}; +} function createPromiseRuntime() { config.forEach(entry => { - let [returnValueExpected,prototype,fn,argsNeedPadding,reverseCallbacks]= entry; - let originalFn = plugin[prototype].prototype[fn] - plugin[prototype].prototype[fn] = function(...args){ - if (argsNeedPadding && args.length == 1){ + let [ + returnValueExpected, + prototype, + fn, + argsNeedPadding, + reverseCallbacks + ] = entry; + let originalFn = plugin[prototype].prototype[fn]; + plugin[prototype].prototype[fn] = function(...args) { + if (argsNeedPadding && args.length == 1) { args.push([]); } let retValue; - var promise = new Promise(function(resolve,reject){ - let success = function(...args){ - return returnValueExpected ? resolve(retValue) : resolve(args); - }; - let error = function(err){ - console.log('error: ',fn,...args,arguments); - reject(err); - return false; - }; - retValue = originalFn.call(this,...args,reverseCallbacks ? error : success, reverseCallbacks ? success : error); - - }.bind(this)); - + var promise = new Promise( + function(resolve, reject) { + let success = function(...args) { + return returnValueExpected ? resolve(retValue) : resolve(args); + }; + let error = function(err) { + reject(err); + return false; + }; + retValue = originalFn.call( + this, + ...args, + reverseCallbacks ? error : success, + reverseCallbacks ? success : error + ); + }.bind(this) + ); return promise; - } + }; }); - console.log("Promise based runtime ready"); -}; +} SQLiteFactory.prototype.enablePromise = enablePromiseRuntime;