// URL shim // Obsidian uses: pathToFileURL, fileURLToPath, URL, URLSearchParams export const urlShim = { URL: globalThis.URL, URLSearchParams: globalThis.URLSearchParams, pathToFileURL(p) { // Return an object with .href matching Node's url.pathToFileURL behavior const encoded = encodeURI(p.replace(/\\/g, '/')); const href = 'file:///' + encoded.replace(/^\/+/, ''); return { href, toString: () => href }; }, fileURLToPath(url) { let str = typeof url === 'string' ? url : url.href || url.toString(); if (str.startsWith('file:///')) { str = str.slice(8); } else if (str.startsWith('file://')) { str = str.slice(7); } return decodeURI(str); }, };