JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 106
  • Score
    100M100P100Q96922F
  • License MIT

Cache Pug templates for Lad/Koa/Express/Connect with Redis

Package Exports

  • cache-pug-templates

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cache-pug-templates) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

cache-pug-templates

build status code coverage code style styled with prettier made with lass license

Cache Pug templates for Lad/Koa/Express/Connect with Redis

Table of Contents

Install

npm:

npm install cache-pug-templates

yarn:

yarn add cache-pug-templates

Usage

Basic

const path = require('path');
const redis = require('redis');
const cachePugTemplates = require('cache-pug-templates');

const redisClient = redis.createClient();

const views = path.join(__dirname, 'views');

cachePugTemplates(redisClient, views);

Koa

const path = require('path');
const redis = require('redis');
const Koa = require('koa');
const cachePugTemplates = require('cache-pug-templates');

const app = new Koa();
const redisClient = redis.createClient();

// optional (e.g. if you want to cache in non-production)
// app.cache = true;

// note that koa requires us to specify a
// path name for the views directory
const views = path.join(__dirname, 'views');

app.listen(3000, () => {
  cachePugTemplates(app, redisClient, views);
});

Express

const path = require('path');
const redis = require('redis');
const express = require('express');
const cachePugTemplates = require('cache-pug-templates');

const app = express();
const redisClient = redis.createClient();

// optional (by default express defaults to `./views`)
// app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'pug');

app.listen(3000, () => {
  cachePugTemplates(app, redisClient, views);
});

Custom Callback

You can also pass an optional callback function with arguments err and cached.

The argument cached is an Array of filenames that have been cached (from Object.keys(pug.cache)).

// ...

app.listen(3000, () => {
  cachePugTemplates(app, redisClient, (err, cached) => {
    if (err) throw err;
    console.log(`successfully cached (${cached.length}) files`);
  });
});

Note that with Koa you'll need to pass the views argument as well:

// ...

const views = path.join(__dirname, 'views');

app.listen(3000, () => {
  cachePugTemplates(app, redisClient, views, (err, cached) => {
    if (err) throw err;
    console.log(`successfully cached (${cached.length}) files`);
  });
});

By default this callback simply console.error the err (if any).

Debugging

If you want to check what the cache state is at anytime:

const pug = require('pug');

// ...

// get everything:
console.log('pug.cache', pug.cache);

// just get the file names:
console.log('pug cached files', Object.keys(pug.cache));

Contributors

Name Website
Nick Baugh http://niftylettuce.com/

License

MIT © Nick Baugh