UNPKG

1.07 kBJavaScriptView Raw
1const path = require('path');
2const Asset = require('../Asset');
3const localRequire = require('../utils/localRequire');
4
5class PugAsset extends Asset {
6 constructor(name, options) {
7 super(name, options);
8 this.type = 'html';
9 this.hmrPageReload = true;
10 }
11
12 async generate() {
13 const pug = await localRequire('pug', this.name);
14 const config =
15 (await this.getConfig(['.pugrc', '.pugrc.js', 'pug.config.js'])) || {};
16
17 const compiled = pug.compile(this.contents, {
18 compileDebug: false,
19 filename: this.name,
20 basedir: path.dirname(this.name),
21 pretty: config.pretty || false,
22 templateName: path.basename(this.basename, path.extname(this.basename)),
23 filters: config.filters,
24 filterOptions: config.filterOptions,
25 filterAliases: config.filterAliases
26 });
27
28 if (compiled.dependencies) {
29 for (let item of compiled.dependencies) {
30 this.addDependency(item, {
31 includedInParent: true
32 });
33 }
34 }
35
36 return compiled(config.locals);
37 }
38}
39
40module.exports = PugAsset;