| 123456789101112131415161718192021222324252627282930 |
- /** @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 (_) {}
- }
- }
- }
- }
|