New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PR-AN-01: Global Middleware feature. #1119
PR-AN-01: Global Middleware feature. #1119
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a couple minor tweaks; love this feature idea.
.command('myCommand', 'some command', {}, function(argv){ | ||
console.log('Running myCommand!'); | ||
}) | ||
.middleware([mwFunc1, mwFunc2]).argv; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can I pass in a single function, rather than an array?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, it can either be a single function or a list of functions.
globalMiddleware.should.have.lengthOf(2) | ||
}) | ||
|
||
it('should add a single callback to global middleware', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mind adding one functional test that demonstrates global middleware being applied? either in this file, or perhaps in the yargs.js
test file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added functional test below.
12719e5
to
07e0994
Compare
docs/api.md
Outdated
|
||
Define global middleware functions to be called first, in list order, for all cli command. | ||
|
||
The `callbacks` parameter can be a function or a list of functions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a note that each function gets passed a reference to argv.
globalMiddleware.should.have.lengthOf(2) | ||
}) | ||
|
||
it('should add a single callback to global middleware', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added functional test below.
@aorinevo great work 👍 love this feature. |
@aorinevo this feature is now available on If the redux work goes smooth, I think this will probably end up being |
This Pull Request updates dependency [yargs](https://github.com/yargs/yargs) from `^11.0.0` to `^12.0.0` <details> <summary>Release Notes</summary> ### [`v12.0.1`](https://github.com/yargs/yargs/blob/master/CHANGELOG.md#​1201httpsgithubcomyargsyargscomparev1200v1201-2018-06-29) [Compare Source](yargs/yargs@v12.0.0...v12.0.1) #### [12.0.1](yargs/yargs@v12.0.0...v12.0.1) (2018-06-29) --- ### [`v12.0.0`](https://github.com/yargs/yargs/blob/master/CHANGELOG.md#​1200httpsgithubcomyargsyargscomparev1110v1200-2018-06-26) [Compare Source](yargs/yargs@v11.1.0...v12.0.0) ##### Bug Fixes * .argv and .parse() now invoke identical code path ([#​1126](`yargs/yargs#1126)) ([f13ebf4](yargs/yargs@f13ebf4)) * remove the trailing white spaces from the help output ([#​1090](`yargs/yargs#1090)) ([3f0746c](yargs/yargs@3f0746c)) * **completion:** Avoid default command and recommendations during completion ([#​1123](`yargs/yargs#1123)) ([036e7c5](yargs/yargs@036e7c5)) ##### Chores * test Node.js 6, 8 and 10 ([#​1160](`yargs/yargs#1160)) ([84f9d2b](yargs/yargs@84f9d2b)) * upgrade to version of yargs-parser that does not populate value for unset boolean ([#​1104](`yargs/yargs#1104)) ([d4705f4](yargs/yargs@d4705f4)) ##### Features * add support for global middleware, useful for shared tasks like metrics ([#​1119](`yargs/yargs#1119)) ([9d71ac7](yargs/yargs@9d71ac7)) * allow setting scriptName $0 ([#​1143](`yargs/yargs#1143)) ([a2f2eae](yargs/yargs@a2f2eae)) * remove `setPlaceholderKeys` ([#​1105](`yargs/yargs#1105)) ([6ee2c82](yargs/yargs@6ee2c82)) ##### BREAKING CHANGES * Options absent from `argv` (not set via CLI argument) are now absent from the parsed result object rather than being set with `undefined` * drop Node 4 from testing matrix, such that we'll gradually start drifting away from supporting Node 4. * yargs-parser does not populate 'false' when boolean flag is not passed * tests that assert against help output will need to be updated --- </details> --- This PR has been generated by [Renovate Bot](https://renovatebot.com).
PR-AN-03: Update API readme.
PR-AN-01: Fix tests.
PR-AN-01: Remove param defaults for Node 4 comp.
PR-AN-01: Remove spread operator for Node 4 comp.
PR-AN-01: Add unit tests for middleware.
PR-AN-01: Bind this to middleware for chaining.