Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gboutte/nestjs-hbs

A library that allow you tu use handlebar template to generate HTML inside a wrapper for nestjs.
https://github.com/gboutte/nestjs-hbs

handlebars nestjs

Last synced: about 2 months ago
JSON representation

A library that allow you tu use handlebar template to generate HTML inside a wrapper for nestjs.

Awesome Lists containing this project

README

        

# Installation

```shell
npm install @gboutte/nestjs-hbs
```

# Configuration

```ts
@Module({
imports: [
HandlebarsModule.forRoot({
templateDirectory: 'templates',
compileOptions: {},
templateOptions: {},
})
],
controllers: [],
providers: [],
})
export class AppModule {}
```
| | Description |
|-------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| `templateDirectory` | This will define the folder where the templates files are located |
| `compileOptions` | The templates options can be found on: https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access |
| `templateOptions` | The compile options can be found on https://handlebarsjs.com/api-reference/compilation.html#handlebars-compile-template-options |
| `helpers` | An array of helpers to add in handlebars, each helpers has a property `name` and `fn` |

# Usage

You can use the `HandlebarsService`, there is currently two methods

| | Description | Parameters |
|------------|----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| renderFile | This will render a handlebars template (located in the template folder previously defined), and will return the rendered string. | - `file`: the template file to render
- `parameters`: an array of parameters that will be user inside the template |
| render | This will render a template string using handlebars | - `html`: the template
- `parameters`: an array of parameters that will be user inside the templatestring |
Here is an example
```ts
@Controller()
export class AppController {
constructor(private readonly hbsService: HandlebarsService) {}

@Get()
async getTest() {
return this.hbs.renderFile('hello.hbs', { name: 'John Doe'});
}
}
```