Sha256: 75ac076e7829274a938ad1659d1a37d19a4441a88faa1978b7d0ff0dfd613818

Contents?: true

Size: 986 Bytes

Versions: 62

Compression:

Stored size: 986 Bytes

Contents

var path = require('path');
var fs = require('./fs');
var Handlebars = require('handlebars');
var mout = require('mout');
var helpers = require('../../templates/helpers');

var templatesDir = path.resolve(__dirname, '../../templates');
var cache = {};

// Register helpers
mout.object.forOwn(helpers, function (register) {
    register(Handlebars);
});

function render(name, data, escape) {
    var contents;

    // Check if already compiled
    if (cache[name]) {
        return cache[name](data);
    }

    // Otherwise, read the file, compile and cache
    contents = fs.readFileSync(path.join(templatesDir, name)).toString();
    cache[name] = Handlebars.compile(contents, {
        noEscape: !escape
    });

    // Call the function again
    return render(name, data, escape);
}

function exists(name) {
    if (cache[name]) {
        return true;
    }

    return fs.existsSync(path.join(templatesDir, name));
}

module.exports = {
    render: render,
    exists: exists
};

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.6.3 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.6.2 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.6.1 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.6 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.19 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.18 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.17 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.16 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.15 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.14 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.13 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.12 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.11 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.10 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.9 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.8 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.7 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.6 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.5 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.5.4 node_modules/bower/lib/util/template.js