arrow-admin
Version:
Arrow Admin Website
39 lines (35 loc) • 915 B
JavaScript
var _ = require('lodash'),
fs = require('fs'),
path = require('path'),
util = require('../util');
function createReloadHandler(arrow, next) {
// reload event
var loaded = function loaded() {
arrow.removeListener('reloaded',loaded);
next();
};
// register to know when we've finished reloading
arrow.on('reloaded', loaded);
}
function configure(arrow, app, config, prefix) {
if (config.env==='development') {
app.post(prefix+'/generate/model/:name', function(req,resp,next){
var filename = util.generateModelName(config, req.params.name);
createReloadHandler(arrow, function(){
return util.json(resp, {
success: true
});
});
var newFile = fs.existsSync(filename);
fs.writeFile(filename, req.body, function(err){
if (err) {
return util.json(resp, {
success: false,
message: err.message
});
}
});
});
}
}
exports.configure = configure;