2
0
Fork 0

Linted code and added basic tests.

This commit is contained in:
Willem 2016-01-17 21:57:59 +01:00
parent e5e2dfc56f
commit 0fd0f026ec
9 changed files with 219 additions and 107 deletions

View file

@ -6,7 +6,7 @@ var fs = require('fs');
var minify = require('minify');
var fetch = require('fetch');
var cors = require('cors');
var morgan = require('morgan')
var morgan = require('morgan');
// example options;
var serverUrl = 'http://localhost:8080';
@ -17,19 +17,21 @@ var clientResources = {
js: [],
css: [],
cssData: []
}
};
var addClientResource = function(clientResource, resourceType) {
clientResources[resourceType].push(clientResource);
}
};
var stringHash = function (str) {
/* jslint bitwise: true */
var hash = 31; // prime
for (var i = 0; i < str.length; i++) {
hash = ((hash<<5)-hash)+str.charCodeAt(i);
hash = hash & hash; // keep 32b
}
return hash;
/* jslint bitwise: false */
};
var fetchHashResource = function(fetchEntry,cb) {
@ -60,17 +62,17 @@ var fetchHashResources = function(fetchList, cb) {
var createClientResourceFetchList = function() {
var fetchList = [];
for (var clientResourceIdx in clientResources.js) {
var url = clientResources.js[clientResourceIdx];
fetchList.push({url:url,type:'js'});
for (var clientResourceIdxJs in clientResources.js) {
var urlJs = clientResources.js[clientResourceIdxJs];
fetchList.push({url:urlJs,type:'js'});
}
for (var clientResourceIdx in clientResources.css) {
var url = clientResources.css[clientResourceIdx];
fetchList.push({url:url,type:'css'});
for (var clientResourceIdxCss in clientResources.css) {
var urlCss = clientResources.css[clientResourceIdxCss];
fetchList.push({url:urlCss,type:'css'});
}
for (var clientResourceIdx in clientResources.cssData) {
var url = clientResources.cssData[clientResourceIdx];
fetchList.push({url:url,type:'cssData'});
for (var clientResourceIdxCssData in clientResources.cssData) {
var urlCssData = clientResources.cssData[clientResourceIdxCssData];
fetchList.push({url:urlCssData,type:'cssData'});
}
return fetchList;
};
@ -86,7 +88,7 @@ function renderTemplatePath(viewPath) {
};
}
function renderIndex(server) {
function renderIndex() {
var inline = '';
minify(__dirname+'/../es5-ff-spa-loader.js', {}, function(err, data) {
inline = '\n\t\t<script>'+data+'</script>';
@ -113,7 +115,7 @@ addClientResource('/static/js/controller/page-foo.js','js');
addClientResource('/static/js/controller/page-index.js','js');
var server = express();
server.use(morgan('dev'))
server.use(morgan('dev'));
server.use(cors({credentials: true, origin: '*'}));
server.set('view engine', 'ejs');
server.set('views', path.join(__dirname,'www_views'));
@ -133,8 +135,7 @@ server.get('/static/spa-client-resources', function (req,res) {
server.get('/', function (req, res) {res.redirect('/example-ui');});
server.get('/example-ui/thtml/*', renderTemplatePath('thtml/'));
server.get('/example-ui', renderIndex(server));
server.get('/example-ui/*', renderIndex(server)); // must be last; for HTML5 history
server.get('/example-ui', renderIndex());
console.info('Server config done.');
server.listen(8080);
@ -142,7 +143,7 @@ console.info('Server started on port 8080');
var res = createClientResourceFetchList();
fetchHashResources(res, function(err) {
if (err !== null) {console.log(err);};
if (err !== null) {console.log(err);}
console.log('Total assets build: '+clientResourcesWeb.length);
});