/golang-template

basic golang template parsing in js

Primary LanguageTypeScriptMIT LicenseMIT

golang-template npm CircleCI coverage status

Typescript library that handles basic functions of the golang template syntax.

Install

npm install @ctrl/golang-template

Use

import { parse } from '@ctrl/golang-template';

const keywords = '123';
parse('{{ if .keywords }}{{ .keywords }}!!{{else}}nothing{{end}}', { keywords });
// '123!!'

Supported template functions

variables

`{{ .foo }}`

if..else

`{{ if .keywords }}{{ .keywords }}{{else}}nothing{{end}}`

join

const categories = ['1', '2', '3'];
parse('{{ join .categories "," }}', { categories });
// 1,2,3

range

const categories = ['1', '2', '3'];
parse('{{ range .categories }}{{.}};{{end}}', { categories });
// 1;2;3;

re_replace

const categories = ['1', '2', '3'];
parse('{{ re_replace .category "[^a-zA-Z0-9]+" "%" }}', { categories });
// 1;2;3;

index

const data = {
  object: {
    value: 'foo'
  },
  array: [
    'bar'
  ]
}
parse('{{ index .object "value" }}', data);
//foo
parse('{{ index .array 0 }}', data);
//foo

Warnings

This is probably not safe for user input.