1+ const { existsSync } = require ( "node:fs" ) ;
12var _ = require ( "lodash" ) ;
23var inherits = require ( "inherits" ) ;
34var EventEmitter = require ( "events" ) . EventEmitter ;
@@ -11,6 +12,7 @@ var spawn = require("child_process").spawn;
1112var semver = require ( "semver" ) ;
1213var platformOverrides = require ( "./platformOverrides.cjs" ) ;
1314var deprecate = require ( "deprecate" ) ;
15+ const { install } = require ( "nw-install" ) ;
1416
1517const {
1618 checkCache,
@@ -23,20 +25,6 @@ const {
2325var NwVersions = require ( "./versions.cjs" ) ;
2426var Version = require ( "./Version.cjs" ) ;
2527var Utils = require ( "./utils.cjs" ) ;
26- var Downloader = require ( "./downloader.cjs" ) ;
27- // var platforms = require("./platforms.cjs");
28-
29- var pkg = require ( "../package.json" ) ;
30-
31- ( async ( ) => {
32- let updateNotifier = undefined ;
33- try {
34- updateNotifier = await import ( "update-notifier" ) ;
35- updateNotifier . default ( { pkg } ) . notify ( ) ;
36- } catch ( e ) {
37- console . error ( e ) ;
38- }
39- } ) ( ) ;
4028
4129// We inherit from EventEmitter for logging
4230inherits ( NwBuilder , EventEmitter ) ;
@@ -325,74 +313,35 @@ NwBuilder.prototype.platformFilesForVersion = function () {
325313 return Promise . resolve ( ) ;
326314} ;
327315
328- NwBuilder . prototype . downloadNwjs = function ( ) {
329- var self = this ,
330- downloads = [ ] ;
331-
332- this . _forEachPlatform ( function ( name , platform ) {
333- self . setPlatformCacheDirectory (
334- name ,
335- platform ,
336- self . _version . version ,
337- self . _version . flavor ,
338- ) ;
339- platform . url = self . _version . platforms [ name + "-" + self . _version . flavor ] ;
340-
341- // Ensure that there is a cache folder
342- if ( self . options . forceDownload ) {
343- fs . removeSync ( platform . cache ) ;
344- }
345-
346- fs . mkdirpSync ( platform . cache ) ;
347- self . emit (
348- "log" ,
349- "Create cache folder in " +
350- path . resolve (
351- self . options . cacheDir ,
352- self . _version . version + "-" + self . _version . flavor ,
353- ) ,
354- ) ;
355-
316+ NwBuilder . prototype . downloadNwjs = async function ( ) {
317+ let options = this . options ;
318+ for await ( let osName of options . platforms ) {
319+ let plat = osName . slice ( 0 , osName . length - 2 ) ;
320+ let arch =
321+ osName . slice ( osName . length - 2 , osName . length ) === "32" ? "ia32" : "x64" ;
322+ this . _platforms [ osName ] . url =
323+ this . _version . platforms [ osName + "-" + this . _version . flavor ] ;
324+ this . _platforms [
325+ osName
326+ ] . cache = `${ this . options . cacheDir } /${ this . options . version } -${ this . options . flavor } /${ osName } /nwjs-${ this . options . flavor } -v${ this . options . version } -${ plat } -${ arch } ` ;
356327 if (
357- ! self . isPlatformCached (
358- name ,
359- platform ,
360- self . _version . version ,
361- self . _version . flavor ,
362- )
328+ options . forceDownload === true ||
329+ existsSync (
330+ `${ this . options . cacheDir } /${ this . options . version } -${ this . options . flavor } /${ osName } /nwjs-${ this . options . flavor } -v${ this . options . version } -${ plat } -${ arch } ` ,
331+ ) === false
363332 ) {
364- downloads . push (
365- Downloader . downloadAndUnpack ( platform . cache , platform . url ) . catch (
366- function ( err ) {
367- if ( err . statusCode === 404 ) {
368- self . emit (
369- "log" ,
370- "ERROR: The version " +
371- self . _version . version +
372- " (" +
373- self . _version . flavor +
374- ") does not have a corresponding build posted at " +
375- self . options . downloadUrl +
376- ". Please choose a version from that list." ,
377- ) ;
378- } else {
379- self . emit ( "log" , err . msg ) ;
380- }
381-
382- return Promise . reject ( "Unable to download NWjs." ) ;
383- } ,
384- ) ,
333+ await install (
334+ this . options . version ,
335+ this . options . flavor ,
336+ plat ,
337+ arch ,
338+ "https://nwjs.io" ,
339+ "https://dl.nwjs.io" ,
340+ `${ this . options . cacheDir } /${ this . options . version } -${ this . options . flavor } /${ osName } ` ,
341+ `nwjs-${ this . options . flavor } -v${ this . options . version } -${ plat } -${ arch } ` ,
385342 ) ;
386- self . emit ( "log" , "Downloading: " + platform . url ) ;
387- } else {
388- self . emit ( "log" , "Using cache for: " + name ) ;
389343 }
390- } ) ;
391-
392- return Promise . all ( downloads ) . then ( function ( data ) {
393- Downloader . clearProgressbar ( ) ;
394- return data ;
395- } ) ;
344+ }
396345} ;
397346
398347NwBuilder . prototype . buildGypModules = function ( ) {
0 commit comments