@@ -7,7 +7,18 @@ const semver = require('semver');
7
7
const map = require ( 'map-async' ) ;
8
8
const https = require ( 'https' ) ;
9
9
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
+ }
11
22
12
23
function download ( url , cb ) {
13
24
let data = '' ;
@@ -26,13 +37,7 @@ function download (url, cb) {
26
37
} ) ;
27
38
}
28
39
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 ) {
36
41
versions [ 0 ] . forEach ( function ( v ) {
37
42
v . url = 'https://nodejs.org/dist/' + v . version + '/'
38
43
v . name = 'Node.js'
@@ -48,5 +53,19 @@ function munge (err, versions) {
48
53
return semver . compare ( b . version , a . version ) ;
49
54
} ) ;
50
55
51
- fs . writeFileSync ( __dirname + '/../source/versions.json' , JSON . stringify ( allVersions , null , 2 ) ) ;
56
+ return allVersions ;
52
57
}
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