generalize, a lot
[webi-installers/.git] / _example / releases.js
1 'use strict';
2
3 var github = require('../_common/github.js');
4 var owner = 'HorseAJ86';
5 var repo = 'shmatter';
6
7 module.exports = function (request) {
8   // 1. fetch the list of releases
9   // 2. translate into the style of object that webinstall needs
10   // 3. missing / guessable pieces will be filled automatically by filename and such
11   // (in this example the github releases module does 100% of the work)
12
13   return github(request, owner, repo).then(function (data) {
14     var releases = data.releases;
15
16     /*
17     // Example:
18     var releases = [{
19       "name": "shmatter-darwin-x64-1.0.0.tgz",
20       "version": "v1.0.0",
21       "lts": false,        // long-term support release
22       "channel": "stable", // stable|rc|beta|dev
23       "date": "2020-05-07",
24       "download": "https://github.com/HorseAJ86/shmatter/releases/download/v1.0.0/shmatter-darwin-x64-1.0.0.tgz",
25       "os": "",   // will be guessed as macos (darwin -> macos)
26       "arch": "", // will be guessed as amd64 (x64 -> amd64)
27       "ext": ""   // will be guessed as tar (tgz -> tar.gz -> tar)
28     }]
29     */
30
31     return { releases: releases };
32   });
33 };
34
35 if (module === require.main) {
36   module.exports(require('@root/request')).then(function (all) {
37     // limit the example output
38     all.releases = all.releases.slice(0, 5);
39     all = require('../_webi/normalize.js')(all);
40     console.info(JSON.stringify(all, null, 2));
41   });
42 }