Spaces:
Sleeping
Sleeping
| ; | |
| // vue compiler module for transforming `<tag>:<attribute>` to `require` | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| const utils_1 = require("./utils"); | |
| const defaultOptions = { | |
| audio: 'src', | |
| video: ['src', 'poster'], | |
| source: 'src', | |
| img: 'src', | |
| image: ['xlink:href', 'href'], | |
| use: ['xlink:href', 'href'] | |
| }; | |
| exports.default = (userOptions, transformAssetUrlsOption) => { | |
| const options = userOptions | |
| ? Object.assign({}, defaultOptions, userOptions) | |
| : defaultOptions; | |
| return { | |
| postTransformNode: (node) => { | |
| transform(node, options, transformAssetUrlsOption); | |
| } | |
| }; | |
| }; | |
| function transform(node, options, transformAssetUrlsOption) { | |
| for (const tag in options) { | |
| if ((tag === '*' || node.tag === tag) && node.attrs) { | |
| const attributes = options[tag]; | |
| if (typeof attributes === 'string') { | |
| node.attrs.some(attr => rewrite(attr, attributes, transformAssetUrlsOption)); | |
| } | |
| else if (Array.isArray(attributes)) { | |
| attributes.forEach(item => node.attrs.some(attr => rewrite(attr, item, transformAssetUrlsOption))); | |
| } | |
| } | |
| } | |
| } | |
| function rewrite(attr, name, transformAssetUrlsOption) { | |
| if (attr.name === name) { | |
| const value = attr.value; | |
| // only transform static URLs | |
| if (value.charAt(0) === '"' && value.charAt(value.length - 1) === '"') { | |
| attr.value = utils_1.urlToRequire(value.slice(1, -1), transformAssetUrlsOption); | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |