Replace contructor parameter object with regular arguments #1932
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤔 What's changed?
Runtime
's constructor with a regular list of method argumentsINewRuntimeOptions
⚡️ What's your motivation?
Working on #1770 with @BlueMona was the first time I've really delved into the Cucumber-JS codebase, and the idioms around using constructor parameter objects felt like a hangover from when the codebase was written in JavaScript.
Personally, I think that unless the parameter object has some kind of meaning in the domain, it's better not to have a type for it, and to just pass a list of parameters instead.
I like the fact that we can reduce the boilerplate noise by using TypeScript's constructor assignment feature.
So this is a proposal, for discussion. I think it might be helpful to lighten the codebase a little and reduce the number of types we have to define if we follow this convention more generally. I'd be happy to potter away sending more PRs to do this in other places.
I guess this would end up being a change to the public API in some cases, and therefore might need a major release, so could be a bit disruptive?
🏷️ What kind of change is this?
📋 Checklist: