UNPKG

@synerty/orb-vortexjs

Version:

Custom observable data serialisation and routing based on Angular2

78 lines 2.5 kB
var NsSqlite = require("nativescript-sqlite"); var db = null; var schemaInstalled = false; function postError(call, callNumber, err) { var postArg = { call: call, callNumber: callNumber, result: null, error: err }; //console.log(`WebSQL Worker, Sending ${postArg}`); global.postMessage(postArg); } function postResult(call, callNumber, result) { var postArg = { call: call, callNumber: callNumber, result: result, error: null }; //console.log(`WebSQL Worker, Sending ${postArg}`); global.postMessage(postArg); } var CALL_DB_OPEN = 1; // const CALL_DB_CLOSE = 2; var CALL_DB_EXECUTE = 3; global.onmessage = function (postedArg) { var params = postedArg["data"]; //console.log(`WebSQL Worker, Received : ${JSON.stringify(params)}`); var call = params["call"]; var callNumber = params["callNumber"]; try { switch (call) { case CALL_DB_OPEN: openDb(params["dbName"], params["dbSchema"], params["dbVersion"]); break; case CALL_DB_EXECUTE: executeSql(callNumber, params["sql"], params["bindParams"]); break; } } catch (e) { postError(call, null, e.toString()); } }; global.onerror = postError; function openDb(dbName, dbSchema, dbVersion) { new NsSqlite(dbName) .then(function (dbArg) { db = dbArg; if (!NsSqlite.isSqlite(db)) { postError(CALL_DB_OPEN, null, "The thing we opened isn't a DB"); return; } db.resultType(NsSqlite.RESULTSASOBJECT); db.version(dbVersion); // MATCHES Browser Adaptor if (schemaInstalled) { postResult(CALL_DB_OPEN, null, null); return; } db.all(dbSchema) .catch(function (err) { postError(CALL_DB_OPEN, null, err); }) .then(function () { postResult(CALL_DB_OPEN, null, null); }); }) .catch(function (err) { postError(CALL_DB_OPEN, null, err); }); } function executeSql(callNumber, sql, bindParams) { db.all(sql, bindParams) .then(function (result) { return postResult(CALL_DB_EXECUTE, callNumber, result); }) .catch(function (err) { return postError(CALL_DB_EXECUTE, callNumber, err); }); } //# sourceMappingURL=/Users/jchesney/skyorb-dev/orb-vortexjs/src/websql/WebSqlNativeScriptThreadedAdaptorWorker.js.map