You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

25 lines
523 B

const assert = require('assert')
module.exports = maxstache
// Minimalist mustache template replacement
// (str, obj) -> null
function maxstache (str, ctx) {
ctx = ctx || {}
assert.equal(typeof str, 'string')
assert.equal(typeof ctx, 'object')
const tokens = str.split(/\{\{|\}\}/)
const res = tokens.map(parse(ctx))
return res.join('')
}
// parse a token
// obj -> (str, num) -> str
function parse (ctx) {
return function parse (token, i) {
if (i % 2 === 0) return token
return ctx[token]
}
}