UNPKG

@entr/html-beautify-webpack-plugin

Version:

Adapter for beautifyjs as webpack plugin, chained with HtmlWebpackPlugin

60 lines (46 loc) 2.24 kB
"use strict"; require("core-js/modules/es.promise"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin")); var _jsBeautify = require("js-beautify"); var _lodash = require("lodash"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function processHtml(htmlPluginData, beautifyConfig) { htmlPluginData.html = (0, _jsBeautify.html)(htmlPluginData.html, beautifyConfig); } class HtmlBeautifyPlugin { constructor(userOptions = {}) { this.pluginName = 'HtmlBeautifyPlugin'; const defaultOptions = { beautifyOptions: { indent_size: 4, indent_with_tabs: false, html: { end_with_newline: true, indent_inner_html: true, preserve_newlines: true } } }; this.options = (0, _lodash.merge)({}, defaultOptions, userOptions); } apply(compiler) { const beautifyOptions = this.options.beautifyOptions; const pluginName = this.pluginName; compiler.hooks.compilation.tap(pluginName, compilation => _htmlWebpackPlugin.default.getHooks(compilation).afterTemplateExecution.tapPromise(pluginName, /*#__PURE__*/function () { var _ref = _asyncToGenerator(function* (htmlPluginData) { return processHtml(htmlPluginData, beautifyOptions); }); return function (_x) { return _ref.apply(this, arguments); }; }())); } } var _default = HtmlBeautifyPlugin; exports.default = _default;