npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sync-views

v0.3.1

Published

Synchronous template rendering for node.js

Downloads

7

Readme

sync-views

Build Status Coverage Status

Template rendering consolidation library. This module is a fork of co-views. You probably should use co-views except you have to render templates synchronously.

Notes

  • To use React, both react and react-dom need to be installed. Also react component needs to be transpiled beforehand.

Supported template engines

Installation

$ npm install sync-views

And install whichever engine(s) you use:

$ npm install react react-dom jade

Options

  • map an object mapping extension names to engine names [{}]. If not provided, default to [{ jade: 'jade', js: 'react' }]
  • default default extension name to use when missing [html]
  • cache cached compiled functions [NODE_ENV != 'development']

map

For example if you wanted to use "react" for .js files you would simply pass:

{ map: { js: 'react' } }

default

Set the default template extension when none is passed to the render function. This defaults to "jade". For example if you mostly use Jade, then you'd likely want to assign this to:

{ default: 'jade' }

Allowing you to invoke render('user') instead of render('user.jade').

cache

When true compiled template functions will be cached in-memory, this prevents subsequent disk i/o, as well as the additional compilation step that most template engines perform. By default this is enabled when the NODE_ENV environment variable is anything but "development", such as "stage" or "production".

Example

Render several users with different template engines in parallel. View lookup is performed relative to the ./examples directory passed, and the "react" engine is mapped to ".js" files.

var views = require('sync-views');

var render = views('examples', {
  map: { js: 'react' }
});

var html = render('user', { user: tobi });
console.log(html);

App-wide views

Dependending on your choice of application structure, you may wish to share these same settings between all of your application, instead of constantly initializing sync-views. To do this simply create a views.js module and export the render function returned:

var views = require('sync-views');

module.exports = views('views', {
  map: {
    js: 'react',
  }
});