New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

temper

Package Overview
Dependencies
Maintainers
5
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

temper

Temper compiles template for client and server side usage.

  • 0.3.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
39
increased by85.71%
Maintainers
5
Weekly downloads
 
Created
Source

Temper

From bigpipe.ioVersion npmBuild StatusDependenciesCoverage Status

Temper is a small module that compiles your templates for server-side usage and client-side usage through one single interface. This makes it easy to create isomorphic JavaScript applications, which is awesome.

The following template engines are supported:

  • react-jsx, automatically discovered by using the .jsx extension.
  • jade, automatically discovered by using the .jade extension.
  • ejs, automatically discovered by using the .ejs extension.
  • hogan.js, automatically discovered by using the .mustache extension.
  • mustache, automatically discovered by using the .mustache extension.
  • handlebars, automatically discovered by using the .mustache extension.
  • html, automatically discovered by using the .html extension.

As you can see from the list above, we support multiple version engines for the mustache extension. You can supply your preference through the API. If no preference is given it will iterate over the template engines and the one that is successfully required will be used automatically.

Installation

Temper is distributed through npm:

npm install --save temper

Usage

Temper doesn't depend on any template engines so you need to install these your self. For these examples I'm going to assume that you have jade installed as template engine. Run npm install --save jade if this is not the case.

Initialising temper is quite simple:

'use strict';

var Temper = require('temper')
  , temper = new Temper();

The Temper constructor allows the following options:

  • cache should we cache the compiled template, this defaults to true if NODE_ENV is set to production. You usually want to have this disabled during development so you can see the changes in your template without having to restart your node process.

The following methods can be used to interact with temper:

temper.fetch(file, [engine])

The temper.fetch method allows you to pre-compile your template file. This is advised as requiring modules and reading files is done synchronous. Simply call this method with a file location and an option engine argument.

Temper will try it's best to automatically discover template engines based on file extensions, but sometimes this is impossible. There are tons of mustache compatible template engines and we cannot figure out which one you want based on the extension. But for template languages such as jade it's quite simple.

var data = temper.prefetch('/file/path/to/template.jade');
var data = temper.prefetch('/file/path/to/template.mustache', 'hogan.js');

Data structure

The fetch method returns an JavaScript object that contains the following properties:

library
This is an optional property. Some of the supported engines require a helper library to be included at the client-side. If this property is not empty you should include this string together with your client side template on your page.
client
The client-side compatible version of your given template. This is already converted to a string for your convenience.
server
The server-side compatible version of your given template. It's a function that's ready to be used.
engine
The name of the template engine that was used to compile your template.
hash
An object that contains the hashes for the library, client and server.

The interface

The resulting compiled template have a uniform interface. It's a function that accepts the template data as first argument and returns the generated template.

var template = temper.fetch('/file/path/to/template.jade')
  , html = template({ foo: 'bar' });

console.log(html);

License

MIT

Keywords

FAQs

Package last updated on 06 Mar 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc