diff --git a/lib/consolidate.js b/lib/consolidate.js index 02325a9..0b8d60b 100644 --- a/lib/consolidate.js +++ b/lib/consolidate.js @@ -81,24 +81,24 @@ function cache(options, compiled) { * is true the template string will be cached. * * @param {String} options - * @param {Function} fn + * @param {Function} cb * @api private */ -function read(path, options, fn) { +function read(path, options, cb) { var str = readCache[path]; var cached = options.cache && str && typeof str === 'string'; // cached (only if cached is a string and not a compiled template function) - if (cached) return fn(null, str); + if (cached) return cb(null, str); // read fs.readFile(path, 'utf8', function(err, str) { - if (err) return fn(err); + if (err) return cb(err); // remove extraneous utf8 BOM marker str = str.replace(/^\uFEFF/, ''); if (options.cache) readCache[path] = str; - fn(null, str); + cb(null, str); }); } @@ -112,13 +112,13 @@ function read(path, options, fn) { * @api private */ -function readPartials(path, options, fn) { - if (!options.partials) return fn(); +function readPartials(path, options, cb) { + if (!options.partials) return cb(); var partials = options.partials; var keys = Object.keys(partials); function next(index) { - if (index === keys.length) return fn(null); + if (index === keys.length) return cb(null); var key = keys[index]; var partialPath = partials[key]; @@ -138,7 +138,7 @@ function readPartials(path, options, fn) { } read(file, options, function(err, str) { - if (err) return fn(err); + if (err) return cb(err); options.partials[key] = str; next(++index); }); @@ -150,15 +150,15 @@ function readPartials(path, options, fn) { /** * promisify */ -function promisify(fn, exec) { - return new Promise(function(res, rej) { - fn = fn || function(err, html) { +function promisify(cb, fn) { + return new Promise(function(resolve, reject) { + cb = cb || function(err, html) { if (err) { - return rej(err); + return reject(err); } - res(html); + resolve(html); }; - exec(fn); + fn(cb); }); } @@ -167,18 +167,18 @@ function promisify(fn, exec) { */ function fromStringRenderer(name) { - return function(path, options, fn) { + return function(path, options, cb) { options.filename = path; - return promisify(fn, function(fn) { + return promisify(cb, function(cb) { readPartials(path, options, function(err) { - if (err) return fn(err); + if (err) return cb(err); if (cache(options)) { - exports[name].render('', options, fn); + exports[name].render('', options, cb); } else { read(path, options, function(err, str) { - if (err) return fn(err); - exports[name].render(str, options, fn); + if (err) return cb(err); + exports[name].render(str, options, cb); }); } }); @@ -196,14 +196,14 @@ exports.velocityjs = fromStringRenderer('velocityjs'); * velocity string support. */ -exports.velocityjs.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.velocityjs.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.velocityjs || (requires.velocityjs = require('velocityjs')); try { options.locals = options; - fn(null, engine.render(str, options).trimLeft()); + cb(null, engine.render(str, options).trimLeft()); } catch (err) { - fn(err); + cb(err); } }); }; @@ -226,7 +226,7 @@ exports.liquid = fromStringRenderer('liquid'); * `includeDir` will also become a local. */ -function _renderTinyliquid(engine, str, options, fn) { +function _renderTinyliquid(engine, str, options, cb) { var context = engine.newContext(); var k; @@ -313,11 +313,11 @@ function _renderTinyliquid(engine, str, options, fn) { */ var tmpl = cache(context) || cache(context, engine.compile(str, compileOptions)); - tmpl(context, fn); + tmpl(context, cb); } -exports.liquid.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.liquid.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.liquid; var Liquid; @@ -326,7 +326,7 @@ exports.liquid.render = function(str, options, fn) { engine = requires.liquid = require('tinyliquid'); // use tinyliquid engine - _renderTinyliquid(engine, str, options, fn); + _renderTinyliquid(engine, str, options, cb); return; @@ -401,12 +401,12 @@ exports.liquid.render = function(str, options, fn) { if (err) { throw new Error(err); } else { - return fn(null, result); + return cb(null, result); } }); } catch (err) { - fn(err); + cb(err); } }); }; @@ -415,8 +415,8 @@ exports.liquid.render = function(str, options, fn) { * Jade support. */ -exports.jade = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.jade = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.jade; if (!engine) { try { @@ -432,9 +432,9 @@ exports.jade = function(path, options, fn) { try { var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -443,8 +443,8 @@ exports.jade = function(path, options, fn) { * Jade string support. */ -exports.jade.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.jade.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.jade; if (!engine) { try { @@ -460,9 +460,9 @@ exports.jade.render = function(str, options, fn) { try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -477,8 +477,8 @@ exports.dust = fromStringRenderer('dust'); * Dust string support. */ -exports.dust.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.dust.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.dust; if (!engine) { try { @@ -515,9 +515,9 @@ exports.dust.render = function(str, options, fn) { } var tmpl = cache(options) || cache(options, engine.compileFn(str, templateName)); - tmpl(options, fn); + tmpl(options, cb); } catch (err) { - fn(err); + cb(err); } }); }; @@ -532,8 +532,8 @@ exports.swig = fromStringRenderer('swig'); * Swig string support. */ -exports.swig.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.swig.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.swig; if (!engine) { try { @@ -551,9 +551,9 @@ exports.swig.render = function(str, options, fn) { if (options.cache === true) options.cache = 'memory'; engine.setDefaults({ cache: options.cache }); var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -568,14 +568,14 @@ exports.atpl = fromStringRenderer('atpl'); * Atpl string support. */ -exports.atpl.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.atpl.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.atpl || (requires.atpl = require('atpl')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -590,14 +590,14 @@ exports.liquor = fromStringRenderer('liquor'); * Liquor string support. */ -exports.liquor.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.liquor.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.liquor || (requires.liquor = require('liquor')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -612,17 +612,17 @@ exports.twig = fromStringRenderer('twig'); * Twig string support. */ -exports.twig.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.twig.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.twig || (requires.twig = require('twig').twig); var templateData = { data: str }; try { var tmpl = cache(templateData) || cache(templateData, engine(templateData)); - fn(null, tmpl.render(options)); + cb(null, tmpl.render(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -637,14 +637,14 @@ exports.ejs = fromStringRenderer('ejs'); * EJS string support. */ -exports.ejs.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.ejs.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.ejs || (requires.ejs = require('ejs')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -659,13 +659,13 @@ exports.eco = fromStringRenderer('eco'); * Eco string support. */ -exports.eco.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.eco.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.eco || (requires.eco = require('eco')); try { - fn(null, engine.render(str, options)); + cb(null, engine.render(str, options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -680,16 +680,16 @@ exports.jazz = fromStringRenderer('jazz'); * Jazz string support. */ -exports.jazz.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.jazz.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.jazz || (requires.jazz = require('jazz')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); tmpl.eval(options, function(str) { - fn(null, str); + cb(null, str); }); } catch (err) { - fn(err); + cb(err); } }); }; @@ -704,14 +704,14 @@ exports.jqtpl = fromStringRenderer('jqtpl'); * JQTPL string support. */ -exports.jqtpl.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.jqtpl.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.jqtpl || (requires.jqtpl = require('jqtpl')); try { engine.template(str, str); - fn(null, engine.tmpl(str, options)); + cb(null, engine.tmpl(str, options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -726,14 +726,14 @@ exports.haml = fromStringRenderer('haml'); * Haml string support. */ -exports.haml.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.haml.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.haml || (requires.haml = require('hamljs')); try { options.locals = options; - fn(null, engine.render(str, options).trimLeft()); + cb(null, engine.render(str, options).trimLeft()); } catch (err) { - fn(err); + cb(err); } }); }; @@ -748,14 +748,14 @@ exports.hamlet = fromStringRenderer('hamlet'); * Hamlet string support. */ -exports.hamlet.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.hamlet.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.hamlet || (requires.hamlet = require('hamlet')); try { options.locals = options; - fn(null, engine.render(str, options).trimLeft()); + cb(null, engine.render(str, options).trimLeft()); } catch (err) { - fn(err); + cb(err); } }); }; @@ -764,10 +764,10 @@ exports.hamlet.render = function(str, options, fn) { * Whiskers support. */ -exports.whiskers = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.whiskers = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.whiskers || (requires.whiskers = require('whiskers')); - engine.__express(path, options, fn); + engine.__express(path, options, cb); }); }; @@ -775,13 +775,13 @@ exports.whiskers = function(path, options, fn) { * Whiskers string support. */ -exports.whiskers.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.whiskers.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.whiskers || (requires.whiskers = require('whiskers')); try { - fn(null, engine.render(str, options)); + cb(null, engine.render(str, options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -796,14 +796,14 @@ exports['haml-coffee'] = fromStringRenderer('haml-coffee'); * Coffee-HAML string support. */ -exports['haml-coffee'].render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports['haml-coffee'].render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires['haml-coffee'] || (requires['haml-coffee'] = require('haml-coffee')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -818,14 +818,14 @@ exports.hogan = fromStringRenderer('hogan'); * Hogan string support. */ -exports.hogan.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.hogan.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.hogan || (requires.hogan = require('hogan.js')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl.render(options, options.partials)); + cb(null, tmpl.render(options, options.partials)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -840,14 +840,14 @@ exports.templayed = fromStringRenderer('templayed'); * templayed.js string support. */ -exports.templayed.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.templayed.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.templayed || (requires.templayed = require('templayed')); try { var tmpl = cache(options) || cache(options, engine(str)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -862,8 +862,8 @@ exports.handlebars = fromStringRenderer('handlebars'); * Handlebars string support. */ -exports.handlebars.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.handlebars.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.handlebars || (requires.handlebars = require('handlebars')); try { for (var partial in options.partials) { @@ -873,9 +873,9 @@ exports.handlebars.render = function(str, options, fn) { engine.registerHelper(helper, options.helpers[helper]); } var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -890,17 +890,17 @@ exports.underscore = fromStringRenderer('underscore'); * Underscore string support. */ -exports.underscore.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.underscore.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.underscore || (requires.underscore = require('underscore')); try { for (var partial in options.partials) { options.partials[partial] = engine.template(options.partials[partial]); } var tmpl = cache(options) || cache(options, engine.template(str, null, options)); - fn(null, tmpl(options).replace(/\n$/, '')); + cb(null, tmpl(options).replace(/\n$/, '')); } catch (err) { - fn(err); + cb(err); } }); }; @@ -915,14 +915,14 @@ exports.lodash = fromStringRenderer('lodash'); * Lodash string support. */ -exports.lodash.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.lodash.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.lodash || (requires.lodash = require('lodash')); try { var tmpl = cache(options) || cache(options, engine.template(str, options)); - fn(null, tmpl(options).replace(/\n$/, '')); + cb(null, tmpl(options).replace(/\n$/, '')); } catch (err) { - fn(err); + cb(err); } }); }; @@ -931,8 +931,8 @@ exports.lodash.render = function(str, options, fn) { * Pug support. (formerly Jade) */ -exports.pug = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.pug = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.pug; if (!engine) { try { @@ -948,9 +948,9 @@ exports.pug = function(path, options, fn) { try { var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -959,8 +959,8 @@ exports.pug = function(path, options, fn) { * Pug string support. */ -exports.pug.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.pug.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.pug; if (!engine) { try { @@ -976,9 +976,9 @@ exports.pug.render = function(str, options, fn) { try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -993,17 +993,17 @@ exports.qejs = fromStringRenderer('qejs'); * QEJS string support. */ -exports.qejs.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.qejs.render = function(str, options, cb) { + return promisify(cb, function(cb) { try { var engine = requires.qejs || (requires.qejs = require('qejs')); engine.render(str, options).then(function(result) { - fn(null, result); + cb(null, result); }, function(err) { - fn(err); + cb(err); }).done(); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1018,14 +1018,14 @@ exports.walrus = fromStringRenderer('walrus'); * Walrus string support. */ -exports.walrus.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.walrus.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.walrus || (requires.walrus = require('walrus')); try { var tmpl = cache(options) || cache(options, engine.parse(str)); - fn(null, tmpl.compile(options)); + cb(null, tmpl.compile(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1040,13 +1040,13 @@ exports.mustache = fromStringRenderer('mustache'); * Mustache string support. */ -exports.mustache.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.mustache.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.mustache || (requires.mustache = require('mustache')); try { - fn(null, engine.to_html(str, options, options.partials)); + cb(null, engine.to_html(str, options, options.partials)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1055,15 +1055,15 @@ exports.mustache.render = function(str, options, fn) { * Just support. */ -exports.just = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.just = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.just; if (!engine) { var JUST = require('just'); engine = requires.just = new JUST(); } engine.configure({ useCache: options.cache }); - engine.render(path, options, fn); + engine.render(path, options, cb); }); }; @@ -1071,11 +1071,11 @@ exports.just = function(path, options, fn) { * Just string support. */ -exports.just.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.just.render = function(str, options, cb) { + return promisify(cb, function(cb) { var JUST = require('just'); var engine = new JUST({ root: { page: str }}); - engine.render('page', options, fn); + engine.render('page', options, cb); }); }; @@ -1083,15 +1083,15 @@ exports.just.render = function(str, options, fn) { * ECT support. */ -exports.ect = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.ect = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.ect; if (!engine) { var ECT = require('ect'); engine = requires.ect = new ECT(options); } engine.configure({ cache: options.cache }); - engine.render(path, options, fn); + engine.render(path, options, cb); }); }; @@ -1099,11 +1099,11 @@ exports.ect = function(path, options, fn) { * ECT string support. */ -exports.ect.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.ect.render = function(str, options, cb) { + return promisify(cb, function(cb) { var ECT = require('ect'); var engine = new ECT({ root: { page: str }}); - engine.render('page', options, fn); + engine.render('page', options, cb); }); }; @@ -1117,14 +1117,14 @@ exports.mote = fromStringRenderer('mote'); * mote string support. */ -exports.mote.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.mote.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.mote || (requires.mote = require('mote')); try { var tmpl = cache(options) || cache(options, engine.compile(str)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1133,10 +1133,10 @@ exports.mote.render = function(str, options, fn) { * Toffee support. */ -exports.toffee = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.toffee = function(path, options, cb) { + return promisify(cb, function(cb) { var toffee = requires.toffee || (requires.toffee = require('toffee')); - toffee.__consolidate_engine_render(path, options, fn); + toffee.__consolidate_engine_render(path, options, cb); }); }; @@ -1144,13 +1144,13 @@ exports.toffee = function(path, options, fn) { * Toffee string support. */ -exports.toffee.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.toffee.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.toffee || (requires.toffee = require('toffee')); try { - engine.str_render(str, options, fn); + engine.str_render(str, options, cb); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1165,8 +1165,8 @@ exports.dot = fromStringRenderer('dot'); * doT string support. */ -exports.dot.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.dot.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.dot || (requires.dot = require('dot')); var extend = (requires.extend || (requires.extend = require('util')._extend)); try { @@ -1174,9 +1174,9 @@ exports.dot.render = function(str, options, fn) { settings = extend(settings, engine.templateSettings); settings = extend(settings, options ? options.dot : {}); var tmpl = cache(options) || cache(options, engine.template(str, settings, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1191,14 +1191,14 @@ exports.bracket = fromStringRenderer('bracket'); * bracket string support. */ -exports.bracket.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.bracket.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.bracket || (requires.bracket = require('bracket-template')); try { var tmpl = cache(options) || cache(options, engine.default.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1213,8 +1213,8 @@ exports.ractive = fromStringRenderer('ractive'); * Ractive string support. */ -exports.ractive.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.ractive.render = function(str, options, cb) { + return promisify(cb, function(cb) { var Engine = requires.ractive || (requires.ractive = require('ractive')); var template = cache(options) || cache(options, Engine.parse(str)); @@ -1237,9 +1237,9 @@ exports.ractive.render = function(str, options, fn) { } try { - fn(null, new Engine(options).toHTML()); + cb(null, new Engine(options).toHTML()); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1254,8 +1254,8 @@ exports.nunjucks = fromStringRenderer('nunjucks'); * Nunjucks string support. */ -exports.nunjucks.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.nunjucks.render = function(str, options, cb) { + return promisify(cb, function(cb) { try { @@ -1266,7 +1266,11 @@ exports.nunjucks.render = function(str, options, fn) { // deprecated fallback support for express // // - if (options.settings && options.settings.views) { env = engine.configure(options.settings.views); } else if (options.nunjucks && options.nunjucks.configure) { env = engine.configure.apply(engine, options.nunjucks.configure); } + if (options.settings && options.settings.views) { + env = engine.configure(options.settings.views); + } else if (options.nunjucks && options.nunjucks.configure) { + env = engine.configure.apply(engine, options.nunjucks.configure); + } // // because `renderString` does not initiate loaders @@ -1277,21 +1281,6 @@ exports.nunjucks.render = function(str, options, fn) { // // - // - // note that the below code didn't work nor make sense before - // because loaders should take different options from rendering - // - - /* - var loader = options.loader; - if (loader) { - var env = new engine.Environment(new loader(options)); - env.renderString(str, options, fn); - } else { - engine.renderString(str, options, fn); - } - */ - // so instead we simply check if we passed a custom loader // otherwise we create a simple file based loader if (options.loader) { @@ -1301,7 +1290,9 @@ exports.nunjucks.render = function(str, options, fn) { new engine.FileSystemLoader(options.settings.views) ); } else if (options.nunjucks && options.nunjucks.loader) { - if (typeof options.nunjucks.loader === 'string') { env = new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader)); } else { + if (typeof options.nunjucks.loader === 'string') { + env = new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader)); + } else { env = new engine.Environment( new engine.FileSystemLoader( options.nunjucks.loader[0], @@ -1311,10 +1302,9 @@ exports.nunjucks.render = function(str, options, fn) { } } - env.renderString(str, options, fn); - + env.renderString(str, options, cb); } catch (err) { - throw fn(err); + throw cb(err); } }); }; @@ -1329,14 +1319,14 @@ exports.htmling = fromStringRenderer('htmling'); * HTMLing string support. */ -exports.htmling.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.htmling.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.htmling || (requires.htmling = require('htmling')); try { var tmpl = cache(options) || cache(options, engine.string(str)); - fn(null, tmpl.render(options)); + cb(null, tmpl.render(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1407,15 +1397,15 @@ exports.plates = fromStringRenderer('plates'); * Plates string support. */ -exports.plates.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.plates.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.plates || (requires.plates = require('plates')); var map = options.map || undefined; try { var tmpl = engine.bind(str, options, map); - fn(null, tmpl); + cb(null, tmpl); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1441,8 +1431,8 @@ function reactRenderer(type) { } // Return rendering fx - return function(str, options, fn) { - return promisify(fn, function(fn) { + return function(str, options, cb) { + return promisify(cb, function(cb) { // React Import var ReactDOM = requires.ReactDOM || (requires.ReactDOM = require('react-dom/server')); var react = requires.react || (requires.react = require('react')); @@ -1496,10 +1486,10 @@ function reactRenderer(type) { content = reactBaseTmpl(baseStr, options); } - fn(null, content); + cb(null, content); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1525,14 +1515,14 @@ exports['arc-templates'] = fromStringRenderer('arc-templates'); * ARC-templates string support. */ -exports['arc-templates'].render = function(str, options, fn) { +exports['arc-templates'].render = function(str, options, cb) { var readFileWithOptions = Promise.promisify(read); var consolidateFileSystem = {}; consolidateFileSystem.readFile = function(path) { return readFileWithOptions(path, options); }; - return promisify(fn, function(fn) { + return promisify(cb, function(cb) { try { var engine = requires['arc-templates']; if (!engine) { @@ -1542,10 +1532,10 @@ exports['arc-templates'].render = function(str, options, fn) { var compiler = cache(options) || cache(options, engine.compileString(str, options.filename)); compiler.then(function(func) { return func(options); }) - .then(function(result) { fn(null, result.content); }) - .catch(fn); + .then(function(result) { cb(null, result.content); }) + .catch(cb); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1558,8 +1548,8 @@ exports.vash = fromStringRenderer('vash'); /** * Vash string support */ -exports.vash.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.vash.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.vash || (requires.vash = require('vash')); try { @@ -1575,12 +1565,12 @@ exports.vash.render = function(str, options, fn) { var tmpl = cache(options) || cache(options, engine.compile(str, options)); tmpl(options, function sealLayout(err, ctx) { - if (err) fn(err); + if (err) cb(err); ctx.finishLayout(); - fn(null, ctx.toString().replace(/\n$/, '')); + cb(null, ctx.toString().replace(/\n$/, '')); }); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1595,15 +1585,15 @@ exports.slm = fromStringRenderer('slm'); * Slm string support. */ -exports.slm.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.slm.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.slm || (requires.slm = require('slm')); try { var tmpl = cache(options) || cache(options, engine.compile(str, options)); - fn(null, tmpl(options)); + cb(null, tmpl(options)); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1612,16 +1602,16 @@ exports.slm.render = function(str, options, fn) { * Marko support. */ -exports.marko = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.marko = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.marko || (requires.marko = require('marko')); options.writeToDisk = !!options.cache; try { var tmpl = cache(options) || cache(options, engine.load(path, options)); - tmpl.renderToString(options, fn); + tmpl.renderToString(options, cb); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1630,17 +1620,17 @@ exports.marko = function(path, options, fn) { * Marko string support. */ -exports.marko.render = function(str, options, fn) { - return promisify(fn, function(fn) { +exports.marko.render = function(str, options, cb) { + return promisify(cb, function(cb) { var engine = requires.marko || (requires.marko = require('marko')); options.writeToDisk = !!options.cache; options.filename = options.filename || 'string.marko'; try { var tmpl = cache(options) || cache(options, engine.load(options.filename, str, options)); - tmpl.renderToString(options, fn); + tmpl.renderToString(options, cb); } catch (err) { - fn(err); + cb(err); } }); }; @@ -1648,38 +1638,38 @@ exports.marko.render = function(str, options, fn) { /** * Teacup support. */ -exports.teacup = function(path, options, fn) { - return promisify(fn, function(fn) { +exports.teacup = function(path, options, cb) { + return promisify(cb, function(cb) { var engine = requires.teacup || (requires.teacup = require('teacup/lib/express')); require.extensions['.teacup'] = require.extensions['.coffee']; if (path[0] !== '/') { path = join(process.cwd(), path); } if (!options.cache) { - var originalFn = fn; - fn = function() { + var callback = cb; + cb = function() { delete require.cache[path]; - originalFn.apply(this, arguments); + callback.apply(this, arguments); }; } - engine.renderFile(path, options, fn); + engine.renderFile(path, options, cb); }); }; /** * Teacup string support. */ -exports.teacup.render = function(str, options, fn) { +exports.teacup.render = function(str, options, cb) { var coffee = require('coffee-script'); var vm = require('vm'); var sandbox = { module: {exports: {}}, require: require }; - return promisify(fn, function(fn) { + return promisify(cb, function(cb) { vm.runInNewContext(coffee.compile(str), sandbox); var tmpl = sandbox.module.exports; - fn(null, tmpl(options)); + cb(null, tmpl(options)); }); }; diff --git a/package.json b/package.json index 5918554..c4bef6d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ ], "main": "index.js", "engines": { - "node": ">= 4.0" + "node": ">= 0.10.0" }, "scripts": { "lint": "eslint .",