UNPKG

html-validate-vue-webpack-plugin

Version:

extract html-validate rules from Vue single file components

27 lines (26 loc) 1.45 kB
"use strict"; 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;