refactor(pre): use gitHead information from registry

This commit is contained in:
Christoph Witzko 2015-02-11 14:40:26 +01:00
parent 5c12e718cb
commit 53c0adb365
6 changed files with 40 additions and 33 deletions

26
lib/npm-info.js Normal file
View File

@ -0,0 +1,26 @@
'use strict'
var request = require('request')
var efh = require('./error').efh
module.exports = function (pkgName, cb) {
request(process.env.npm_config_registry + pkgName, efh(cb)(function (response, body) {
var pkg = JSON.parse(body)
if (pkg.error && response.statusCode !== 404) return cb(pkg.error)
var res = {
version: '',
gitHead: '',
pkg: pkg
}
if (response.statusCode === 404) return cb(null, res)
res.version = pkg['dist-tags'].latest
res.gitHead = pkg.versions[res.version].gitHead
cb(null, res)
}))
}

View File

@ -4,10 +4,8 @@ var git = require('conventional-changelog/lib/git')
var efh = require('../error').efh var efh = require('../error').efh
module.exports = function (cb) { module.exports = function (from, cb) {
git.latestTag(efh(cb)(function (from) { git.getCommits({from: from}, efh(cb)(function (commits) {
git.getCommits({from: from}, efh(cb)(function (commits) { cb(null, commits)
cb(null, commits)
}))
})) }))
} }

View File

@ -4,8 +4,8 @@ var analyze = require('./analyze')
var commits = require('./commits') var commits = require('./commits')
var efh = require('../error').efh var efh = require('../error').efh
module.exports = function (cb) { module.exports = function (gitHead, cb) {
commits(efh(cb)(function (commits) { commits(gitHead, efh(cb)(function (commits) {
cb(null, analyze(commits)) cb(null, analyze(commits))
})) }))
} }

View File

@ -1,17 +0,0 @@
'use strict'
var request = require('request')
var efh = require('./error').efh
module.exports = function (pkg, cb) {
if (!pkg.name) return cb(new Error('Package must have a name'))
request(process.env.npm_config_registry + pkg.name, efh(cb)(function (response, body) {
var pkg = JSON.parse(body)
if (response.statusCode === 404 || pkg.error) return cb(null, null, true)
cb(null, pkg['dist-tags'].latest)
}))
}

View File

@ -11,7 +11,7 @@
"abbrev": "^1.0.5", "abbrev": "^1.0.5",
"conventional-changelog": "0.0.11", "conventional-changelog": "0.0.11",
"error-first-handler": "^1.0.1", "error-first-handler": "^1.0.1",
"git-head": "^1.0.1", "git-head": "^1.2.1",
"github": "^0.2.3", "github": "^0.2.3",
"github-url-from-git": "^1.4.0", "github-url-from-git": "^1.4.0",
"ini": "^1.3.2", "ini": "^1.3.2",

View File

@ -5,17 +5,17 @@ var fs = require('fs')
var semver = require('semver') var semver = require('semver')
var type = require('../lib/type') var type = require('../lib/type')
var version = require('../lib/version') var npmInfo = require('../lib/npm-info')
var efh = require('../lib/error').efh var efh = require('../lib/error').efh
module.exports = function (options, cb) { module.exports = function (options, cb) {
type(efh(cb)(function (type) { var path = './package.json'
if (!type) return cb(null, null) var pkg = JSON.parse(fs.readFileSync(path))
if (!pkg.name) return cb(new Error('Package must have a name'))
var path = './package.json' npmInfo(pkg.name, efh(cb)(function (res) {
var pkg = JSON.parse(fs.readFileSync(path)) type(res.gitHead, efh(cb)(function (type) {
version(pkg, efh(cb)(function (version, unpublished) { if (!type) return cb(null, null)
pkg.version = unpublished ? '1.0.0' : semver.inc(version, type) pkg.version = !res.version ? '1.0.0' : semver.inc(res.version, type)
if (!options.debug) fs.writeFileSync(path, JSON.stringify(pkg, null, 2)) if (!options.debug) fs.writeFileSync(path, JSON.stringify(pkg, null, 2))
cb(null, pkg.version) cb(null, pkg.version)