in packages/docpack-page-generator/lib/plugin.js [89:131]
PageGeneratorPlugin.prototype.apply = function(compiler) {
var plugin = this;
var template = this.config.template;
var compilerName = PageGeneratorPlugin.getCompilerNameFor(template);
var assetFilename = CONST.TEMPLATE_ASSET_NAME;
compiler.plugin(Docpack.HOOKS.INIT, this.configure.bind(this));
compiler.plugin('compilation', function(compilation) {
compilation.plugin(Docpack.HOOKS.BEFORE_EXTRACT, function(sources, done) {
if (plugin.renderer) {
done(null, sources);
return;
}
tools.TemplateCompiler(compilation, {
template: template,
name: compilerName,
output: {
filename: assetFilename
}
})
.run()
.then(function (fn) {
plugin.renderer = fn;
done(null, sources);
});
});
compilation.plugin(Docpack.HOOKS.BEFORE_GENERATE, function (sources, done) {
plugin.generate(compilation, sources);
done(null, sources);
});
compilation.plugin(Docpack.HOOKS.GENERATE, function (sources, done) {
// TODO: refactor this ugly caching
plugin._assetsByChunkName = tools.getAssetsByChunkName(compilation);
plugin.generatePagesContent(compilation, sources);
done(null, sources);
});
});
};