models/set.js (35 lines of code) (raw):
// Copyright (c) 2018 Chandan B N. All rights reserved.
var fs = require('fs');
var extend = require('extend');
// go through default and custom configurations and return them.
module.exports = function (setName, paths) {
var result = {
list: 'list',
edit: 'edit',
render: 'render'
};
var conf = {};
if (!paths)
paths = ['default','custom'];
for (p in paths) {
path=paths[p];
if(fs.existsSync(path + '/' + setName + '/conf.js')) {
var temp = require('../' + path + '/' + setName + '/conf.js');
conf = extend(true, conf, temp);
}
if(fs.existsSync(path + '/' + setName + '/static')) {
result.static = path + '/' + setName + '/static';
}
if(!conf.style && fs.existsSync(path + '/' + setName + '/style.css')) {
result.style = fs.readFileSync(path + '/' + setName + '/style.css', 'utf8');
}
if(!conf.script && fs.existsSync(path + '/' + setName + '/script.js')) {
result.script = (result.script ? result.script : '')+fs.readFileSync(path + '/' + setName + '/script.js', {encoding:'utf8'});
}
for (template of ['list', 'edit', 'render']) {
if (fs.existsSync(path + '/' + setName + '/' + template + '.pug')) {
result[template] = '../' + path + '/' + setName + '/' + template;
}
}
}
var ret = extend(conf, result);
//TODO: merge old script object with new file
return ret;
}