update design bundle for router

This commit is contained in:
Eric Hulburd
2016-03-01 13:16:31 -06:00
parent c890132f2b
commit 916a8dc255
15 changed files with 130 additions and 55 deletions

33
server/lib/fs_helper.js Normal file
View File

@@ -0,0 +1,33 @@
import fs from 'fs';
import path from 'path';
class FsHelper {
// http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search
static walk(dir, done) {
var results = [];
fs.readdir(dir, function(err, list) {
if (err) return done(err);
var i = 0;
(function next() {
var file = list[i++];
if (!file) return done(null, results);
file = path.resolve(dir, file);
fs.stat(file, function(err, stat) {
if (stat && stat.isDirectory()) {
FsHelper.walk(file, function(err, res) {
results = results.concat(res);
next();
});
} else {
results.push(file);
next();
}
});
})();
});
}
}
export default FsHelper;

View File

@@ -0,0 +1,31 @@
import FsHelper from './../fs_helper';
import fs from 'fs';
class ComponentMapWriter {
static write(path){
return new Promise((fnResolve, fnReject)=>{
var TEMPLATE_ROUTES = {};
FsHelper.walk(__dirname + '/../../../client/dashboard', (err, files)=>{
files.forEach((file)=>{
if (!/\.component\.js$/.test(file)) return true;
var rel_path = file.match(/dashboard\/.+/)[0].replace('.component.js', ''),
parts = file.match(/dashboard\/([^\/]+).*\/([^\/]+)\.component\.js$/),
template_name;
if (parts[1] === parts[2]) template_name = parts[1];
else template_name = parts[1] + '_' + parts[2];
TEMPLATE_ROUTES[template_name] = rel_path;
});
var content = 'export const COMPONENT_MAP = ' + JSON.stringify(TEMPLATE_ROUTES);
fs.writeFile(path, content, function(err) {
fnResolve();
});
});
});
}
}
export default ComponentMapWriter;