UNPKG

less

Version:
31 lines (28 loc) 1.19 kB
/** @param {string} href */ export function extractId(href) { return href.replace(/^[a-z-]+:\/+?[^/]+/, '') // Remove protocol & domain .replace(/[?&]livereload=\w+/, '') // Remove LiveReload cachebuster .replace(/^\//, '') // Remove root / .replace(/\.[a-zA-Z]+$/, '') // Remove simple extension .replace(/[^.\w-]+/g, '-') // Replace illegal characters .replace(/\./g, ':'); // Replace dots with colons(for valid id) } /** * @param {Record<string, *>} options * @param {HTMLElement | null} tag */ export function addDataAttr(options, tag) { if (!tag) {return;} // in case of tag is null or undefined for (const opt in tag.dataset) { if (Object.prototype.hasOwnProperty.call(tag.dataset, opt)) { if (opt === 'env' || opt === 'dumpLineNumbers' || opt === 'rootpath' || opt === 'errorReporting') { options[opt] = tag.dataset[opt]; } else { try { options[opt] = JSON.parse(tag.dataset[opt]); } catch (_) {} } } } }