build.js 1.23 KB
const https = require('https');
const request = require('request');
const fs = require('fs');

request('https://atom.io/download/electron/index.json', function(error, response, body) {
  if (!error && response.statusCode == 200) {
    const allElectronVersions = JSON.parse(body);
    const versions = {};
    const fullVersions = {};

    const makePrintable = mapping => JSON.stringify(mapping)
                                      .replace(/,/g, ",\n\t")
                                      .replace(/{/g, "{\n\t")
                                      .replace(/}/g, "\n}");

    allElectronVersions.forEach(electron => {
      // simple list
      const simpleVersion = electron.version.split(".")[0] + "." + electron.version.split(".")[1];
      versions[simpleVersion] = electron.chrome.split(".")[0];

      // explicit list
      fullVersions[electron.version] = electron.chrome;
    });

    fs.writeFile("versions.js", `module.exports = ${makePrintable(versions)};`, function (error) {
      if (error) {
        throw error;
      }
    });

    fs.writeFile("full-versions.js", `module.exports = ${makePrintable(fullVersions)};`, function (error) {
      if (error) {
        throw error;
      }
    });
  } else {
    throw error;
  }
})