2
0
Fork 0

removed some code smells and made nodejs logger expleciet.

This commit is contained in:
Willem 2016-11-20 17:13:01 +01:00
parent d4f681e28c
commit 58142e9300
6 changed files with 118 additions and 68 deletions

View file

@ -31,8 +31,6 @@
* @module FFSpaLoader * @module FFSpaLoader
*/ */
(function (root, factory) { (function (root, factory) {
'use strict';
if ( typeof define === 'function' && define.amd ) { if ( typeof define === 'function' && define.amd ) {
define(factory(root)); define(factory(root));
} else if ( typeof exports === 'object' ) { } else if ( typeof exports === 'object' ) {
@ -40,9 +38,7 @@
} else { } else {
root.FFSpaLoader = factory(root); root.FFSpaLoader = factory(root);
} }
})(this || window, /** @lends module:FFSpaLoader */ function (rootWindow) { })(this || window, /** @lends module:FFSpaLoader */ function (rootWindow) {
'use strict';
/** /**
* The options to customize the loader. * The options to customize the loader.
@ -221,11 +217,21 @@
}; };
}, },
websql: function(opt) { websql: function(opt) {
if (opt === undefined) { opt = {}; } if (opt === undefined) {
if (opt.name === undefined) { opt.name = 'FFSpaLoader'; } opt = {};
if (opt.size === undefined) { opt.size = 4 * 1024 * 1024; } // reg 4MB let user do higher }
if (opt.version === undefined) { opt.version = '1.0'; } if (opt.name === undefined) {
if (opt.table === undefined) { opt.table = 'cache_store'; } opt.name = 'FFSpaLoader';
}
if (opt.size === undefined) {
opt.size = 4 * 1024 * 1024; // reg 4MB let user do higher
}
if (opt.version === undefined) {
opt.version = '1.0';
}
if (opt.table === undefined) {
opt.table = 'cache_store';
}
if (opt.open === undefined) { if (opt.open === undefined) {
opt.open = function(dbOpt) { opt.open = function(dbOpt) {
return rootWindow.openDatabase(dbOpt.name, dbOpt.version, dbOpt.name, dbOpt.size); return rootWindow.openDatabase(dbOpt.name, dbOpt.version, dbOpt.name, dbOpt.size);
@ -335,7 +341,9 @@
try { try {
var stack = err.stack || ''; var stack = err.stack || '';
stack = stack.split('\n').map(function (line) { return line.trim()+'\n'; }); stack = stack.split('\n').map(function (line) {
return line.trim()+'\n';
});
var stackText = stack.splice(stack[0] === 'Error' ? 2 : 1); var stackText = stack.splice(stack[0] === 'Error' ? 2 : 1);
err.stackText = stackText; err.stackText = stackText;
@ -1019,7 +1027,11 @@
if (options.cache[type] === null) { if (options.cache[type] === null) {
if (factory.detect.cordovaDevice() && factory.detect.sqlitePlugin()) { if (factory.detect.cordovaDevice() && factory.detect.sqlitePlugin()) {
utilDebug('startCacheType auto sqlitePlugin for '+type); utilDebug('startCacheType auto sqlitePlugin for '+type);
options.cache[type] = factory.cache.websql({open: function(dbOpt) { return sqlitePlugin.openDatabase(dbOpt.name, dbOpt.version, dbOpt.name, dbOpt.size);}}); options.cache[type] = factory.cache.websql({
open: function(dbOpt) {
return sqlitePlugin.openDatabase(dbOpt.name, dbOpt.version, dbOpt.name, dbOpt.size);
}
});
} else if (factory.detect.openDatabase()) { } else if (factory.detect.openDatabase()) {
utilDebug('startCacheType auto openDatabase for '+type); utilDebug('startCacheType auto openDatabase for '+type);
options.cache[type] = factory.cache.websql(); options.cache[type] = factory.cache.websql();
@ -1199,9 +1211,13 @@
} }
} }
bootCordova(function(err) { bootCordova(function(err) {
if (err !== null) { return cb(err); } if (err !== null) {
return cb(err);
}
startCache(function(err) { startCache(function(err) {
if (err !== null) { return cb(err); } if (err !== null) {
return cb(err);
}
if (options.server.url !== null) { if (options.server.url !== null) {
startLoader(cb); startLoader(cb);
return; return;
@ -1235,11 +1251,16 @@
} }
if (cacheHasService('meta')) { if (cacheHasService('meta')) {
cacheDeleteValue('meta','server_url',function(err) { cacheDeleteValue('meta','server_url',function(err) {
if (err !== null) { return cb(err); } if (err !== null) {
return cb(err);
}
cacheDeleteValue('meta','server_resources',function(err) { cacheDeleteValue('meta','server_resources',function(err) {
if (err !== null) { return cb(err); } if (err !== null) {
return cb(err);
setTimeout(function() {cb(null);}); // return next tick so (websql) transaction is flushed before location.reload }
setTimeout(function() {
cb(null); // return next tick so (websql) transaction is flushed before location.reload
});
}); });
}); });
} else { } else {
@ -1257,7 +1278,9 @@
cb2 = function() {}; cb2 = function() {};
} }
var cb = function(err) { var cb = function(err) {
setTimeout(function() {cb2(err);}); // next tick to flush transactions. setTimeout(function() {
cb2(err); // next tick to flush transactions.
});
}; };
if (cacheHasService('meta')) { if (cacheHasService('meta')) {
cacheGetValue('meta','server_resources',function(err, value) { cacheGetValue('meta','server_resources',function(err, value) {
@ -1282,7 +1305,9 @@
}; };
// Auto fill handlers and return public object. // Auto fill handlers and return public object.
options.boot.debug.handler = function(msg) {console.log(msg);}; options.boot.debug.handler = function(msg) {
console.log(msg);
};
return { return {
options: options, options: options,
factory: factory, factory: factory,

View file

@ -1,16 +1,21 @@
var fs = require('fs'); var fs = require('fs');
var logger = require('console');
module.exports = function(context) { module.exports = function(context) {
var Q = context.requireCordovaModule('q'); var Q = context.requireCordovaModule('q');
var deferral = new Q.defer(); var deferral = new Q.defer();
console.log('copy-ff-spa-loader-css start'); logger.log('copy-ff-spa-loader-css start');
fs.readFile('../../es5-ff-spa-loader.css',function(err,data) { fs.readFile('../../es5-ff-spa-loader.css',function(err,data) {
if (err) return deferral.reject(err); if (err) {
fs.writeFile('www/es5-ff-spa-loader.css',data,function(err) { return deferral.reject(err);
if (err) return deferral.reject(err); }
console.log('copy-ff-spa-loader-css done'); fs.writeFile('www/es5-ff-spa-loader.css',data,function(err) {
deferral.resolve(); if (err) {
}) return deferral.reject(err);
}); }
return deferral.promise; logger.log('copy-ff-spa-loader-css done');
deferral.resolve();
})
});
return deferral.promise;
} }

View file

@ -1,16 +1,21 @@
var fs = require('fs'); var fs = require('fs');
var logger = require('console');
module.exports = function(context) { module.exports = function(context) {
var Q = context.requireCordovaModule('q'); var Q = context.requireCordovaModule('q');
var deferral = new Q.defer(); var deferral = new Q.defer();
console.log('copy-ff-spa-loader-js start'); logger.log('copy-ff-spa-loader-js start');
fs.readFile('../../es5-ff-spa-loader.js',function(err,data) { fs.readFile('../../es5-ff-spa-loader.js',function(err,data) {
if (err) return deferral.reject(err); if (err) {
fs.writeFile('www/es5-ff-spa-loader.js',data,function(err) { return deferral.reject(err);
if (err) return deferral.reject(err); }
console.log('copy-ff-spa-loader-js done'); fs.writeFile('www/es5-ff-spa-loader.js',data,function(err) {
deferral.resolve(); if (err) {
}) return deferral.reject(err);
}); }
return deferral.promise; logger.log('copy-ff-spa-loader-js done');
deferral.resolve();
})
});
return deferral.promise;
} }

View file

@ -1,15 +1,18 @@
var fs = require('fs'); var fs = require('fs');
var logger = require('console');
module.exports = function(context) { module.exports = function(context) {
var Q = context.requireCordovaModule('q'); var Q = context.requireCordovaModule('q');
var deferral = new Q.defer(); var deferral = new Q.defer();
var nameOld = 'platforms/android/build/outputs/apk/android-debug.apk'; var nameOld = 'platforms/android/build/outputs/apk/android-debug.apk';
var nameNew = 'platforms/android/build/outputs/apk/FFSpaLoaderExample.apk'; var nameNew = 'platforms/android/build/outputs/apk/FFSpaLoaderExample.apk';
console.log('rename-android-apk start old: '+nameOld); logger.log('rename-android-apk start old: %s',nameOld);
fs.rename(nameOld,nameNew,function(err) { fs.rename(nameOld,nameNew,function(err) {
if (err) return deferral.reject(err); if (err) {
console.log('rename-android-apk done new: '+nameNew); return deferral.reject(err);
deferral.resolve(); }
}); logger.log('rename-android-apk done new: %s',nameNew);
return deferral.promise; deferral.resolve();
});
return deferral.promise;
} }

View file

@ -1,15 +1,16 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <title>Loading</title>
<meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap:"> <meta charset="UTF-8">
<meta name="format-detection" content="telephone=no"> <meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap:">
<meta name="msapplication-tap-highlight" content="no"> <meta name="format-detection" content="telephone=no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> <meta name="msapplication-tap-highlight" content="no">
<link rel="stylesheet" type="text/css" href="es5-ff-spa-loader.css" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
</head> <link rel="stylesheet" type="text/css" href="es5-ff-spa-loader.css" />
<body> </head>
<script type="text/javascript" src="cordova.js"></script> <body>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="es5-ff-spa-loader.js"></script> <script type="text/javascript" src="es5-ff-spa-loader.js"></script>
<script> <script>
FFSpaLoader.options.boot.debug.enable = true; FFSpaLoader.options.boot.debug.enable = true;
@ -18,5 +19,5 @@
FFSpaLoader.options.server.header.response['X-My-Api'] = 'noknok'; FFSpaLoader.options.server.header.response['X-My-Api'] = 'noknok';
FFSpaLoader.start(); FFSpaLoader.start();
</script> </script>
</body> </body>
</html> </html>

View file

@ -10,6 +10,7 @@ var morgan = require('morgan');
var UglifyJS = require("uglify-js"); var UglifyJS = require("uglify-js");
var Hashes = require('jshashes'); var Hashes = require('jshashes');
var minify = require('minify'); var minify = require('minify');
var logger = require('console');
var appPath = '/test'; // dynamic context path for version or proxy/etc of server app. var appPath = '/test'; // dynamic context path for version or proxy/etc of server app.
var clientResourcesWeb = []; var clientResourcesWeb = [];
@ -56,14 +57,23 @@ var fetchHashResources = function(fetchList, cb) {
var createClientResourceFetchList = function() { var createClientResourceFetchList = function() {
var fetchList = []; var fetchList = [];
for (var clientResourceIdxJs in clientResources.js) { for (var clientResourceIdxJs in clientResources.js) {
if (!clientResources.js.hasOwnProperty(clientResourceIdxJs)) {
continue;
}
var urlJs = clientResources.js[clientResourceIdxJs]; var urlJs = clientResources.js[clientResourceIdxJs];
fetchList.push({url:urlJs,type:'js'}); fetchList.push({url:urlJs,type:'js'});
} }
for (var clientResourceIdxCss in clientResources.css) { for (var clientResourceIdxCss in clientResources.css) {
if (!clientResources.css.hasOwnProperty(clientResourceIdxCss)) {
continue;
}
var urlCss = clientResources.css[clientResourceIdxCss]; var urlCss = clientResources.css[clientResourceIdxCss];
fetchList.push({url:urlCss,type:'css'}); fetchList.push({url:urlCss,type:'css'});
} }
for (var clientResourceIdxCssData in clientResources.dss) { for (var clientResourceIdxCssData in clientResources.dss) {
if (!clientResources.dss.hasOwnProperty(clientResourceIdxCssData)) {
continue;
}
var urlCssData = clientResources.cssData[clientResourceIdxCssData]; var urlCssData = clientResources.cssData[clientResourceIdxCssData];
fetchList.push({url:urlCssData,type:'dss'}); fetchList.push({url:urlCssData,type:'dss'});
} }
@ -115,14 +125,15 @@ server.get(appPath+'/example-ui', renderIndex());
server.get('/', function (req, res) {res.redirect(appPath);}); server.get('/', function (req, res) {res.redirect(appPath);});
server.listen(httpPort); server.listen(httpPort);
console.info('Server started on port '+httpPort); logger.info('Server started on port '+httpPort);
fetchHashResources(createClientResourceFetchList(), function(err) { fetchHashResources(createClientResourceFetchList(), function(err) {
if (err !== null) { if (err !== null) {
console.log('Fatal error '+err); logger.log('Fatal error '+err);
process.exit(1); process.exit(1);
} else { } else {
console.log('Total assets build: '+clientResourcesWeb.length); logger.log('Total assets build: '+clientResourcesWeb.length);
logger.log('Server boot done.');
} }
}); });