"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _posthtml = _interopRequireDefault(require("posthtml")); var _safe = _interopRequireDefault(require("./presets/safe")); var _ampSafe = _interopRequireDefault(require("./presets/ampSafe")); var _max = _interopRequireDefault(require("./presets/max")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function htmlnano() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var preset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _safe["default"]; return function minifier(tree) { options = Object.assign({}, preset, options); var promise = Promise.resolve(tree); var _loop = function _loop() { var moduleName = _Object$keys[_i]; if (!options[moduleName]) { // The module is disabled return "continue"; } if (_safe["default"][moduleName] === undefined) { throw new Error('Module "' + moduleName + '" is not defined'); } var module = require('./modules/' + moduleName); promise = promise.then(function (tree) { return module["default"](tree, options, options[moduleName]); }); }; for (var _i = 0, _Object$keys = Object.keys(options); _i < _Object$keys.length; _i++) { var _ret = _loop(); if (_ret === "continue") continue; } return promise; }; } htmlnano.process = function (html, options, preset, postHtmlOptions) { return (0, _posthtml["default"])([htmlnano(options, preset)]).process(html, postHtmlOptions); }; htmlnano.presets = { safe: _safe["default"], ampSafe: _ampSafe["default"], max: _max["default"] }; var _default = htmlnano; exports["default"] = _default;