piwi/grunt-nunjucks-render

View on GitHub
lib/render-string.js

Summary

Maintainability
A
35 mins
Test Coverage
/**
 * grunt-nunjucks-render
 * https://github.com/piwi/grunt-nunjucks-render
 *
 * Copyright (c) 2015 Pierre Cassat
 * Licensed under the Apache 2.0 license.
 */

'use strict';

// node/external libs
var nunjucks    = require('nunjucks');
var nlib        = require('nunjucks/src/lib');

// nunjucksRenderString ( str , data , options , nunjucks_env , grunt )
module.exports = function nunjucksRenderString(str, data, options, nunjucks_env, grunt)
{
    data    = data || {};
    options = options || {};
    grunt   = grunt || require('grunt');
    var env = nunjucks_env || nunjucks.configure();

    var result;
    grunt.verbose.write('Parsing string of length ' + str.length + ' ...');
    if (options.asFunction) {
        result = nunjucks.precompileString(str, {
            asFunction: true,
            env:        env,
            data:       data
        });
    } else {
        result = env.renderString(str, data);
    }

    grunt.verbose.ok();
    return result;
};