cache-pug-templates
Version:
Cache Pug templates for Lad/Koa/Express/Connect
155 lines (99 loc) • 4.09 kB
Markdown
[](https://travis-ci.org/ladjs/cache-pug-templates)
[](https://codecov.io/gh/ladjs/cache-pug-templates)
[](https://github.com/sindresorhus/xo)
[](https://github.com/prettier/prettier)
[](https://lass.js.org)
[](<>)
> Cache [Pug][] templates for [Lad][]/[Koa][]/[Express][]/[Connect][].
* [Install](
* [Usage](
* [Basic](
* [Koa](
* [Express](
* [Options](
* [Debugging](
* [Contributors](
* [License](
[][]:
```sh
npm install cache-pug-templates
```
[][]:
```sh
yarn add cache-pug-templates
```
```js
const path = require('path');
const CachePugTemplates = require('cache-pug-templates');
const views = path.join(__dirname, 'views');
const cache = new CachePugTemplates({ views });
cache.start();
```
```js
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();
});
```
```js
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();
});
```
* `app` (Object) - an instance of Koa, Express, or Connect
* `views` (String or Array) - a file directory path (or an Array of file directory paths) (if you pass an Express app instance as the `app` option, this will be automatically populated to your applications `views` configuration option via `app.get('views')`)
* `logger` (Object) - a logger, defaults to `console` (we recommend using [Cabin][] for your logger)
* `callback` (Function) - defaults to `false` (no operation), but if a function is provided then it will be invoked with two arguments, `file` (String) and `template` (Function)
* `cache` (Boolean) - defaults to `true`, whether or not to cache templates automatically if `cache.start()` is called (useful if you are writing tests or have a custom approach using `callback` function)
* `concurrency` (Number) - number of concurrent files that can be cached per `interval` in parallel (defaults to `1`)
* `interval` (Number) - duration of time in (milliseconds) to limit concurrency for (e.g. `1 cached file every 1000ms` is the default), this value's default is `1000`
## Debugging
If you want to check what the cache state is at anytime:
```js
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));
```
| Name | Website |
| -------------- | -------------------------- |
| **Nick Baugh** | <http://niftylettuce.com/> |
[](LICENSE) © [Nick Baugh](http://niftylettuce.com/)
[]: https://www.npmjs.com/
[]: https://yarnpkg.com/
[]: https://pugjs.org
[]: https://lad.js.org
[]: http://koajs.com
[]: https://expressjs.com/
[]: https://github.com/senchalabs/connect
[]: https://cabinjs.com