|
3 | 3 | 'use strict'
|
4 | 4 |
|
5 | 5 | const fs = require('fs')
|
6 |
| -const semver = require('semver') |
7 |
| -const map = require('map-async') |
8 |
| -const https = require('https') |
| 6 | +const nodeVersionData = require('node-version-data') |
9 | 7 |
|
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) { return callback(err) } |
16 |
| - versions = munge(versions) |
17 |
| - callback(null, versions) |
18 |
| - } |
19 |
| - ) |
20 |
| -} |
21 |
| - |
22 |
| -function download (url, cb) { |
23 |
| - let data = '' |
24 |
| - https.get(url, function (res) { |
25 |
| - res.on('data', function (chunk) { data += chunk }) |
26 |
| - res.on('end', function () { |
27 |
| - try { |
28 |
| - cb(null, JSON.parse(data)) |
29 |
| - } catch (e) { |
30 |
| - return cb(e) |
31 |
| - } |
32 |
| - }) |
33 |
| - }).on('error', function (e) { |
34 |
| - console.error('Error downloading file from %s: %s', url, e.message) |
35 |
| - cb(e) |
36 |
| - }) |
37 |
| -} |
38 |
| - |
39 |
| -function munge (versions) { |
40 |
| - versions[0].forEach(function (v) { |
41 |
| - v.url = 'https://nodejs.org/dist/' + v.version + '/' |
42 |
| - v.name = 'Node.js' |
43 |
| - }) |
44 |
| - versions[1].forEach(function (v) { |
45 |
| - v.url = 'https://iojs.org/dist/' + v.version + '/' |
46 |
| - v.name = 'io.js' |
47 |
| - }) |
48 |
| - |
49 |
| - let allVersions = versions[0].concat(versions[1]) |
50 |
| - |
51 |
| - allVersions.sort(function (a, b) { |
52 |
| - return semver.compare(b.version, a.version) |
53 |
| - }) |
54 |
| - |
55 |
| - return allVersions |
56 |
| -} |
57 |
| - |
58 |
| -module.exports = loadVersions |
| 8 | +module.exports = nodeVersionData |
59 | 9 |
|
60 | 10 | if (require.main === module) {
|
61 |
| - loadVersions(function (err, versions) { |
| 11 | + nodeVersionData((err, versions) => { |
62 | 12 | if (err) {
|
63 | 13 | console.error('Aborting due to download error from node or iojs')
|
64 | 14 | console.error(err.stack)
|
65 | 15 | return process.exit(1)
|
66 | 16 | }
|
67 | 17 |
|
68 |
| - fs.writeFileSync(__dirname + '/../source/versions.json', JSON.stringify(versions, null, 2)) |
| 18 | + fs.writeFileSync( |
| 19 | + __dirname + '/../source/versions.json' |
| 20 | + , JSON.stringify(versions, null, 2) |
| 21 | + ) |
69 | 22 | })
|
70 | 23 | }
|
0 commit comments