https://github.com/willtpwise/parsetemplate
A simple library for parsing JS template strings
https://github.com/willtpwise/parsetemplate
Last synced: 6 months ago
JSON representation
A simple library for parsing JS template strings
- Host: GitHub
- URL: https://github.com/willtpwise/parsetemplate
- Owner: willtpwise
- Created: 2020-07-17T01:06:59.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T11:41:35.000Z (over 3 years ago)
- Last Synced: 2024-04-23T20:42:58.543Z (about 2 years ago)
- Language: TypeScript
- Size: 730 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Parse Template
> A very light weight library which allows you to process tokenised strings
Say you have a string like this:
```javascript
const input = 'Hello ${firstName}'
```
You can parse it like this:
```javascript
import { parseTemplate } from 'parse-template'
const meta = { firstName: 'Jess' }
parseTemplate(input, meta) // 'Hello Jess'
```
### Installing
```
npm i --save parse-template
```
## Features
### Object syntax
```javascript
const meta = { user: { firstName: 'Joe' } }
parseTemplate('Hello ${user.firstName}', meta) // 'Hello Joe'
```
### Array syntax
```javascript
const meta = { guests: [{ firstName: 'Alex'}] }
parseTemplate('Hello ${guests[0].firstName}', meta) // 'Hello Alex'
```
### Fallback syntax
```javascript
const meta = { nickName: null, firstName: 'Sam' }
parseTemplate('Hello ${nickname || firstName || "there"}', meta) // 'Hello Sam'
```
### Empty value
Empty values are replaced with an empty string
```javascript
const meta = { nickName: null }
parseTemplate('Hello ${nickname}', meta) // 'Hello '
```
### Undefined value
Undefined values are replaced with an empty string
```javascript
const meta = {}
parseTemplate('Hello ${nickname}', meta) // 'Hello '
```
### Object unwrapping
The resolved "meta" value must be either a string or a number, otherwise it is ignored. So objects and other non string/number values are ommitted
```javascript
const meta = { user: { nickName: 'Roger' } }
parseTemplate('Hello ${user}', meta) // 'Hello '
```
## Contributing
Thanks for the help :) Please fork this repo then submit a PR back into.
### Local Development
```
npm i
npm test
npm run build
```