njk.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. var nunjucks = require('nunjucks')
  2. var TerraformError = require("../../error").TerraformError
  3. var PartialTag = require('../../helpers/partial-nunjucks.js')
  4. module.exports = function(fileContents, options){
  5. return {
  6. compile: function(){
  7. return function(locals) {
  8. var env = nunjucks.configure(options.basedir)
  9. env.addExtension('LocalPartial', new PartialTag(locals))
  10. var template = nunjucks.compile(fileContents.toString(), env)
  11. return template.render(locals)
  12. }
  13. },
  14. parseError: function(error){
  15. var arr = error.message.split("\n")
  16. var path_arr = arr[0].split(":")
  17. error.lineno = parseInt(error.lineno || path_arr[path_arr.length -1] || -1)
  18. error.message = arr[arr.length - 1]
  19. error.name = error.name
  20. error.source = "NUNJUCKS"
  21. error.dest = "HTML"
  22. error.filename = error.path || options.filename
  23. error.stack = fileContents.toString()
  24. return new TerraformError(error)
  25. }
  26. }
  27. }