JSPM

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

Cache Pug templates for Lad/Koa/Express/Connect

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.

Table of Contents

Install

npm:

npm install cache-pug-templates

yarn:

yarn add cache-pug-templates

Usage

Basic

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

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

const cache = CachePugTemplates({ views });
cache.start();

Koa

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

const app = new Koa();

// 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, () => {
  const cache = new CachePugTemplates({ app, views });
  cache.start();
});

Express

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

const app = express();

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

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

app.listen(3000, () => {
  const cache = new CachePugTemplates({ app, views });
  cache.start();
});

Custom Callback

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

The argument queuedFiles is an Array of filenames that have been queued to be cached.

// ...

app.listen(3000, () => {
  const cache = new CachePugTemplates({ app });
  cache.start((err, queuedFiles) => {
    if (err) throw err;
    console.log(`successfully queued (${queuedFiles.length}) files`);
    setTimeout(() => {
      console.log(`pug cached (${Object.keys(pug.cache).length}) files`);
    }, 5000);
  });
});

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

// ...

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

app.listen(3000, () => {
  const cache = new CachePugTemplates({ app, views });
  cache.start((err, queuedFiles) => {
    if (err) throw err;
    console.log(`successfully queued (${queuedFiles.length}) files`);
    setTimeout(() => {
      console.log(`pug cached (${Object.keys(pug.cache).length}) files`);
    }, 5000);
  });
});

By default this callback simply throws 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