don't return 255 code any more, misc tweaks
This commit is contained in:
parent
813ed1e1a6
commit
65955ef394
250
.eslintrc
250
.eslintrc
@ -1,250 +1,2 @@
|
|||||||
# https://github.com/eslint/eslint/tree/master/docs/rules
|
|
||||||
|
|
||||||
root: true
|
root: true
|
||||||
|
extends: eslint-config-silverwind
|
||||||
parserOptions:
|
|
||||||
ecmaVersion: 2017
|
|
||||||
|
|
||||||
rules:
|
|
||||||
accessor-pairs: [2]
|
|
||||||
array-bracket-newline: [0]
|
|
||||||
array-bracket-spacing: [2, never]
|
|
||||||
array-callback-return: [0]
|
|
||||||
array-element-newline: [0]
|
|
||||||
arrow-body-style: [0]
|
|
||||||
arrow-parens: [2, as-needed]
|
|
||||||
arrow-spacing: [2, {before: true, after: true}]
|
|
||||||
block-scoped-var: [2]
|
|
||||||
brace-style: [2, 1tbs, {allowSingleLine: true}]
|
|
||||||
camelcase: [2, {properties: never}]
|
|
||||||
capitalized-comments: [0]
|
|
||||||
class-methods-use-this: [2]
|
|
||||||
comma-dangle: [0]
|
|
||||||
comma-spacing: [2, {before: false, after: true}]
|
|
||||||
comma-style: [2, last]
|
|
||||||
complexity: [0]
|
|
||||||
computed-property-spacing: [2, never]
|
|
||||||
consistent-return: [0]
|
|
||||||
constructor-super: [2]
|
|
||||||
curly: [0]
|
|
||||||
default-case: [0]
|
|
||||||
dot-location: [2, property]
|
|
||||||
dot-notation: [0]
|
|
||||||
eol-last: [2]
|
|
||||||
eqeqeq: [2]
|
|
||||||
for-direction: [2]
|
|
||||||
func-call-spacing: [2, never]
|
|
||||||
func-name-matching: [2]
|
|
||||||
func-names: [0]
|
|
||||||
function-paren-newline: [0]
|
|
||||||
generator-star-spacing: [2, before]
|
|
||||||
global-require: [0]
|
|
||||||
guard-for-in: [2]
|
|
||||||
handle-callback-err: [2, ^(err|error)$]
|
|
||||||
id-blacklist: [0]
|
|
||||||
id-length: [0]
|
|
||||||
id-match: [0]
|
|
||||||
indent: [2, 2, {VariableDeclarator: 0}]
|
|
||||||
jsx-quotes: [0]
|
|
||||||
key-spacing: [0]
|
|
||||||
keyword-spacing: [2]
|
|
||||||
linebreak-style: [2, unix]
|
|
||||||
lines-around-comment: [0]
|
|
||||||
lines-around-directive: [0]
|
|
||||||
lines-between-class-members: [2, never]
|
|
||||||
max-len: [0]
|
|
||||||
max-lines: [0]
|
|
||||||
max-nested-callbacks: [0]
|
|
||||||
max-params: [0]
|
|
||||||
max-statements-per-line: [0]
|
|
||||||
max-statements: [0]
|
|
||||||
multiline-comment-style: [2, separate-lines]
|
|
||||||
multiline-ternary: [0]
|
|
||||||
new-cap: [0]
|
|
||||||
new-parens: [2]
|
|
||||||
newline-before-return: [0]
|
|
||||||
newline-per-chained-call: [0]
|
|
||||||
no-alert: [0]
|
|
||||||
no-array-constructor: [0]
|
|
||||||
no-await-in-loop: [0]
|
|
||||||
no-bitwise: [0]
|
|
||||||
no-buffer-constructor: [0] # enable for node 6
|
|
||||||
no-caller: [2]
|
|
||||||
no-case-declarations: [2]
|
|
||||||
no-class-assign: [2]
|
|
||||||
no-compare-neg-zero: [2]
|
|
||||||
no-cond-assign: [2, except-parens]
|
|
||||||
no-confusing-arrow: [0]
|
|
||||||
no-const-assign: [2]
|
|
||||||
no-constant-condition: [0]
|
|
||||||
no-continue: [0]
|
|
||||||
no-control-regex: [2]
|
|
||||||
no-debugger: [2]
|
|
||||||
no-delete-var: [2]
|
|
||||||
no-div-regex: [0]
|
|
||||||
no-dupe-args: [2]
|
|
||||||
no-dupe-class-members: [2]
|
|
||||||
no-dupe-keys: [2]
|
|
||||||
no-duplicate-case: [2]
|
|
||||||
no-duplicate-imports: [2]
|
|
||||||
no-else-return: [0]
|
|
||||||
no-empty-character-class: [2]
|
|
||||||
no-empty-function: [0]
|
|
||||||
no-empty-pattern: [2]
|
|
||||||
no-empty: [2, {allowEmptyCatch: true}]
|
|
||||||
no-eq-null: [2]
|
|
||||||
no-eval: [2]
|
|
||||||
no-ex-assign: [2]
|
|
||||||
no-extend-native: [2]
|
|
||||||
no-extra-bind: [2]
|
|
||||||
no-extra-boolean-cast: [2]
|
|
||||||
no-extra-label: [0]
|
|
||||||
no-extra-parens: [0]
|
|
||||||
no-extra-semi: [2]
|
|
||||||
no-fallthrough: [2]
|
|
||||||
no-floating-decimal: [0]
|
|
||||||
no-func-assign: [2]
|
|
||||||
no-global-assign: [2]
|
|
||||||
no-implicit-coercion: [0]
|
|
||||||
no-implicit-globals: [0]
|
|
||||||
no-implied-eval: [2]
|
|
||||||
no-inline-comments: [0]
|
|
||||||
no-inner-declarations: [2]
|
|
||||||
no-invalid-regexp: [2]
|
|
||||||
no-invalid-this: [0]
|
|
||||||
no-irregular-whitespace: [2]
|
|
||||||
no-iterator: [2]
|
|
||||||
no-label-var: [2]
|
|
||||||
no-labels: [2]
|
|
||||||
no-lone-blocks: [2]
|
|
||||||
no-lonely-if: [0]
|
|
||||||
no-loop-func: [0]
|
|
||||||
no-magic-numbers: [0]
|
|
||||||
no-mixed-operators: [0]
|
|
||||||
no-mixed-requires: [2, true]
|
|
||||||
no-mixed-spaces-and-tabs: [2]
|
|
||||||
no-multi-spaces:
|
|
||||||
- 2
|
|
||||||
- ignoreEOLComments: true
|
|
||||||
exceptions:
|
|
||||||
VariableDeclarator: true
|
|
||||||
ImportDeclaration: true
|
|
||||||
Property: true
|
|
||||||
no-multi-str: [2]
|
|
||||||
no-multiple-empty-lines: [2, {max: 1, maxEOF: 0, maxBOF: 0}]
|
|
||||||
no-native-reassign: [2]
|
|
||||||
no-negated-condition: [0]
|
|
||||||
no-negated-in-lhs: [2]
|
|
||||||
no-nested-ternary: [0]
|
|
||||||
no-new-func: [2]
|
|
||||||
no-new-object: [2]
|
|
||||||
no-new-require: [2]
|
|
||||||
no-new-symbol: [2]
|
|
||||||
no-new-wrappers: [2]
|
|
||||||
no-new: [0]
|
|
||||||
no-obj-calls: [2]
|
|
||||||
no-octal-escape: [2]
|
|
||||||
no-octal: [2]
|
|
||||||
no-path-concat: [2]
|
|
||||||
no-process-exit: [0]
|
|
||||||
no-proto: [2]
|
|
||||||
no-redeclare: [2]
|
|
||||||
no-regex-spaces: [2]
|
|
||||||
no-restricted-imports: [0]
|
|
||||||
no-restricted-modules: [2, domain, freelist, smalloc, sys]
|
|
||||||
no-restricted-syntax: [2, WithStatement]
|
|
||||||
no-return-assign: [0]
|
|
||||||
no-return-await: [0]
|
|
||||||
no-script-url: [2]
|
|
||||||
no-self-assign: [2, {props: true}]
|
|
||||||
no-self-compare: [2]
|
|
||||||
no-sequences: [2]
|
|
||||||
no-shadow-restricted-names: [2]
|
|
||||||
no-shadow: [0]
|
|
||||||
no-spaced-func: [2]
|
|
||||||
no-sparse-arrays: [2]
|
|
||||||
no-tabs: [2]
|
|
||||||
no-template-curly-in-string: [2]
|
|
||||||
no-this-before-super: [2]
|
|
||||||
no-throw-literal: [2]
|
|
||||||
no-trailing-spaces: [2]
|
|
||||||
no-undef-init: [2]
|
|
||||||
no-undef: [2]
|
|
||||||
no-undefined: [0]
|
|
||||||
no-underscore-dangle: [0]
|
|
||||||
no-unexpected-multiline: [2]
|
|
||||||
no-unmodified-loop-condition: [2]
|
|
||||||
no-unneeded-ternary: [2]
|
|
||||||
no-unreachable: [2]
|
|
||||||
no-unsafe-finally: [2]
|
|
||||||
no-unsafe-negation: [2]
|
|
||||||
no-unused-expressions: [2]
|
|
||||||
no-unused-labels: [0]
|
|
||||||
no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_}]
|
|
||||||
no-use-before-define: [2, nofunc]
|
|
||||||
no-useless-call: [2]
|
|
||||||
no-useless-computed-key: [2]
|
|
||||||
no-useless-concat: [2]
|
|
||||||
no-useless-constructor: [2]
|
|
||||||
no-useless-escape: [2]
|
|
||||||
no-var: [2]
|
|
||||||
no-warning-comments: [0]
|
|
||||||
no-whitespace-before-property: [2]
|
|
||||||
no-with: [2]
|
|
||||||
nonblock-statement-body-position: [2]
|
|
||||||
object-curly-newline: [0]
|
|
||||||
object-curly-spacing: [2, never]
|
|
||||||
object-shorthand: [0]
|
|
||||||
one-var-declaration-per-line: [0]
|
|
||||||
one-var: [0]
|
|
||||||
operator-assignment: [2, always]
|
|
||||||
operator-linebreak: [2, after]
|
|
||||||
padded-blocks: [2, never]
|
|
||||||
prefer-arrow-callback: [2]
|
|
||||||
prefer-const: [2]
|
|
||||||
prefer-destructuring: [0]
|
|
||||||
prefer-numeric-literals: [2]
|
|
||||||
prefer-promise-reject-errors: [2, {allowEmptyReject: false}]
|
|
||||||
prefer-reflect: [0]
|
|
||||||
prefer-rest-params: [2]
|
|
||||||
prefer-spread: [2]
|
|
||||||
prefer-template: [0]
|
|
||||||
quote-props: [0]
|
|
||||||
quotes: [2, double, {avoidEscape: true, allowTemplateLiterals: true}]
|
|
||||||
radix: [2, as-needed]
|
|
||||||
require-await: [0]
|
|
||||||
require-jsdoc: [0]
|
|
||||||
require-yield: [2]
|
|
||||||
semi-spacing: [2, {before: false, after: true}]
|
|
||||||
semi-style: [2, last]
|
|
||||||
semi: [2, always]
|
|
||||||
sort-imports: [0]
|
|
||||||
sort-keys: [0]
|
|
||||||
space-before-blocks: [2, always]
|
|
||||||
space-before-function-paren: [2, {anonymous: never, named: never, asyncArrow: always}]
|
|
||||||
space-in-parens: [2, never]
|
|
||||||
space-infix-ops: [2]
|
|
||||||
space-unary-ops: [2]
|
|
||||||
spaced-comment: [2, always, {markers: ["!"]}]
|
|
||||||
strict: [0]
|
|
||||||
switch-colon-spacing: [2]
|
|
||||||
symbol-description: [2]
|
|
||||||
template-curly-spacing: [2, never]
|
|
||||||
template-tag-spacing: [2, never]
|
|
||||||
unicode-bom: [2, never]
|
|
||||||
use-isnan: [2]
|
|
||||||
valid-typeof: [2]
|
|
||||||
wrap-iife: [2, inside]
|
|
||||||
wrap-regex: [0]
|
|
||||||
yield-star-spacing: [2, {before: true, after: false}]
|
|
||||||
yoda: [2, never]
|
|
||||||
|
|
||||||
env:
|
|
||||||
amd: true
|
|
||||||
browser: true
|
|
||||||
commonjs: true
|
|
||||||
es6: true
|
|
||||||
greasemonkey: true
|
|
||||||
jquery: true
|
|
||||||
mocha: true
|
|
||||||
node: true
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<img src="https://i.imgur.com/jBjNoKO.png"/>
|
<img src="https://i.imgur.com/jBjNoKO.png"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
`updates` is a CLI tool which checks for dependency updates of the current project and optionally updates `package.json`. It is typically able to complete in less than a second. It can output JSON for interop with other tools.
|
`updates` is a CLI tool which checks for npm dependency updates of the current project and optionally updates `package.json`. It is typically able to complete in less than a second.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ package.json updated!
|
|||||||
```
|
```
|
||||||
### JSON Output
|
### JSON Output
|
||||||
|
|
||||||
The resulting JSON object always has the key `results` which lists available updates. Additionally, `message` and `error` properties can be present.
|
`updates` can output JSON. The result is always an object with the key `results` and depending on operation, , `message` and `error` properties can also be present.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ updates -j
|
$ updates -j
|
||||||
|
10
package.json
10
package.json
@ -14,11 +14,14 @@
|
|||||||
"test": "make test"
|
"test": "make test"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
"dependencies",
|
||||||
"update",
|
"update",
|
||||||
|
"updates",
|
||||||
|
"check",
|
||||||
|
"checker",
|
||||||
"npm",
|
"npm",
|
||||||
"yarn",
|
"yarn",
|
||||||
"packages",
|
"packages"
|
||||||
"dependencies"
|
|
||||||
],
|
],
|
||||||
"files": [
|
"files": [
|
||||||
"updates.js"
|
"updates.js"
|
||||||
@ -33,6 +36,7 @@
|
|||||||
"semver": "^5.5.0"
|
"semver": "^5.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^4.19.1"
|
"eslint": "^4.19.1",
|
||||||
|
"eslint-config-silverwind": "^1.0.42"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
35
updates.js
35
updates.js
@ -3,17 +3,21 @@
|
|||||||
|
|
||||||
const args = require("minimist")(process.argv.slice(2), {
|
const args = require("minimist")(process.argv.slice(2), {
|
||||||
boolean: [
|
boolean: [
|
||||||
"update", "u", "json", "j", "color", "no-color", "version", "v",
|
"color", "no-color",
|
||||||
"help", "h", "prerelease", "p"
|
"help", "h",
|
||||||
|
"json", "j",
|
||||||
|
"prerelease", "p",
|
||||||
|
"update", "u",
|
||||||
|
"version", "v",
|
||||||
],
|
],
|
||||||
alias: {
|
alias: {
|
||||||
u: "update",
|
|
||||||
p: "prerelease",
|
|
||||||
i: "include",
|
|
||||||
e: "exclude",
|
e: "exclude",
|
||||||
|
h: "help",
|
||||||
|
i: "include",
|
||||||
j: "json",
|
j: "json",
|
||||||
|
p: "prerelease",
|
||||||
|
u: "update",
|
||||||
v: "version",
|
v: "version",
|
||||||
h: "help"
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -24,18 +28,13 @@ if (args.help) {
|
|||||||
-u, --update Update package.json
|
-u, --update Update package.json
|
||||||
-p, --prerelease Consider prerelease versions
|
-p, --prerelease Consider prerelease versions
|
||||||
-j, --json Output a JSON object
|
-j, --json Output a JSON object
|
||||||
-i, --include <name,...> Only include given packages
|
-i, --include <pkg,...> Only include given packages
|
||||||
-e, --exclude <name,...> Exclude given packages
|
-e, --exclude <pkg,...> Exclude given packages
|
||||||
-c, --color Force-enable color output
|
-c, --color Force-enable color output
|
||||||
-n, --no-color Disable color output
|
-n, --no-color Disable color output
|
||||||
-v, --version Print the version
|
-v, --version Print the version
|
||||||
-h, --help Print this help
|
-h, --help Print this help
|
||||||
|
|
||||||
Exit Codes:
|
|
||||||
0 Success
|
|
||||||
1 Error
|
|
||||||
255 Dependencies are up to date
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
$ updates
|
$ updates
|
||||||
$ updates -u
|
$ updates -u
|
||||||
@ -79,13 +78,13 @@ const deps = {};
|
|||||||
try {
|
try {
|
||||||
pkgStr = fs.readFileSync(packageFile, "utf8");
|
pkgStr = fs.readFileSync(packageFile, "utf8");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
finish(new Error("Unable to open package.json"));
|
finish(new Error(`Unable to open package.json: ${err.message}`));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pkg = JSON.parse(pkgStr);
|
pkg = JSON.parse(pkgStr);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
finish(new Error("Error parsing package.json:" + err.message));
|
finish(new Error(`Error parsing package.json: ${err.message}`));
|
||||||
}
|
}
|
||||||
|
|
||||||
let include, exclude;
|
let include, exclude;
|
||||||
@ -127,7 +126,7 @@ Promise.all(Object.keys(deps).map(dep => rp(url + dep))).then(responses => {
|
|||||||
|
|
||||||
// log results
|
// log results
|
||||||
if (!Object.keys(deps).length) {
|
if (!Object.keys(deps).length) {
|
||||||
finish("All packages are up to date.", {exitCode: 255});
|
finish("All packages are up to date.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// exit if -u is not given
|
// exit if -u is not given
|
||||||
@ -137,7 +136,7 @@ Promise.all(Object.keys(deps).map(dep => rp(url + dep))).then(responses => {
|
|||||||
|
|
||||||
fs.writeFile(packageFile, updatePkg(), "utf8", err => {
|
fs.writeFile(packageFile, updatePkg(), "utf8", err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
finish(new Error("Error writing package.json:" + err.message));
|
finish(new Error(`Error writing package.json: ${err.message}`));
|
||||||
} else {
|
} else {
|
||||||
finish("package.json updated!");
|
finish("package.json updated!");
|
||||||
}
|
}
|
||||||
@ -201,7 +200,7 @@ function formatDeps() {
|
|||||||
"new": highlightDiff(deps[dep].new, deps[dep].old, true),
|
"new": highlightDiff(deps[dep].new, deps[dep].old, true),
|
||||||
};
|
};
|
||||||
}), {
|
}), {
|
||||||
columnSplitter: " ",
|
columnSplitter: " ".repeat(4),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user