1- /* eslint-disable n/no-deprecated-api */
2-
31'use strict'
42
53const semver = require ( 'semver' )
6- const url = require ( 'url' )
74const path = require ( 'path' )
85const log = require ( './log' )
96
@@ -78,7 +75,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
7875
7976 // new style, based on process.release so we have a lot of the data we need
8077 if ( defaultRelease && defaultRelease . headersUrl && ! overrideDistUrl ) {
81- baseUrl = url . resolve ( defaultRelease . headersUrl , './' )
78+ baseUrl = new URL ( './' , defaultRelease . headersUrl )
8279 libUrl32 = resolveLibUrl ( name , defaultRelease . libUrl || baseUrl || distBaseUrl , 'x86' , versionSemver . major )
8380 libUrl64 = resolveLibUrl ( name , defaultRelease . libUrl || baseUrl || distBaseUrl , 'x64' , versionSemver . major )
8481 libUrlArm64 = resolveLibUrl ( name , defaultRelease . libUrl || baseUrl || distBaseUrl , 'arm64' , versionSemver . major )
@@ -96,7 +93,7 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
9693 // have a *-headers.tar.gz file in its dist location, even some frankenstein
9794 // custom version
9895 canGetHeaders = semver . satisfies ( versionSemver , headersTarballRange )
99- tarballUrl = url . resolve ( baseUrl , name + '-v' + version + ( canGetHeaders ? '-headers' : '' ) + '.tar.gz' )
96+ tarballUrl = new URL ( name + '-v' + version + ( canGetHeaders ? '-headers' : '' ) + '.tar.gz' , baseUrl )
10097 }
10198
10299 return {
@@ -105,19 +102,19 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
105102 name,
106103 baseUrl,
107104 tarballUrl,
108- shasumsUrl : url . resolve ( baseUrl , 'SHASUMS256.txt' ) ,
105+ shasumsUrl : new URL ( 'SHASUMS256.txt' , baseUrl ) ,
109106 versionDir : ( name !== 'node' ? name + '-' : '' ) + version ,
110107 ia32 : {
111108 libUrl : libUrl32 ,
112- libPath : normalizePath ( path . relative ( new URL ( baseUrl ) . pathname , new URL ( libUrl32 ) . pathname ) )
109+ libPath : normalizePath ( path . relative ( baseUrl . pathname , libUrl32 . pathname ) )
113110 } ,
114111 x64 : {
115112 libUrl : libUrl64 ,
116- libPath : normalizePath ( path . relative ( new URL ( baseUrl ) . pathname , new URL ( libUrl64 ) . pathname ) )
113+ libPath : normalizePath ( path . relative ( baseUrl . pathname , libUrl64 . pathname ) )
117114 } ,
118115 arm64 : {
119116 libUrl : libUrlArm64 ,
120- libPath : normalizePath ( path . relative ( new URL ( baseUrl ) . pathname , new URL ( libUrlArm64 ) . pathname ) )
117+ libPath : normalizePath ( path . relative ( baseUrl . pathname , libUrlArm64 . pathname ) )
121118 }
122119 }
123120}
@@ -127,20 +124,20 @@ function normalizePath (p) {
127124}
128125
129126function resolveLibUrl ( name , defaultUrl , arch , versionMajor ) {
130- const base = url . resolve ( defaultUrl , './' )
131- const hasLibUrl = bitsre . test ( defaultUrl ) || ( versionMajor === 3 && bitsreV3 . test ( defaultUrl ) )
127+ const base = new URL ( './' , defaultUrl )
128+ const hasLibUrl = bitsre . test ( defaultUrl . pathname ) || ( versionMajor === 3 && bitsreV3 . test ( defaultUrl . pathname ) )
132129
133130 if ( ! hasLibUrl ) {
134131 // let's assume it's a baseUrl then
135132 if ( versionMajor >= 1 ) {
136- return url . resolve ( base , 'win-' + arch + '/' + name + '.lib' )
133+ return new URL ( 'win-' + arch + '/' + name + '.lib' , base )
137134 }
138135 // 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' )
136+ return new URL ( ( arch === 'x86' ? '' : arch + '/' ) + name + '.lib' , base )
140137 }
141138
142139 // 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 + '/' )
140+ return new URL ( defaultUrl . pathname . replace ( versionMajor === 3 ? bitsreV3 : bitsre , '/win-' + arch + '/' ) , defaultUrl )
144141}
145142
146143module . exports = processRelease
0 commit comments