Skip to content

parseTemplate

Parses a template string template and replaces placeholders with actual values based on a parser.

The parser can be either a function or a non-function object. If the parser is a function, it will be called with the matched pattern string as an argument and should return the actual value for replacement. If the parser is a non-function object, getByPath will be used with the parser and the matched pattern string as arguments. The return value will replace the pattern.

If the actual value for replacement is undefined or null, the pattern string will be preserved.

Optional options can be used to set the start and end delimiters of the pattern string.

Added in v0.0.2

Usage

ts
import { parseTemplate } from 'parsnip-kit'

const template0 = 'Hello, {name}! Your balance is {balance}.'
parseTemplate(template0, { name: 'Alice', balance: '$100' })
// 'Hello, Alice! Your balance is $100.'
parseTemplate(template0, (pattern: string) => data[pattern])
// 'Hello, Alice! Your balance is $100.'

const template1 = 'Are you called {info.name}?'
parseTemplate(template1, { info: { name: 'Administrator' } })
// 'Are you called Administrator?'

const template2 = 'Dear User [username], thank you for registering on our website.'
parseTemplate(template2, { username: 'John Titor' }, { start: '[', end: ']' })
// 'Dear User John Titor, thank you for registering on our website.'

API

Type Parameter

Arguments

ArgTypeOptionalDefaultDescription
templatestringfalseundefinedThe template to replace
parserObjectLike | ((pattern: string) => string | undefined | null)falseundefinedTo replace placeholders with actual value
options{ start?: string, end?: string }true{}To set the delimiters
options.startstringtrue'{'To set the start delimiters
options.endstringtrue'}'To set the end delimiters

Returns

Type
string

Reference

ObjectLike