Skip to content

Commit

Permalink
feat(repo): added repo info to the returned result object
Browse files Browse the repository at this point in the history
  • Loading branch information
bahmutov committed Aug 9, 2016
1 parent fbb0d86 commit a517e75
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 9 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules/
cover/
.DS_Store
npm-debug.log
2 changes: 1 addition & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"trailing" : false,
"maxparams" : 4,
"maxdepth" : 3,
"maxstatements" : 30,
"maxstatements" : 40,
"maxcomplexity" : 10,
"maxlen" : 100,

Expand Down
6 changes: 5 additions & 1 deletion bin/available.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,12 @@ const options = require('../src/split-version')(packageName, packageVersion);

const hideDebugOutput = true;

const fetchReleaseNotes = require('../src/fetch-release-notes');

const printReleases = require('../src/print-releases');
const print = printReleases.bind(null, options);

available(options, hideDebugOutput)
.then(printReleases.bind(null, options));
.then(fetchReleaseNotes)
.then(print);

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"lodash": "4.14.2",
"moment": "2.14.1",
"npm-utils": "1.7.1",
"parse-github-repo-url": "1.3.0",
"q": "1.4.1",
"request": "2.74.0",
"semver": "5.3.0",
Expand Down
34 changes: 27 additions & 7 deletions src/available.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use strict';

var request = require('request');
var la = require('lazy-ass');
var check = require('check-more-types');
Expand All @@ -6,6 +8,7 @@ var q = require('q');
var cleanVersion = require('./clean-version');
var _ = require('lodash');
var debug = require('debug')('vers');
var parseRepo = require('parse-github-repo-url');

var _registryUrl = require('npm-utils').registryUrl;
la(check.fn(_registryUrl), 'expected registry url function');
Expand All @@ -22,6 +25,12 @@ function formUrl(npmUrl, name) {
return url;
}

function isSupportedRepo(repo) {
return check.object(repo) &&
repo.type === 'git' &&
repo.url.indexOf('github') !== -1;
}

function queryRegistry(query, silent, npmUrl) {
la(check.object(query), 'expected {name, version}');
var name = query.name;
Expand All @@ -48,6 +57,8 @@ function queryRegistry(query, silent, npmUrl) {
return deferred.reject(new Error(err.message));
}

var result = {};

try {
var info = JSON.parse(body);
if (info.error) {
Expand All @@ -56,6 +67,17 @@ function queryRegistry(query, silent, npmUrl) {
deferred.reject(new Error(str));
return;
}
debug('npm repo info');
debug(info.repository);
if (isSupportedRepo(info.repository)) {
result.repo = info.repository.url;
var parsed = parseRepo(info.repository.url);
result.repoParsed = {
user: parsed[0],
repo: parsed[1]
};
}

var versionObject = info.versions || info.time;
la(check.object(versionObject), 'could not find versions in', info);

Expand Down Expand Up @@ -83,14 +105,12 @@ function queryRegistry(query, silent, npmUrl) {
la(check.maybe.object(info['dist-tags']),
'expected object with dist tags', info['dist-tags']);

deferred.resolve({
name: name,
versions: validVersions,
timestamps: timestamps,
'dist-tags': info['dist-tags']
});
result.name = name;
result.versions = validVersions;
result.timestamps = timestamps;
result['dist-tags'] = info['dist-tags'];

return;
return deferred.resolve(result);
} catch (error) {
console.error(error);
deferred.reject(new Error('Could not fetch versions for ' + name));
Expand Down
9 changes: 9 additions & 0 deletions src/fetch-release-notes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
'use strict';

function fetchReleaseNotes(versions) {
console.log(versions);

return versions;
}

module.exports = fetchReleaseNotes;

0 comments on commit a517e75

Please sign in to comment.