Skip to content

Commit

Permalink
Allow parentURL to be protocol-relative
Browse files Browse the repository at this point in the history
  • Loading branch information
kasperisager committed Oct 15, 2024
1 parent 2e38c59 commit 3394e10
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ const Module = module.exports = exports = class Module {
meta.asset = asset

function resolve (specifier, parentURL = referrer._url) {
const resolved = self.resolve(specifier, toURL(parentURL), { referrer })
const resolved = self.resolve(specifier, toURL(parentURL, referrer._url), { referrer })

switch (resolved.protocol) {
case 'builtin:': return resolved.pathname
Expand All @@ -317,15 +317,15 @@ const Module = module.exports = exports = class Module {
}

function addon (specifier = '.', parentURL = referrer._url) {
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL), { referrer })
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL, referrer._url), { referrer })

const addon = Bare.Addon.load(resolved, { referrer })

return addon._exports
}

function asset (specifier, parentURL = referrer._url) {
return self.asset(specifier, toURL(parentURL), { referrer }).href
return self.asset(specifier, toURL(parentURL, referrer._url), { referrer }).href
}
}

Expand Down Expand Up @@ -646,7 +646,7 @@ const createRequire = exports.createRequire = function createRequire (parentURL,
}

function resolve (specifier, parentURL = referrer._url) {
const resolved = self.resolve(specifier, toURL(parentURL), { referrer })
const resolved = self.resolve(specifier, toURL(parentURL, referrer._url), { referrer })

switch (resolved.protocol) {
case 'builtin:': return resolved.pathname
Expand All @@ -655,15 +655,15 @@ const createRequire = exports.createRequire = function createRequire (parentURL,
}

function addon (specifier = '.', parentURL = referrer._url) {
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL), { referrer })
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL, referrer._url), { referrer })

const addon = Bare.Addon.load(resolved, { referrer })

return addon._exports
}

function asset (specifier, parentURL = referrer._url) {
return urlToPath(self.asset(specifier, toURL(parentURL), { referrer }))
return urlToPath(self.asset(specifier, toURL(parentURL, referrer._url), { referrer }))
}
}

Expand Down Expand Up @@ -867,14 +867,14 @@ Bare
binding.destroy(Module._handle)
})

function toURL (value) {
function toURL (value, base) {
if (isURL(value)) return value

if (startsWithWindowsDriveLetter(value)) {
return pathToFileURL(value)
}

return URL.parse(value) || pathToFileURL(value)
return URL.parse(value, base) || pathToFileURL(value)
}

function urlToPath (url) {
Expand Down

0 comments on commit 3394e10

Please sign in to comment.