html-validate-vue-webpack-plugin
Version:
extract html-validate rules from Vue single file components
27 lines (26 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HtmlValidateVueWebpackLoader = void 0;
const loader_utils_1 = require("./loader-utils");
function HtmlValidateVueWebpackLoader(source) {
try {
const nameFromComponent = (0, loader_utils_1.getComponentName)(source);
const nameFromResource = (0, loader_utils_1.getFileName)(this.resource);
const componentName = (0, loader_utils_1.toKebabCase)(nameFromComponent || nameFromResource);
const blockContent = (0, loader_utils_1.getHtmlValidateContent)(source);
// ? Parse and stringify htmlvalidate content so we know it is a valid JSON.
JSON.parse(blockContent);
const rootRules = (0, loader_utils_1.getHtmlValidateRootRules)(blockContent, componentName);
const slotRules = (0, loader_utils_1.getHtmlValidateSlotRules)(blockContent, componentName);
const rules = (0, loader_utils_1.prettify)(Object.assign(Object.assign({}, rootRules), slotRules));
this.emitFile(`${componentName}.json`, rules, undefined);
return `module.exports = ${rules};`;
}
catch (error) {
/* eslint-disable-next-line no-console */
console.error("HtmlValidateVueWebpackLoader received the following error:", error);
return "module.exports = {};";
}
}
exports.HtmlValidateVueWebpackLoader = HtmlValidateVueWebpackLoader;
exports.default = HtmlValidateVueWebpackLoader;