function getResourceID(resourceName) { return new Promise((resolve) => { const observer = new PerformanceObserver((list) => { const entries = list.getEntriesByType("resource"); for (const entry of entries) { if (entry.name.endsWith(resourceName)) { observer.disconnect(); resolve(`${entry.name}/${entry.startTime}`); return; } } }); observer.observe({ entryTypes: ["resource"] }); }); } function getDocumentResourceID() { return new Promise((resolve) => { const observer = new PerformanceObserver((list) => { const entries = list.getEntriesByType("navigation"); if (entries.length > 0) { observer.disconnect(); const [entry] = entries; const { name, startTime } = entry; resolve(`${name}/${startTime}`); } }); observer.observe({ entryTypes: ["navigation"] }); }); }