dead-simple-string-interpolation
v0.0.3
Published
Feature-free string interpolation library
Downloads
2
Readme
dead-simple-string-interpolation
As simple as it gets. No logic, no format specifiers, no compilation, no features outside of putting one string in another. Not intended for use in HTML or any other context where code injection is a relevant concern.
import interpolate from 'dead-simple-string-interpolation'
const result = interpolate('The {{ animal.name }} jumped over the {{ satellite }}', {
animal: { name: 'cow' },
satellite: 'moon',
})
// result === 'The cow jumped over the moon'
Interpolation placeholders consist of {{ }}
braces enclosing a series of one or more valid JavaScript identifiers (i.e. alphanumeric plus _$
) separated by dots.
All values read in the template must be present in the data; an exception will be raised otherwise:
interpolate('{{ firstName }} {{ lastName }}', { firstName: 'Don' })
// Error: lastName doesn't exist
FAQ
How do I escape?
There is no escape. If you need your output string to contain the text {{
, you can pass it in a data item:
const result = interpolate(
'Check out my ASCII art of two pairs of bull horns: {{ art }}',
{ art: '{{' }
)
// result === 'Check out my ASCII art of two pairs of bull horns: {{'
What about numbers, booleans, null
/undefined
, etc.?
They're not strings, so this library doesn't handle them and will throw an exception if you pass them. If you want your empty values to appear as empty strings in the output, or otherwise want non-string values to appear in the output in some stringified form, you'll have to put them in that form yourself before passing them.