Need help with pupa?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sindresorhus
299 Stars 24 Forks MIT License 22 Commits 3 Opened issues

Description

Simple micro templating

Services available

!
?

Need anything else?

Contributors list

# 216
exec
test-fr...
nextjs
messeng...
17 commits
# 98,173
jupyter...
CSS
HTML
jupyter
1 commit
# 5,527
TypeScr...
typescr...
iterm2
exec
1 commit
# 6,551
chalk
exec
vuejs2
sketch-...
1 commit
# 209,585
CSS
TypeScr...
Node.js
Git
1 commit
# 75,703
vala
phantom...
React
undo
1 commit

pupa

Simple micro templating

Useful when all you need is to fill in some placeholders.

Install

$ npm install pupa

Usage

import pupa from 'pupa';

pupa('The mobile number of {name} is {phone.mobile}', { name: 'Sindre', phone: { mobile: '609 24 363' } }); //=> 'The mobile number of Sindre is 609 24 363'

pupa('I like {0} and {1}', ['🦄', '🐮']); //=> 'I like 🦄 and 🐮'

// Double braces encodes the HTML entities to avoid code injection. pupa('I like {{0}} and {{1}}', ['
🦄', '🐮']); //=> 'I like <br>🦄</br> and <i>🐮</i>'

API

pupa(template, data, options?)

template

Type:

string

Text with placeholders for

data
properties.

data

Type:

object | unknown[]

Data to interpolate into

template
.

options

Type:

object
ignoreMissing

Type:

boolean
\ Default:
false

By default, Pupa throws a

MissingValueError
when a placeholder resolves to
undefined
. With this option set to
true
, it simply ignores it and leaves the placeholder as is.
transform

Type:

((data: {value: unknown; key: string}) => unknown) | undefined
(default:
({value}) => value
)

Performs arbitrary operation for each interpolation. If the returned value was

undefined
, it behaves differently depending on the
ignoreMissing
option. Otherwise, the returned value will be interpolated into a string (and escaped when double-braced) and embedded into the template.

MissingValueError

Exposed for instance checking.

FAQ

What about template literals?

Template literals expand on creation. This module expands the template on execution, which can be useful if either or both template and data are lazily created or user-supplied.

Related

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.