New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

auto-dist-tag

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

auto-dist-tag - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

18

package.json
{
"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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc