Skip to content
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

Merged
merged 10 commits into from May 1, 2018

Conversation

aorinevo
Copy link
Contributor

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.

Copy link
Member

@bcoe bcoe left a 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;
Copy link
Member

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?

Copy link
Contributor Author

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', () => {
Copy link
Member

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.

Copy link
Contributor Author

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 aorinevo force-pushed the FEATURE/PR-AN-01_master_AN_global_mw branch from 12719e5 to 07e0994 Compare April 27, 2018 18:50
@aorinevo aorinevo changed the title PR-AN-01: Global Middleware feature. WIP: PR-AN-01: Global Middleware feature. Apr 27, 2018
@aorinevo aorinevo changed the title WIP: PR-AN-01: Global Middleware feature. PR-AN-01: Global Middleware feature. Apr 29, 2018
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.
Copy link
Contributor Author

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', () => {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added functional test below.

@bcoe
Copy link
Member

bcoe commented May 1, 2018

@aorinevo great work 👍 love this feature.

@bcoe bcoe merged commit 9d71ac7 into yargs:master May 1, 2018
@bcoe
Copy link
Member

bcoe commented Jun 26, 2018

@aorinevo this feature is now available on npm i yargs@next, mind giving it one more try and letting me know if things work as expected?

If the redux work goes smooth, I think this will probably end up being yargs@13.x 👍

@aorinevo aorinevo deleted the FEATURE/PR-AN-01_master_AN_global_mw branch June 26, 2018 13:38
eliperelman pushed a commit to neutrinojs/neutrino that referenced this pull request Jul 2, 2018
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#&#8203;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#&#8203;1200httpsgithubcomyargsyargscomparev1110v1200-2018-06-26)
[Compare Source](yargs/yargs@v11.1.0...v12.0.0)
##### Bug Fixes

* .argv and .parse() now invoke identical code path ([#&#8203;1126](`yargs/yargs#1126)) ([f13ebf4](yargs/yargs@f13ebf4))
* remove the trailing white spaces from the help output ([#&#8203;1090](`yargs/yargs#1090)) ([3f0746c](yargs/yargs@3f0746c))
* **completion:** Avoid default command and recommendations during completion ([#&#8203;1123](`yargs/yargs#1123)) ([036e7c5](yargs/yargs@036e7c5))
##### Chores

* test Node.js 6, 8 and 10 ([#&#8203;1160](`yargs/yargs#1160)) ([84f9d2b](yargs/yargs@84f9d2b))
* upgrade to version of yargs-parser that does not populate value for unset boolean ([#&#8203;1104](`yargs/yargs#1104)) ([d4705f4](yargs/yargs@d4705f4))
##### Features

* add support for global middleware, useful for shared tasks like metrics ([#&#8203;1119](`yargs/yargs#1119)) ([9d71ac7](yargs/yargs@9d71ac7))
* allow setting scriptName $0 ([#&#8203;1143](`yargs/yargs#1143)) ([a2f2eae](yargs/yargs@a2f2eae))
* remove `setPlaceholderKeys` ([#&#8203;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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants