UNPKG

piral-cli-webpack5

Version:

Provides debug and build capabilities for pilets and Piral instances using Webpack v5.

83 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLocal = isLocal; exports.extractParts = extractParts; exports.getTemplates = getTemplates; exports.replaceEntries = replaceEntries; exports.setEntries = setEntries; function isLocal(path) { if (path) { if (path.startsWith(':')) { return false; } else if (path.startsWith('http:')) { return false; } else if (path.startsWith('https:')) { return false; } else if (path.startsWith('data:')) { return false; } return true; } return false; } function extractParts(content) { const sheets = content('link[href][rel=stylesheet]') .filter((_, e) => isLocal(e.attribs.href)) .remove() .toArray(); const scripts = content('script[src]') .filter((_, e) => isLocal(e.attribs.src)) .remove() .toArray(); const files = []; for (const sheet of sheets) { files.push(sheet.attribs.href); } for (const script of scripts) { files.push(script.attribs.src); } return files; } function getTemplates(entry) { if (typeof entry === 'string') { return getTemplates([entry]); } else if (Array.isArray(entry)) { return entry.filter((e) => e.endsWith('.html')); } else if (typeof entry !== 'function') { return Object.values(entry).flatMap((value) => getTemplates(value)); } return []; } function replaceEntries(existingEntries, oldEntry, newEntries) { for (let i = 0; i < existingEntries.length; i++) { if (existingEntries[i] === oldEntry) { existingEntries.splice(i, 1, ...newEntries); break; } } } function setEntries(config, template, entries) { if (typeof config.entry === 'string') { config.entry = entries; } else if (Array.isArray(config.entry)) { replaceEntries(config.entry, template, entries); } else if (typeof config.entry !== 'function') { Object.keys(config.entry).forEach((key) => { const value = config.entry[key]; if (value === template) { config.entry[key] = entries; } else if (Array.isArray(value)) { replaceEntries(value, template, entries); } }); } } //# sourceMappingURL=helpers.js.map