hensei-web/node_modules/htmlnano/lib/htmlnano.js
2020-09-11 06:44:42 -07:00

64 lines
No EOL
1.8 KiB
JavaScript

"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;