0.1.3 • Published 5 years ago

mustache-async v0.1.3

Weekly downloads
22
License
MIT
Repository
github
Last release
5 years ago

mustache-async.js - Logic-less {{mustache}} templates with async view function Support

Build Status Known Vulnerabilities

mustache-async.js is a fork of the mustache.js template system, with async view function support. If you don't need to use async functions to generate substitution values, you should simply use mustache.js which supports older browsers and older JS versions.

Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object. Visit the manpage for the templating syntax.

Usage

mustache-async.js supports regular functions, async functions and Promises. Example:

const view = {
    firstName: 'Art',
    lastName: 'Vandelay',
    fullName: function() {
        return this.firstName + ' ' + this.lastName;
    },
    profession: async () => new Promise(resolve => setTimeout(() => resolve('Architect'), 10))
}
const template = 'My name is {{fullName}}, I am an {{profession}}';
console.log(await Mustache.render(template, view));
//My name is Art Vandelay, I am an Architect

In this example, the Mustache.render function takes two parameters: 1) the mustache template and 2) a view object that contains the data and code needed to render the template.

Install

You can get Mustache via npm.

$ npm install mustache-async --save

Contributing

mustache-async.js is a new project, any contribution are welcome! Visit the issues page

API

Following is an rtype signature of the most commonly used functions.

Mustache.render(
  template            : String,
  view                : Object,
  partials?           : Object,
  tags = ['{{', '}}'] : Tags,
) => String

Mustache.parse(
  template              : String,
  tags = ['{{', '}}']   : Tags,
) => Token[]

interface Token [String, String, Number, Number, Token[]?, Number?]

interface Tags [String, String]

More info and API reference on mustache.js github page