consolidate
Advanced tools
Comparing version 0.15.0 to 0.15.1
@@ -0,1 +1,8 @@ | ||
0.15.1 / 2018-03-19 | ||
=================== | ||
* add support for underscore partials | ||
* updating metadata and configurations | ||
* lint and cleanup code and tests | ||
0.15.0 / 2017-11-01 | ||
@@ -2,0 +9,0 @@ =================== |
@@ -1,1 +0,1 @@ | ||
module.exports = require('./lib/consolidate'); | ||
module.exports = require('./lib/consolidate'); |
@@ -47,3 +47,3 @@ 'use strict'; | ||
exports.clearCache = function(){ | ||
exports.clearCache = function() { | ||
readCache = {}; | ||
@@ -85,7 +85,7 @@ cacheStore = {}; | ||
* @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]; | ||
@@ -95,11 +95,11 @@ 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); | ||
fs.readFile(path, 'utf8', function(err, str) { | ||
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); | ||
}); | ||
@@ -118,4 +118,4 @@ } | ||
function readPartials(path, options, fn) { | ||
if (!options.partials) return fn(); | ||
function readPartials(path, options, cb) { | ||
if (!options.partials) return cb(); | ||
var partials = options.partials; | ||
@@ -125,3 +125,3 @@ 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]; | ||
@@ -145,4 +145,4 @@ var partialPath = partials[key]; | ||
read(file, options, function(err, str){ | ||
if (err) return fn(err); | ||
read(file, options, function(err, str) { | ||
if (err) return cb(err); | ||
options.partials[key] = str; | ||
@@ -156,19 +156,17 @@ next(++index); | ||
/** | ||
* 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); | ||
}); | ||
} | ||
/** | ||
@@ -179,14 +177,14 @@ * fromStringRenderer | ||
function fromStringRenderer(name) { | ||
return function(path, options, fn){ | ||
return function(path, options, cb) { | ||
options.filename = path; | ||
return promisify(fn, function(fn) { | ||
readPartials(path, options, function (err) { | ||
if (err) return fn(err); | ||
return promisify(cb, function(cb) { | ||
readPartials(path, options, function(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); | ||
read(path, options, function(err, str) { | ||
if (err) return cb(err); | ||
exports[name].render(str, options, cb); | ||
}); | ||
@@ -209,10 +207,10 @@ } | ||
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); | ||
} | ||
@@ -240,3 +238,3 @@ }); | ||
function _renderTinyliquid(engine, str, options, fn) { | ||
function _renderTinyliquid(engine, str, options, cb) { | ||
var context = engine.newContext(); | ||
@@ -279,7 +277,7 @@ var k; | ||
context.onInclude(function (name, callback) { | ||
context.onInclude(function(name, callback) { | ||
var extname = path.extname(name) ? '' : '.liquid'; | ||
var filename = path.resolve(includeDir, name + extname); | ||
fs.readFile(filename, {encoding: 'utf8'}, function (err, data) { | ||
fs.readFile(filename, {encoding: 'utf8'}, function(err, data) { | ||
if (err) return callback(err); | ||
@@ -307,3 +305,3 @@ callback(null, engine.parse(data)); | ||
/*jshint -W083 */ | ||
compileOptions.customTags[k] = function (context, name, body) { | ||
compileOptions.customTags[k] = function(context, name, body) { | ||
var tpl = tagFunctions[name](body.trim()); | ||
@@ -330,7 +328,7 @@ context.astStack.push(engine.parse(tpl)); | ||
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; | ||
@@ -344,3 +342,3 @@ var Liquid; | ||
// use tinyliquid engine | ||
_renderTinyliquid(engine, str, options, fn); | ||
_renderTinyliquid(engine, str, options, cb); | ||
@@ -354,3 +352,3 @@ return; | ||
Liquid = requires.liquid = require('liquid-node'); | ||
engine = new Liquid.Engine; | ||
engine = new Liquid.Engine(); | ||
} catch (err) { | ||
@@ -366,3 +364,3 @@ throw err; | ||
if (options.meta){ | ||
if (options.meta) { | ||
locals.pages = options.meta; | ||
@@ -395,10 +393,6 @@ delete options.meta; | ||
var compileOptions = { | ||
customTags: {} | ||
}; | ||
if (options.customTags){ | ||
if (options.customTags) { | ||
var tagFunctions = options.customTags; | ||
for (k in options.customTags){ | ||
for (k in options.customTags) { | ||
engine.registerTag(k, tagFunctions[k]); | ||
@@ -413,3 +407,3 @@ } | ||
for (var k in options){ | ||
for (var k in options) { | ||
locals[k] = options[k]; | ||
@@ -424,7 +418,7 @@ } | ||
.parseAndRender(str, locals) | ||
.nodeify(function (err, result) { | ||
.nodeify(function(err, result) { | ||
if (err) { | ||
throw new Error(err); | ||
} else { | ||
return fn(null, result); | ||
return cb(null, result); | ||
} | ||
@@ -434,3 +428,3 @@ }); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -444,4 +438,4 @@ }); | ||
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; | ||
@@ -462,5 +456,5 @@ if (!engine) { | ||
var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); | ||
fn(null, tmpl(options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -474,4 +468,4 @@ }); | ||
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; | ||
@@ -492,5 +486,5 @@ if (!engine) { | ||
var tmpl = cache(options) || cache(options, engine.compile(str, options)); | ||
fn(null, tmpl(options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -510,4 +504,4 @@ }); | ||
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; | ||
@@ -536,5 +530,5 @@ if (!engine) { | ||
engine.onLoad = function(path, callback){ | ||
if ('' === extname(path)) path += '.' + ext; | ||
if ('/' !== path[0]) path = views + '/' + path; | ||
engine.onLoad = function(path, callback) { | ||
if (extname(path) === '') path += '.' + ext; | ||
if (path[0] !== '/') path = views + '/' + path; | ||
read(path, options, callback); | ||
@@ -550,5 +544,5 @@ }; | ||
var tmpl = cache(options) || cache(options, engine.compileFn(str, templateName)); | ||
tmpl(options, fn); | ||
tmpl(options, cb); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -568,4 +562,4 @@ }); | ||
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; | ||
@@ -585,8 +579,8 @@ if (!engine) { | ||
try { | ||
if(options.cache === true) options.cache = 'memory'; | ||
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); | ||
} | ||
@@ -606,10 +600,10 @@ }); | ||
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); | ||
} | ||
@@ -629,10 +623,10 @@ }); | ||
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); | ||
} | ||
@@ -652,4 +646,4 @@ }); | ||
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); | ||
@@ -661,5 +655,5 @@ var templateData = { | ||
var tmpl = cache(templateData) || cache(templateData, engine(templateData)); | ||
fn(null, tmpl.render(options)); | ||
cb(null, tmpl.render(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -679,10 +673,10 @@ }); | ||
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); | ||
} | ||
@@ -692,3 +686,2 @@ }); | ||
/** | ||
@@ -704,9 +697,9 @@ * Eco 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); | ||
} | ||
@@ -726,12 +719,12 @@ }); | ||
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); | ||
tmpl.eval(options, function(str) { | ||
cb(null, str); | ||
}); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -751,10 +744,10 @@ }); | ||
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); | ||
} | ||
@@ -774,10 +767,10 @@ }); | ||
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); | ||
} | ||
@@ -797,10 +790,10 @@ }); | ||
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); | ||
} | ||
@@ -814,6 +807,6 @@ }); | ||
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); | ||
}); | ||
@@ -826,9 +819,9 @@ }; | ||
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); | ||
} | ||
@@ -848,10 +841,10 @@ }); | ||
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); | ||
} | ||
@@ -871,10 +864,10 @@ }); | ||
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); | ||
} | ||
@@ -894,10 +887,10 @@ }); | ||
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); | ||
} | ||
@@ -917,4 +910,4 @@ }); | ||
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')); | ||
@@ -929,5 +922,5 @@ 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); | ||
} | ||
@@ -947,10 +940,13 @@ }); | ||
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); | ||
} | ||
@@ -960,3 +956,2 @@ }); | ||
/** | ||
@@ -972,10 +967,10 @@ * Lodash 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); | ||
} | ||
@@ -985,3 +980,2 @@ }); | ||
/** | ||
@@ -991,4 +985,4 @@ * 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; | ||
@@ -1009,5 +1003,5 @@ if (!engine) { | ||
var tmpl = cache(options) || cache(options, engine.compileFile(path, options)); | ||
fn(null, tmpl(options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1021,4 +1015,4 @@ }); | ||
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; | ||
@@ -1039,5 +1033,5 @@ if (!engine) { | ||
var tmpl = cache(options) || cache(options, engine.compile(str, options)); | ||
fn(null, tmpl(options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1047,3 +1041,2 @@ }); | ||
/** | ||
@@ -1059,13 +1052,13 @@ * QEJS 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); | ||
}, function (err) { | ||
fn(err); | ||
engine.render(str, options).then(function(result) { | ||
cb(null, result); | ||
}, function(err) { | ||
cb(err); | ||
}).done(); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1075,3 +1068,2 @@ }); | ||
/** | ||
@@ -1087,10 +1079,10 @@ * Walrus 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); | ||
} | ||
@@ -1110,9 +1102,9 @@ }); | ||
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); | ||
} | ||
@@ -1126,4 +1118,4 @@ }); | ||
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; | ||
@@ -1135,3 +1127,3 @@ if (!engine) { | ||
engine.configure({ useCache: options.cache }); | ||
engine.render(path, options, fn); | ||
engine.render(path, options, cb); | ||
}); | ||
@@ -1144,7 +1136,7 @@ }; | ||
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); | ||
}); | ||
@@ -1157,4 +1149,4 @@ }; | ||
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; | ||
@@ -1166,3 +1158,3 @@ if (!engine) { | ||
engine.configure({ cache: options.cache }); | ||
engine.render(path, options, fn); | ||
engine.render(path, options, cb); | ||
}); | ||
@@ -1175,7 +1167,7 @@ }; | ||
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); | ||
}); | ||
@@ -1194,10 +1186,10 @@ }; | ||
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); | ||
} | ||
@@ -1211,6 +1203,6 @@ }); | ||
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); | ||
}); | ||
@@ -1223,9 +1215,9 @@ }; | ||
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); | ||
} | ||
@@ -1245,14 +1237,14 @@ }); | ||
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 { | ||
var settings = {}; | ||
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)); | ||
var settings = {}; | ||
settings = extend(settings, engine.templateSettings); | ||
settings = extend(settings, options ? options.dot : {}); | ||
var tmpl = cache(options) || cache(options, engine.template(str, settings, options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1272,10 +1264,10 @@ }); | ||
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); | ||
} | ||
@@ -1295,11 +1287,10 @@ }); | ||
exports.ractive.render = function(str, options, fn){ | ||
return promisify(fn, function (fn) { | ||
var engine = requires.ractive || (requires.ractive = require('ractive')); | ||
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)); | ||
var template = cache(options) || cache(options, Engine.parse(str)); | ||
options.template = template; | ||
if (options.data === null || options.data === undefined) | ||
{ | ||
if (options.data === null || options.data === undefined) { | ||
var extend = (requires.extend || (requires.extend = require('util')._extend)); | ||
@@ -1311,4 +1302,5 @@ | ||
// Remove consolidate-specific properties from the clone | ||
var i, length; | ||
var properties = ["template", "filename", "cache", "partials"]; | ||
var i; | ||
var length; | ||
var properties = ['template', 'filename', 'cache', 'partials']; | ||
for (i = 0, length = properties.length; i < length; i++) { | ||
@@ -1321,5 +1313,5 @@ var property = properties[i]; | ||
try { | ||
fn(null, new engine(options).toHTML()); | ||
cb(null, new Engine(options).toHTML()); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1339,4 +1331,4 @@ }); | ||
exports.nunjucks.render = function (str, options, fn) { | ||
return promisify(fn, function (fn) { | ||
exports.nunjucks.render = function(str, options, cb) { | ||
return promisify(cb, function(cb) { | ||
@@ -1352,6 +1344,7 @@ try { | ||
// <https://github.com/tj/consolidate.js/pull/224> | ||
if (options.settings && options.settings.views) | ||
if (options.settings && options.settings.views) { | ||
env = engine.configure(options.settings.views); | ||
else if (options.nunjucks && options.nunjucks.configure) | ||
} else if (options.nunjucks && options.nunjucks.configure) { | ||
env = engine.configure.apply(engine, options.nunjucks.configure); | ||
} | ||
@@ -1367,17 +1360,2 @@ // | ||
// | ||
// 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 | ||
@@ -1392,5 +1370,5 @@ // otherwise we create a simple file based loader | ||
} else if (options.nunjucks && options.nunjucks.loader) { | ||
if (typeof options.nunjucks.loader === 'string') | ||
if (typeof options.nunjucks.loader === 'string') { | ||
env = new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader)); | ||
else | ||
} else { | ||
env = new engine.Environment( | ||
@@ -1402,8 +1380,8 @@ new engine.FileSystemLoader( | ||
); | ||
} | ||
} | ||
env.renderString(str, options, fn); | ||
env.renderString(str, options, cb); | ||
} catch (err) { | ||
throw fn(err); | ||
throw cb(err); | ||
} | ||
@@ -1413,3 +1391,2 @@ }); | ||
/** | ||
@@ -1425,10 +1402,10 @@ * HTMLing 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); | ||
} | ||
@@ -1438,3 +1415,2 @@ }); | ||
/** | ||
@@ -1446,3 +1422,3 @@ * Rendering function | ||
var compiled = babel.transformFileSync(filename, { presets: [ 'react' ] }).code | ||
var compiled = babel.transformFileSync(filename, { presets: [ 'react' ] }).code; | ||
@@ -1454,3 +1430,2 @@ return module._compile(compiled, filename); | ||
/** | ||
@@ -1464,3 +1439,3 @@ * Converting a string into a node module. | ||
var m = new module.constructor(); | ||
filename = filename || ''; | ||
filename = filename || ''; | ||
@@ -1477,7 +1452,6 @@ // Compile Using React | ||
/** | ||
* A naive helper to replace {{tags}} with options.tags content | ||
*/ | ||
function reactBaseTmpl(data, options){ | ||
function reactBaseTmpl(data, options) { | ||
@@ -1489,4 +1463,4 @@ var exp; | ||
// and interpolate / replace {{key}} with it's value | ||
for (var k in options){ | ||
if (options.hasOwnProperty(k)){ | ||
for (var k in options) { | ||
if (options.hasOwnProperty(k)) { | ||
exp = '{{' + k + '}}'; | ||
@@ -1513,4 +1487,4 @@ regex = new RegExp(exp, 'g'); | ||
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')); | ||
@@ -1520,15 +1494,13 @@ var map = options.map || undefined; | ||
var tmpl = engine.bind(str, options, map); | ||
fn(null, tmpl); | ||
cb(null, tmpl); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
}); | ||
} | ||
}; | ||
/** | ||
* The main render parser for React bsaed templates | ||
*/ | ||
function reactRenderer(type){ | ||
function reactRenderer(type) { | ||
@@ -1551,4 +1523,4 @@ if (require.extensions) { | ||
// 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 | ||
@@ -1578,10 +1550,10 @@ var ReactDOM = requires.ReactDOM || (requires.ReactDOM = require('react-dom/server')); | ||
if (!cache(options)){ | ||
if (!cache(options)) { | ||
// Parsing | ||
if (type === 'path') { | ||
var path = resolve(str) | ||
delete require.cache[path] | ||
Code = require(path) | ||
var path = resolve(str); | ||
delete require.cache[path]; | ||
Code = require(path); | ||
} else { | ||
Code = requireReactString(str) | ||
Code = requireReactString(str); | ||
} | ||
@@ -1597,6 +1569,6 @@ Factory = cache(options, react.createFactory(Code)); | ||
if (base){ | ||
if (base) { | ||
baseStr = readCache[str] || fs.readFileSync(resolve(base), 'utf8'); | ||
if (enableCache){ | ||
if (enableCache) { | ||
readCache[str] = baseStr; | ||
@@ -1609,6 +1581,6 @@ } | ||
fn(null, content); | ||
cb(null, content); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1624,3 +1596,2 @@ }); | ||
/** | ||
@@ -1641,10 +1612,10 @@ * React JS 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) { | ||
consolidateFileSystem.readFile = function(path) { | ||
return readFileWithOptions(path, options); | ||
}; | ||
return promisify(fn, function (fn) { | ||
return promisify(cb, function(cb) { | ||
try { | ||
@@ -1658,7 +1629,7 @@ var engine = requires['arc-templates']; | ||
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); | ||
compiler.then(function(func) { return func(options); }) | ||
.then(function(result) { cb(null, result.content); }) | ||
.catch(cb); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1676,4 +1647,4 @@ }); | ||
*/ | ||
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')); | ||
@@ -1694,7 +1665,8 @@ | ||
tmpl(options, function sealLayout(err, ctx) { | ||
if (err) cb(err); | ||
ctx.finishLayout(); | ||
fn(null, ctx.toString().replace(/\n$/, '')); | ||
cb(null, ctx.toString().replace(/\n$/, '')); | ||
}); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1714,4 +1686,4 @@ }); | ||
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')); | ||
@@ -1721,5 +1693,5 @@ | ||
var tmpl = cache(options) || cache(options, engine.compile(str, options)); | ||
fn(null, tmpl(options)); | ||
cb(null, tmpl(options)); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1733,4 +1705,4 @@ }); | ||
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')); | ||
@@ -1741,5 +1713,5 @@ options.writeToDisk = !!options.cache; | ||
var tmpl = cache(options) || cache(options, engine.load(path, options)); | ||
tmpl.renderToString(options, fn) | ||
tmpl.renderToString(options, cb); | ||
} catch (err) { | ||
fn(err); | ||
cb(err); | ||
} | ||
@@ -1753,4 +1725,4 @@ }); | ||
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')); | ||
@@ -1762,5 +1734,5 @@ options.writeToDisk = !!options.cache; | ||
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); | ||
} | ||
@@ -1773,17 +1745,17 @@ }); | ||
*/ | ||
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] != '/') { | ||
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); | ||
}); | ||
@@ -1795,3 +1767,3 @@ }; | ||
*/ | ||
exports.teacup.render = function(str, options, fn){ | ||
exports.teacup.render = function(str, options, cb) { | ||
var coffee = require('coffee-script'); | ||
@@ -1803,8 +1775,8 @@ var vm = require('vm'); | ||
}; | ||
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)); | ||
}); | ||
} | ||
}; | ||
@@ -1814,2 +1786,2 @@ /** | ||
*/ | ||
exports.requires = requires; | ||
exports.requires = requires; |
{ | ||
"name": "consolidate", | ||
"description": "Template engine consolidation library", | ||
"version": "0.15.0", | ||
"version": "0.15.1", | ||
"homepage": "https://github.com/tj/consolidate.js", | ||
"author": "TJ Holowaychuk <tj@vision-media.ca>", | ||
"repository": "tj/consolidate.js", | ||
"bugs": { | ||
"url": "https://github.com/tj/consolidate.js/issues" | ||
}, | ||
"license": "MIT", | ||
"main": "index", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/visionmedia/consolidate.js.git" | ||
"files": [ | ||
"index.js", | ||
"lib" | ||
], | ||
"main": "index.js", | ||
"engines": { | ||
"node": ">= 0.10.0" | ||
}, | ||
"scripts": { | ||
"lint": "eslint .", | ||
"pretest": "npm run lint", | ||
"test": "mocha" | ||
}, | ||
"dependencies": { | ||
@@ -76,6 +89,3 @@ "bluebird": "^3.1.1" | ||
"view" | ||
], | ||
"scripts": { | ||
"test": "mocha" | ||
} | ||
] | ||
} |
51821
5
1391