UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

51 lines (50 loc) 1.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); function default_1(contents, context) { const loaderUtils = require("loader-utils"); const options = loaderUtils.getOptions(this); if (options) { Object.keys(options).forEach((key) => { //injectDefaultProperties(options[key]); let domProps = ["useValidator", "styles", "themeDefinition"].concat(options[key] || []); var elements = getElements(key, contents); elements.forEach((element) => { let newElement = element; domProps.forEach((propName) => { let propPattern = `\\s${propName}\\s\*\=`; var propResults = newElement.match(new RegExp(propPattern, "g")); if (propResults) { propResults.map(function (prop, propIndex) { newElement = newElement.replace(prop, ` domProps-${propName}=`); }); } }); contents = contents.replace(element, newElement); }); }); } return contents; } exports.default = default_1; function getElements(elementName, inputText) { var preElement = `<${elementName}`; var midElement = `</${elementName}`; var postElement = `>`; var preIndex, midIndex, postIndex; var index = 0; var length = inputText.length; var elements = []; while (index < length) { preIndex = inputText.indexOf(preElement, index); midIndex = inputText.indexOf(midElement, preIndex + 1); postIndex = inputText.indexOf(postElement, midIndex + 1); if (preIndex < 0 || midIndex < 0 || postIndex < 0) { break; } var partLength = postIndex - preIndex + 1; var part = inputText.substr(preIndex, partLength); elements.push(part); index = postIndex + 1; } return elements; }