mirror of
https://github.com/Nystik-gh/ignis.git
synced 2026-06-17 04:35:53 +00:00
more shims, path, crypto, url
This commit is contained in:
24
shims/url.js
Normal file
24
shims/url.js
Normal 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);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user