# templatestringparser

> Process template strings

Latest version **1.1.0** (published 2019-07-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install templatestringparser
pnpm add templatestringparser
yarn add templatestringparser
bun add templatestringparser
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2019-07-24 |
| First published | 2019-07-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 12 |
| Author | Abdulsamii Ajala |
| Maintainers | jalasem |
| Keywords | string, template, email |

## Links

- npm: https://www.npmjs.com/package/templatestringparser
- Repository: https://github.com/jalasem/templatestringparser
- Homepage: https://github.com/jalasem/templatestringparser#readme
- Issues: https://github.com/jalasem/templatestringparser/issues
- npm.io page: https://npm.io/package/templatestringparser

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2019-07-24
- 1.0.5 — 2019-07-12
- 1.0.4 — 2019-07-12
- 1.0.3 — 2019-07-04
- 1.0.2 — 2019-07-04
- 1.0.1 — 2019-07-04
- 1.0.0 — 2019-07-04

## README

# templatestringparser
A package that helps you process template strings against values

## Features
- optional configuration of *openingbracket* and *closingbracket*
- supports single and multiple brackets like `{name}` `{{ name }}` `${name}` `$(name)` `<name>` `<name/>` `<>name</>` etc
- auto trim excess white space between key value and brackets
- parse deeply nested values e.g. `{profile.name}` `{address.street}` etc

## Usage
First, install the package using npm:
```
npm install -S templatestringparser
```
or
```
yarn add templatestringparser
```

Package can be used like so:

### REPL
```shell
$ npm install templatestring
$ node
```
```javascript
> console.log(require('templatestringparser')('Hi {name}, Welcome!', {name: 'Dave'}));
Hi Dave, Welcome!
```

### es5
```javascript
var templateParser = require('templatestringparser')

var template = 'Hello {name}, welcome to my Platform!'
console.log(templateParser(template, { name: 'Dave' })) // Hello Dave, Welcome to my Platform!
```

### es6 and later
```javascript
import templatestringparser as templateParser from 'templatestringparser'

const template = 'Hello {name}, welcome to my Platform!'
console.log(templateParser(template, { name: 'Dave' })) // Hello Dave, Welcome to my Platform!
```

<br />

### Features in Detail
#### `openingbracket` and `closingbracket`
Jump to [Configurations #1](#1-openingbracket-and-closingbracket)

#### auto `trim`
Jump to [Configurations #2](#2-trim)

#### parse deeply nested values
```javascript
var tsp = require('templatestringparser')

var template = 'Hello {profile.name}, welcome to my {profile.space}!'
template += ' I live at No.{profile.address.street.number} {profile.address.street.name},'
template += ' {profile.address.city}.'

var strObj = {
  profile: {
    name: 'Dave',
    space: 'World',
    address: {
      street: {
        number: 1,
        name: 'strictly'
      },
      city: 'boston'
    }
  }
}

console.log(tsp(template, strObj)) // Hello Dave, welcome to my World! I live at No.1 strictly, boston.
```

<br />

### Configurations

#### 1 openingbracket and closingbracket

By default *templatestringparser* uses single curly brackets<br />
`{` as openingbracket and<br />
`}` as closingbracket.

To override the default behavior, pass a 3rd argument of OBJECT TYPE specifying the *openingbracket* and *closingbracket*

```javascript
import templatestringparser as tsp from 'templatestringparser'

var template = 'Hello ${name}, welcome to my Platform!'

var strObj = {
  name: 'Dave'
}

var config = {
  openingbracket: '${', // some common examples '{','{{','(','<','<>'
  closingbracket: '}' // some common examples '}','}}',')','>','/>','</>'
}

console.log(tsp(template, strObj, config)) // Hello Dave, Welcome to my Platform!
```

#### 2 trim

The `trim` configuration will trim excess white space between key value and brackets.<br />
This is enabled by default. Use `{trim: false}` in configuration to disable auto trimming.

```javascript
import templatestringparser as tsp from 'templatestringparser'

var template = 'Hello {    name  }, welcome to my { space }!'

var strObj = {
  name: 'Dave',
  space: 'World'
}

var config = {
  trim: true
}

console.log(tsp(template, strObj, config)) // Hello Dave, Welcome to my World!
```

Keeping up to date
------------------
- [Follow me on Twitter](https://twitter.com/ajalaabdulsamii) for updates: [https://twitter.com/ajalaabdulsamii](https://twitter.com/ajalaabdulsamii)

---
_Source: https://npm.io/package/templatestringparser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
