forked from lix-project/lix-website
33 lines
746 B
TypeScript
33 lines
746 B
TypeScript
|
/**
|
||
|
Simple micro templating.
|
||
|
|
||
|
@param template - Text with placeholders for `data` properties.
|
||
|
@param data - Data to interpolate into `template`.
|
||
|
|
||
|
@example
|
||
|
```
|
||
|
import pupa = require('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}}', ['<br>🦄</br>', '<i>🐮</i>']);
|
||
|
//=> 'I like <br>🦄</br> and <i>🐮</i>'
|
||
|
```
|
||
|
*/
|
||
|
declare function pupa(
|
||
|
template: string,
|
||
|
data: unknown[] | {[key: string]: any}
|
||
|
): string;
|
||
|
|
||
|
export = pupa;
|