Merge pull request #1220 from moos/pug-memory

Process pug synchronously for better memory management - fixes #1219
This commit is contained in:
Peter Hedenskog 2016-09-26 08:13:24 +02:00 committed by GitHub
commit dc311b60f6
1 changed files with 6 additions and 14 deletions

View File

@ -1,12 +1,8 @@
'use strict';
const pug = require('pug'),
fs = require('fs'),
Promise = require('bluebird'),
path = require('path');
Promise.promisifyAll(fs);
const basePath = path.resolve(__dirname, 'templates');
const templateCache = {};
@ -16,23 +12,19 @@ function getTemplate(templateName) {
templateName = templateName + '.pug';
const template = templateCache[templateName];
if (template) {
return Promise.resolve(template);
return template;
}
const filename = path.resolve(basePath, templateName);
return fs.readFileAsync(filename, 'utf-8')
.then((source) => {
const renderedTemplate = pug.compile(source, {'filename': filename});
templateCache[templateName] = renderedTemplate;
return renderedTemplate;
});
const renderedTemplate = pug.compileFile(filename);
templateCache[templateName] = renderedTemplate;
return renderedTemplate;
}
module.exports = {
renderTemplate(templateName, locals) {
return getTemplate(templateName)
.then((template) => template(locals));
return getTemplate(templateName)(locals);
}
};