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.3.21 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.20 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.19 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.18 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.17 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.16 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.15 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.14 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.13 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.12 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.11g node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.10 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.9 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.8 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.7 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.6 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.5 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.4 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.3 node_modules/bower/lib/util/template.js
trusty-festivity-extension-2.3.2 node_modules/bower/lib/util/template.js