more shims, path, crypto, url

This commit is contained in:
Nystik
2026-03-07 18:11:46 +01:00
parent 192c5fb093
commit 38427d4fe4
7 changed files with 156 additions and 0 deletions

24
shims/url.js Normal file
View File

@@ -0,0 +1,24 @@
// 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);
},
};