Micro templating engine for strings only.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dist fix(prop): last commit broke the package Dec 13, 2017
example chore(rollup): add builds support Dec 2, 2017
test
.editorconfig
.gitignore
.npmignore
.travis.yml
CHANGELOG.md
index.js
package-lock.json
package.json
readme.md
rollup.config.js

readme.md

Pope

Coverage Status

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.

Upgrading from 1.x.x The version 2.0.x has a breaking change, where pope is not the default export, instead exported as a property on the object.

Earlier


const pope = require('pope')

Now


const { pope } = require('pope')

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: '.....'
}