auto-dist-tag
Advanced tools
Comparing version 0.1.4 to 0.1.5
{ | ||
"name": "auto-dist-tag", | ||
"version": "0.1.4", | ||
"version": "0.1.5", | ||
"description": "Automatically rewrites the publishConfig.tag setting in your package.json file for you", | ||
@@ -20,14 +20,14 @@ "homepage": "https://github.com/Turbo87/auto-dist-tag#readme", | ||
"scripts": { | ||
"test": "mocha" | ||
"test": "jest" | ||
}, | ||
"dependencies": { | ||
"fs-extra": "^3.0.0", | ||
"debug": "^3.1.0", | ||
"fs-extra": "^5.0.0", | ||
"meow": "^3.7.0", | ||
"package-json": "^4.0.1", | ||
"pkg-up": "^1.0.0", | ||
"pkg-up": "^2.0.0", | ||
"semver": "^5.3.0" | ||
}, | ||
"devDependencies": { | ||
"chai": "^3.5.0", | ||
"mocha": "^3.3.0" | ||
"jest": "^21.2.1" | ||
}, | ||
@@ -37,5 +37,7 @@ "engines": { | ||
}, | ||
"publishConfig": { | ||
"tag": "latest" | ||
"jest": { | ||
"testMatch": [ | ||
"**/test/**/*-test.js" | ||
] | ||
} | ||
} |
@@ -21,8 +21,19 @@ 'use strict'; | ||
if (options && options.write) { | ||
// skip writing to `package.json if an explicit publishConfig.tag is set | ||
if ('publishConfig' in pkg && 'tag' in pkg.publishConfig) { | ||
return; | ||
} | ||
// skip writing to `package.json if the calculated tag is "latest" because it's the default anyway | ||
if (tag === 'latest') { | ||
return; | ||
} | ||
pkg.publishConfig = pkg.publishConfig || {}; | ||
pkg.publishConfig.tag = pkg.publishConfig.tag || tag; | ||
pkg.publishConfig.tag = tag; | ||
return fs.writeJson(pkgPath, pkg, { spaces: 2 }); | ||
} | ||
return fs.writeJson(pkgPath, pkg, { spaces: 2 }); | ||
}) | ||
.then(() => tag); | ||
}; |
'use strict'; | ||
const semver = require('semver'); | ||
const debug = require('debug')('auto-dist-tag'); | ||
module.exports = function calcDistTag(version, distTags) { | ||
debug(`version: ${version}`); | ||
debug(`distTags: ${JSON.stringify(distTags)}`); | ||
let latest = distTags.latest; | ||
if (!latest) { | ||
debug(`-> "latest" (no previous "latest" found)`); | ||
return 'latest'; | ||
@@ -13,3 +18,8 @@ } | ||
let latestPrerelease = semver.prerelease(latest); | ||
debug(`prerelease: ${JSON.stringify(prerelease)}`); | ||
debug(`latestPrerelease: ${JSON.stringify(latestPrerelease)}`); | ||
if (latestPrerelease && (!prerelease || semver.gte(version, latest))) { | ||
debug(`-> "latest" (previous "latest" was prerelease, new version is not a prerelease or newer)`); | ||
return 'latest'; | ||
@@ -19,3 +29,9 @@ } | ||
if (!prerelease) { | ||
return semver.gte(version, latest) ? 'latest' : 'old' | ||
if (semver.gte(version, latest)) { | ||
debug(`-> "latest" (new version is newer than or equal to previous "latest")`); | ||
return 'latest' | ||
} else { | ||
debug(`-> "old" (new version is older than "latest")`); | ||
return 'old' | ||
} | ||
} | ||
@@ -27,9 +43,17 @@ | ||
} | ||
debug(`identifier: ${identifier}`); | ||
let identifierLatest = distTags[identifier]; | ||
if (!identifierLatest) { | ||
debug(`-> "${identifier}" ("${identifier}" does not exist yet)`); | ||
return identifier; | ||
} | ||
return semver.gte(version, identifierLatest) ? identifier : 'old'; | ||
if (semver.gte(version, identifierLatest)) { | ||
debug(`-> "${identifier}" (new version is newer than or equal to previous "${identifier}")`); | ||
return identifier; | ||
} else { | ||
debug(`-> "old" (new version is older than "${identifier}")`); | ||
return 'old'; | ||
} | ||
}; | ||
@@ -36,0 +60,0 @@ |
'use strict'; | ||
const expect = require('chai').expect; | ||
const calcDistTag = require('../src/calc-dist-tag'); | ||
@@ -9,3 +8,3 @@ | ||
it(`${version}, ${JSON.stringify(distTags)} -> ${expected}`, function() { | ||
return expect(calcDistTag(version, distTags)).to.equal(expected); | ||
expect(calcDistTag(version, distTags)).toEqual(expected); | ||
}); | ||
@@ -96,2 +95,9 @@ } | ||
// real world: ember-cli-mocha | ||
test('0.12.0', { latest: '0.11.1' }, 'latest'); | ||
test('0.13.0-beta.1', { latest: '0.12.0' }, 'beta'); | ||
// real world: ember-mocha | ||
test('0.14.4', { latest: '0.14.3' }, 'latest'); | ||
test('0.14.5-beta.1', { latest: '0.14.4' }, 'beta'); | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
116195
1
193
6
11
+ Addeddebug@^3.1.0
+ Addeddebug@3.2.7(transitive)
+ Addedfind-up@2.1.0(transitive)
+ Addedfs-extra@5.0.0(transitive)
+ Addedjsonfile@4.0.0(transitive)
+ Addedlocate-path@2.0.0(transitive)
+ Addedms@2.1.3(transitive)
+ Addedp-limit@1.3.0(transitive)
+ Addedp-locate@2.0.0(transitive)
+ Addedp-try@1.0.0(transitive)
+ Addedpath-exists@3.0.0(transitive)
+ Addedpkg-up@2.0.0(transitive)
- Removedfs-extra@3.0.1(transitive)
- Removedjsonfile@3.0.1(transitive)
- Removedpkg-up@1.0.0(transitive)
Updatedfs-extra@^5.0.0
Updatedpkg-up@^2.0.0