@@ -7,7 +7,18 @@ const semver = require('semver');
77const map = require ( 'map-async' ) ;
88const https = require ( 'https' ) ;
99
10- map ( [ 'https://nodejs.org/dist/index.json' , 'https://iojs.org/dist/index.json' ] , download , munge ) ;
10+ function loadVersions ( callback ) {
11+ map (
12+ [ 'https://nodejs.org/dist/index.json' , 'https://iojs.org/dist/index.json' ] ,
13+ download ,
14+ function ( err , versions ) {
15+ if ( err )
16+ return callback ( err ) ;
17+ versions = munge ( versions ) ;
18+ callback ( null , versions ) ;
19+ }
20+ ) ;
21+ }
1122
1223function download ( url , cb ) {
1324 let data = '' ;
@@ -26,13 +37,7 @@ function download (url, cb) {
2637 } ) ;
2738}
2839
29- function munge ( err , versions ) {
30- if ( err ) {
31- console . error ( 'Aborting due to download error from node or iojs' ) ;
32- console . error ( err . stack )
33- return process . exit ( 1 ) ;
34- }
35-
40+ function munge ( versions ) {
3641 versions [ 0 ] . forEach ( function ( v ) {
3742 v . url = 'https://nodejs.org/dist/' + v . version + '/'
3843 v . name = 'Node.js'
@@ -48,5 +53,19 @@ function munge (err, versions) {
4853 return semver . compare ( b . version , a . version ) ;
4954 } ) ;
5055
51- fs . writeFileSync ( __dirname + '/../source/versions.json' , JSON . stringify ( allVersions , null , 2 ) ) ;
56+ return allVersions ;
5257}
58+
59+ module . exports = loadVersions ;
60+
61+ if ( require . main === module ) {
62+ loadVersions ( function ( err , versions ) {
63+ if ( err ) {
64+ console . error ( 'Aborting due to download error from node or iojs' ) ;
65+ console . error ( err . stack ) ;
66+ return process . exit ( 1 ) ;
67+ }
68+
69+ fs . writeFileSync ( __dirname + '/../source/versions.json' , JSON . stringify ( versions , null , 2 ) ) ;
70+ } )
71+ }
0 commit comments