Skip to content

Commit fd7ffa0

Browse files
committed
fix: Switch to URL instead of url.resolve (nodejs#3256)
1 parent 3f81949 commit fd7ffa0

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

lib/process-release.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
7878

7979
// new style, based on process.release so we have a lot of the data we need
8080
if (defaultRelease && defaultRelease.headersUrl && !overrideDistUrl) {
81-
baseUrl = url.resolve(defaultRelease.headersUrl, './')
81+
baseUrl = new URL('./', defaultRelease.headersUrl)
8282
libUrl32 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x86', versionSemver.major)
8383
libUrl64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'x64', versionSemver.major)
8484
libUrlArm64 = resolveLibUrl(name, defaultRelease.libUrl || baseUrl || distBaseUrl, 'arm64', versionSemver.major)
@@ -96,7 +96,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
9696
// have a *-headers.tar.gz file in its dist location, even some frankenstein
9797
// custom version
9898
canGetHeaders = semver.satisfies(versionSemver, headersTarballRange)
99-
tarballUrl = url.resolve(baseUrl, name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz')
99+
tarballUrl = new URL(name + '-v' + version + (canGetHeaders ? '-headers' : '') + '.tar.gz', baseUrl)
100100
}
101101

102102
return {
@@ -105,19 +105,19 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
105105
name,
106106
baseUrl,
107107
tarballUrl,
108-
shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
108+
shasumsUrl: new URL('SHASUMS256.txt', baseUrl),
109109
versionDir: (name !== 'node' ? name + '-' : '') + version,
110110
ia32: {
111111
libUrl: libUrl32,
112-
libPath: normalizePath(path.relative(new URL(baseUrl).pathname, new URL(libUrl32).pathname))
112+
libPath: normalizePath(path.relative(baseUrl.pathname, libUrl32.pathname))
113113
},
114114
x64: {
115115
libUrl: libUrl64,
116-
libPath: normalizePath(path.relative(new URL(baseUrl).pathname, new URL(libUrl64).pathname))
116+
libPath: normalizePath(path.relative(baseUrl.pathname, libUrl64.pathname))
117117
},
118118
arm64: {
119119
libUrl: libUrlArm64,
120-
libPath: normalizePath(path.relative(new URL(baseUrl).pathname, new URL(libUrlArm64).pathname))
120+
libPath: normalizePath(path.relative(baseUrl.pathname, libUrlArm64.pathname))
121121
}
122122
}
123123
}
@@ -127,20 +127,20 @@ function normalizePath (p) {
127127
}
128128

129129
function resolveLibUrl (name, defaultUrl, arch, versionMajor) {
130-
const base = url.resolve(defaultUrl, './')
131-
const hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
130+
const base = new URL('./', defaultUrl)
131+
const hasLibUrl = bitsre.test(defaultUrl.pathname) || (versionMajor === 3 && bitsreV3.test(defaultUrl.pathname))
132132

133133
if (!hasLibUrl) {
134134
// let's assume it's a baseUrl then
135135
if (versionMajor >= 1) {
136-
return url.resolve(base, 'win-' + arch + '/' + name + '.lib')
136+
return new URL('win-' + arch + '/' + name + '.lib', base)
137137
}
138138
// prior to io.js@1.0.0 32-bit node.lib lives in /, 64-bit lives in /x64/
139-
return url.resolve(base, (arch === 'x86' ? '' : arch + '/') + name + '.lib')
139+
return new URL((arch === 'x86' ? '' : arch + '/') + name + '.lib', base)
140140
}
141141

142142
// else we have a proper url to a .lib, just make sure it's the right arch
143-
return defaultUrl.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/')
143+
return new URL(defaultUrl.pathname.replace(versionMajor === 3 ? bitsreV3 : bitsre, '/win-' + arch + '/'), defaultUrl)
144144
}
145145

146146
module.exports = processRelease

0 commit comments

Comments
 (0)