Comparing version 0.0.4 to 0.1.0
#!/usr/bin/env node | ||
'use strict'; | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
var _fs = require('fs'); | ||
@@ -12,2 +14,8 @@ | ||
var _commander = require('commander'); | ||
var _commander2 = _interopRequireDefault(_commander); | ||
var _jsObjectPrettyPrint = require('js-object-pretty-print'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -17,7 +25,86 @@ | ||
if (_fs2.default.existsSync(PACKAGE_JSON_PATH)) { | ||
var runIfPackageJsonExists = function runIfPackageJsonExists(cb) { | ||
if (_fs2.default.existsSync(PACKAGE_JSON_PATH)) { | ||
return cb(); | ||
} | ||
return console.log('Error: npmv was run in a "non-node" package directory.'); | ||
}; | ||
var logVersion = function logVersion(version) { | ||
console.log('Version: ' + version); | ||
}; | ||
var checkPackageVersions = function checkPackageVersions() { | ||
var jsonFile = JSON.parse(_fs2.default.readFileSync(PACKAGE_JSON_PATH)); | ||
console.log('Version: ' + jsonFile.version); | ||
} else { | ||
console.log('Error: npmv was run in a "non-node" package directory.'); | ||
} | ||
logVersion(jsonFile.version); | ||
}; | ||
var handleVersionOptions = function handleVersionOptions(option) { | ||
if (!option) { | ||
return checkPackageVersions(); | ||
} | ||
return runIfPackageJsonExists(function () { | ||
var json = JSON.parse(_fs2.default.readFileSync(PACKAGE_JSON_PATH)); | ||
var version = json.version; | ||
if (!version) return; | ||
var _version$replace$spli = version.replace(/[vV]/, '').split('.').map(Number), | ||
_version$replace$spli2 = _slicedToArray(_version$replace$spli, 3), | ||
major = _version$replace$spli2[0], | ||
minor = _version$replace$spli2[1], | ||
patch = _version$replace$spli2[2]; | ||
switch (option) { | ||
case 'minor': | ||
case 'min': | ||
case 'm': | ||
case 'MINOR': | ||
{ | ||
minor += 1; | ||
patch = 0; | ||
break; | ||
} | ||
case 'major': | ||
case 'maj': | ||
case 'M': | ||
case 'MAJOR': | ||
{ | ||
major += 1; | ||
minor = 0; | ||
break; | ||
} | ||
case 'patch': | ||
case 'p': | ||
case 'PATCH': | ||
{ | ||
patch += 1; | ||
break; | ||
} | ||
default: | ||
{ | ||
break; | ||
} | ||
} | ||
var versionUpdate = major + '.' + minor + '.' + patch; | ||
json.version = versionUpdate; | ||
var jsonString = (0, _jsObjectPrettyPrint.pretty)(json, 2, 'JSON'); | ||
_fs2.default.writeFileSync(PACKAGE_JSON_PATH, jsonString); | ||
logVersion(versionUpdate); | ||
}); | ||
}; | ||
_commander2.default.version('0.0.5').arguments('<option>', 'Part of version to increment').action(function (option) { | ||
handleVersionOptions(option); | ||
}).parse(process.argv); | ||
runIfPackageJsonExists(function () { | ||
if (!_commander2.default.args.length) { | ||
checkPackageVersions(); | ||
} | ||
}); |
@@ -5,11 +5,92 @@ #!/usr/bin/env node | ||
import path from 'path'; | ||
import program from 'commander'; | ||
import { pretty } from 'js-object-pretty-print'; | ||
const PACKAGE_JSON_PATH = path.join(process.cwd(), 'package.json'); | ||
if (fs.existsSync(PACKAGE_JSON_PATH)) { | ||
const runIfPackageJsonExists = (cb) => { | ||
if (fs.existsSync(PACKAGE_JSON_PATH)) { | ||
return cb(); | ||
} | ||
return console.log('Error: npmv was run in a "non-node" package directory.'); | ||
}; | ||
const logVersion = (version) => { | ||
console.log(`Version: ${version}`); | ||
}; | ||
const checkPackageVersions = () => { | ||
const jsonFile = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH)); | ||
console.log(`Version: ${jsonFile.version}`); | ||
} else { | ||
console.log('Error: npmv was run in a "non-node" package directory.'); | ||
} | ||
logVersion(jsonFile.version); | ||
}; | ||
const handleVersionOptions = (option) => { | ||
if (!option) { | ||
return checkPackageVersions(); | ||
} | ||
return runIfPackageJsonExists(() => { | ||
const json = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH)); | ||
const version = json.version; | ||
if (!version) return; | ||
let [major, minor, patch] = version | ||
.replace(/[vV]/, '') | ||
.split('.') | ||
.map(Number); | ||
switch (option) { | ||
case 'minor': | ||
case 'min': | ||
case 'm': | ||
case 'MINOR': { | ||
minor += 1; | ||
patch = 0; | ||
break; | ||
} | ||
case 'major': | ||
case 'maj': | ||
case 'M': | ||
case 'MAJOR': { | ||
major += 1; | ||
minor = 0; | ||
break; | ||
} | ||
case 'patch': | ||
case 'p': | ||
case 'PATCH': { | ||
patch += 1; | ||
break; | ||
} | ||
default: { | ||
break; | ||
} | ||
} | ||
const versionUpdate = `${major}.${minor}.${patch}`; | ||
json.version = versionUpdate; | ||
const jsonString = pretty(json, 2, 'JSON'); | ||
fs.writeFileSync(PACKAGE_JSON_PATH, jsonString); | ||
logVersion(versionUpdate); | ||
}); | ||
}; | ||
program | ||
.version('0.0.5') | ||
.arguments('<option>', 'Part of version to increment') | ||
.action((option) => { | ||
handleVersionOptions(option); | ||
}) | ||
.parse(process.argv); | ||
runIfPackageJsonExists(() => { | ||
if (!program.args.length) { | ||
checkPackageVersions(); | ||
} | ||
}); |
{ | ||
"name": "npm-ver", | ||
"description": "Command line tool for checking the version on an npm package", | ||
"version": "0.0.4", | ||
"version": "0.1.0", | ||
"author": "Samuel Nkoom Amoah <sa.am@programmer.net>", | ||
@@ -14,2 +14,3 @@ "keywords": [ | ||
"commander": "^2.9.0", | ||
"js-object-pretty-print": "^0.3.0", | ||
"path": "^0.12.7" | ||
@@ -16,0 +17,0 @@ }, |
@@ -8,2 +8,4 @@ # NPMV Command-line Tool | ||
This tool also allows you to easily update package versions. It follows | ||
[semver](http://semver.org) convention. | ||
@@ -23,1 +25,36 @@ ## Installation | ||
``` | ||
## Options | ||
Given a version number MAJOR.MINOR.PATCH, the following arguments: | ||
**MINOR|minor|min|m** - Increments the MINOR part of the version number | ||
**MAJOR|major|maj|M** - Increments the MAJOR part of the version number | ||
**PATCH|patch|p** - Increments the PATCH part of the version number | ||
___Note:___ Incrementing minor automatically sets patch back to 0, and incrementing MAJOR | ||
sets MINOR and PATCH to 0 | ||
## Examples | ||
```javascript | ||
$ npmv | ||
//=> Version: 0.1.0 | ||
$ npmv patch | ||
//=> Version: 0.1.1 | ||
$ npmv p | ||
//=> Version: 0.1.2 | ||
$ npmv m | ||
//=> Version: 0.2.0 | ||
$ npmv M | ||
//=> Version: 1.0.0 | ||
``` |
8104
162
59
4
+ Addedjs-object-pretty-print@0.3.0(transitive)