pope
v3.0.0
Published
Zero dependency micro templating engine for strings only.
Downloads
36,483
Readme
Pope
Pope is a fast, minimal and micro template engine for strings only, it plays well where you want to embed micro templates inside your module.
Examples
string interpolation
const { pope } = require('pope')
pope('There are {{count}} emails in your inbox', { count:20 })
nested values
const { pope } = require('pope')
pope('My name is {{profile.name}} and age is {{profile.age}}', { profile: { name:'virk', age: 26 } })
arrays only
const { pope } = require('pope')
pope('There are {{0}} emails in your inbox', [20])
prop
Pulls the nested/flat values from an object. It is similar to lodash.get
method.
const { prop } = require('pope')
prop({ count:20 }, 'count') // 20
prop({profile: { name:'virk', age: 26 }}, 'profile.name') // virk
prop([20], '0') // 20
prop({profile: { validate: /^[A-Z][a-z]+/} }, 'profile.validate') // /^[A-Z][a-z]+/
Options
You can also pass an options object to define the interpolation behavior.
skipUndefined
Do not replace the undefined values with an empty string.
const { pope } = require('pope')
pope('There are {{0}} emails in your inbox', {}, {
skipUndefined: true
})
// returns - There are {{0}} emails in your inbox
throwOnUndefined
Throw exception when a undefined value is found. throwOnUndefined
gets priority over skipUndefined
if both are defined.
const { pope } = require('pope')
pope('Hello {{ username }}', {}, {
throwOnUndefined: true
})
// throws exception
{
message: 'Missing value for {{ username }}',
key: 'username',
code: 'E_MISSING_KEY',
stack: '.....'
}