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
Remove undefined cases from inputs to all
function
#11048
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Using `all` currently looses type safety around the handling of input values which are possibly undefined. By adding the explicit undefined option to each argument, the undefined case outside the inputty type does not get captured. By removing the explicit `undefined` cases, the undefined is captured by the generic parameter and correctly carried through to the output type. For example, if an input to `all` is possibly undefined, the value after `all` won't be labeled as possibly undefined. ``` // pulumi.Input<string> | undefined let input = possiblyUndefinedInput(); // pulumi.Output<string> let original = pulumi.all([input])[0]; // pulumi.Output<string | undefined> let newBehaviour = pulumi.all([input])[0]; function possiblyUndefinedInput(): pulumi.Input<string> | undefined { return undefined; } ```
danielrbradley
added
area/sdks
Pulumi language SDKs
impact/usability
Something that impacts users' ability to use the product easily and intuitively
labels
Oct 17, 2022
Changelog[uncommitted] (2022-10-17)Bug Fixes
|
Frassle
approved these changes
Oct 17, 2022
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.
Seems fine to me
bors merge |
bors bot
added a commit
that referenced
this pull request
Oct 17, 2022
11048: Remove undefined cases from inputs to `all` function r=danielrbradley a=danielrbradley <!--- Thanks so much for your contribution! If this is your first time contributing, please ensure that you have read the [CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md) documentation. --> # Description Using `all` currently looses type safety around the handling of input values which are possibly undefined. By adding the explicit undefined option to each argument, the undefined case outside the inputty type does not get captured. By removing the explicit `undefined` cases, the undefined is captured by the generic parameter and correctly carried through to the output type. For example, if an input to `all` is possibly undefined, the value after `all` won't be labeled as possibly undefined. ```typescript // pulumi.Input<string> | undefined let input = possiblyUndefinedInput(); // pulumi.Output<string> let original = pulumi.all([input])[0]; // pulumi.Output<string | undefined> let newBehaviour = pulumi.all([input])[0]; function possiblyUndefinedInput(): pulumi.Input<string> | undefined { return undefined; } ``` ## Checklist <!--- Please provide details if the checkbox below is to be left unchecked. --> - [ ] I have added tests that prove my fix is effective or that my feature works <!--- User-facing changes require a CHANGELOG entry. --> - [x] I have run `make changelog` and committed the `changelog/pending/<file>` documenting my change <!-- If the change(s) in this PR is a modification of an existing call to the Pulumi Service, then the service should honor older versions of the CLI where this change would not exist. You must then bump the API version in /pkg/backend/httpstate/client/api.go, as well as add it to the service. --> - [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version <!-- `@Pulumi` employees: If yes, you must submit corresponding changes in the service repo. --> Co-authored-by: Daniel Bradley <daniel@pulumi.com>
Build failed: |
bors retry |
bors bot
added a commit
that referenced
this pull request
Oct 17, 2022
11048: Remove undefined cases from inputs to `all` function r=danielrbradley a=danielrbradley <!--- Thanks so much for your contribution! If this is your first time contributing, please ensure that you have read the [CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md) documentation. --> # Description Using `all` currently looses type safety around the handling of input values which are possibly undefined. By adding the explicit undefined option to each argument, the undefined case outside the inputty type does not get captured. By removing the explicit `undefined` cases, the undefined is captured by the generic parameter and correctly carried through to the output type. For example, if an input to `all` is possibly undefined, the value after `all` won't be labeled as possibly undefined. ```typescript // pulumi.Input<string> | undefined let input = possiblyUndefinedInput(); // pulumi.Output<string> let original = pulumi.all([input])[0]; // pulumi.Output<string | undefined> let newBehaviour = pulumi.all([input])[0]; function possiblyUndefinedInput(): pulumi.Input<string> | undefined { return undefined; } ``` ## Checklist <!--- Please provide details if the checkbox below is to be left unchecked. --> - [ ] I have added tests that prove my fix is effective or that my feature works <!--- User-facing changes require a CHANGELOG entry. --> - [x] I have run `make changelog` and committed the `changelog/pending/<file>` documenting my change <!-- If the change(s) in this PR is a modification of an existing call to the Pulumi Service, then the service should honor older versions of the CLI where this change would not exist. You must then bump the API version in /pkg/backend/httpstate/client/api.go, as well as add it to the service. --> - [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version <!-- `@Pulumi` employees: If yes, you must submit corresponding changes in the service repo. --> Co-authored-by: Daniel Bradley <daniel@pulumi.com>
Build failed: |
bors retry |
Build succeeded: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/sdks
Pulumi language SDKs
impact/usability
Something that impacts users' ability to use the product easily and intuitively
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.
Description
Using
all
currently looses type safety around the handling of input values which are possibly undefined. By adding the explicit undefined option to each argument, the undefined case outside the inputty type does not get captured.By removing the explicit
undefined
cases, the undefined is captured by the generic parameter and correctly carried through to the output type.For example, if an input to
all
is possibly undefined, the value afterall
won't be labeled as possibly undefined.Checklist
make changelog
and committed thechangelog/pending/<file>
documenting my change