Sha256: e24a8dc02352fcc72bb8af292a2c623011dc7712ede4a374e058009212fa8924

Contents?: true

Size: 993 Bytes

Versions: 7

Compression:

Stored size: 993 Bytes

Contents

var path = require('path');
var fs = require('graceful-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

7 entries across 7 versions & 1 rubygems

Version Path
entangled-0.0.16 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.15 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.14 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.13 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.12 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.11 spec/dummy/public/node_modules/bower/lib/util/template.js
entangled-0.0.10 spec/dummy/public/node_modules/bower/lib/util/template.js