@EnsureNonEmptyArrayDecodable#2831
Merged
Merged
Conversation
This allows us to define properties in a `Decodable` type and ensure that they're not empty.
Example
```swift
struct Data: Codable, Equatable {
@EnsureNonEmptyArrayDecodable
var value: [String]
}
```
Codecov Report
@@ Coverage Diff @@
## main #2831 +/- ##
==========================================
+ Coverage 86.56% 86.58% +0.02%
==========================================
Files 216 217 +1
Lines 15495 15513 +18
==========================================
+ Hits 13413 13432 +19
+ Misses 2082 2081 -1
|
tonidero
approved these changes
Jul 18, 2023
tonidero
left a comment
Contributor
There was a problem hiding this comment.
Looks good, just a suggestion
| let array = try container.decode([Value].self) | ||
|
|
||
| if array.isEmpty { | ||
| throw Error() |
Contributor
There was a problem hiding this comment.
This seems a bit of a generic error... Would it be possible to include the property that is causing this error?
Contributor
Author
There was a problem hiding this comment.
It’s EnsureNonEmptyArray.Error. When you decode the top level object JSONDecoder will include the information for what key failed :)
NachoSoto
added a commit
that referenced
this pull request
Jul 18, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 19, 2023
**This is an automatic release.** ### Dependency Updates * Bump fastlane from 2.213.0 to 2.214.0 (#2824) via dependabot[bot] (@dependabot[bot]) ### Other Changes * `MainThreadMonitor`: don't crash if there is no test in progress (#2838) via NachoSoto (@NachoSoto) * `CI`: fixed Fastlane APITester lanes (#2836) via NachoSoto (@NachoSoto) * `Integration Tests`: workaround Swift runtime crash (#2826) via NachoSoto (@NachoSoto) * `@EnsureNonEmptyArrayDecodable` (#2831) via NachoSoto (@NachoSoto) * `iOS 17`: added tests for simulating cancellations (#2597) via NachoSoto (@NachoSoto) * `CI`: make all `Codecov` jobs `informational` (#2828) via NachoSoto (@NachoSoto) * `MainThreadMonitor`: check deadlocks only ever N seconds (#2820) via NachoSoto (@NachoSoto) * New `@NonEmptyStringDecodable` (#2819) via NachoSoto (@NachoSoto) * `MockDeviceCache`: avoid using real `UserDefaults` (#2814) via NachoSoto (@NachoSoto) * `throwAssertion`: fixed Xcode 15 compilation (#2813) via NachoSoto (@NachoSoto) * `CustomEntitlementsComputation`: fixed API testers (#2815) via NachoSoto (@NachoSoto) * `PackageTypeTests`: fixed iOS 12 (#2807) via NachoSoto (@NachoSoto) * `Tests`: avoid race-condition in leak detection (#2806) via NachoSoto (@NachoSoto) * Revert "`Unit Tests`: removed leak detection" (#2805) via NachoSoto (@NachoSoto) * `PackageType: Codable` implementation (#2797) via NachoSoto (@NachoSoto) * `SystemInfo.init` no longer `throws` (#2803) via NachoSoto (@NachoSoto) * `Trusted Entitlements`: add support for signing `POST` body (#2753) via NachoSoto (@NachoSoto) * `Tests`: unified default timeouts (#2801) via NachoSoto (@NachoSoto) * `Tests`: removed forced-unwrap (#2799) via NachoSoto (@NachoSoto) * `Tests`: added missing `super.setUp()` (#2804) via NachoSoto (@NachoSoto) * Replaced `FatalErrorUtil` with `Nimble` (#2802) via NachoSoto (@NachoSoto) * `Tests`: fixed another flaky test (#2795) via NachoSoto (@NachoSoto) * `TimingUtil`: improved tests by using `Clock` (#2794) via NachoSoto (@NachoSoto) * `IgnoreDecodeErrors`: log decoding error (#2778) via NachoSoto (@NachoSoto) * `TestLogHandler`: changed all tests to explicitly deinitialize it (#2784) via NachoSoto (@NachoSoto) * `LocalReceiptParserStoreKitTests`: fixed flaky test failure (#2785) via NachoSoto (@NachoSoto) * `Unit Tests`: removed leak detection (#2792) via NachoSoto (@NachoSoto) * `Tests`: fixed another flaky failure with asynchronous check (#2786) via NachoSoto (@NachoSoto) --------- Co-authored-by: NachoSoto <ignaciosoto90@gmail.com>
NachoSoto
added a commit
that referenced
this pull request
Jul 20, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 23, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 24, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 24, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 25, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 26, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 27, 2023
NachoSoto
added a commit
that referenced
this pull request
Jul 31, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 3, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 7, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 9, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 11, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 14, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 17, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 24, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 28, 2023
NachoSoto
added a commit
that referenced
this pull request
Aug 31, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 1, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 6, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 6, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 6, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 7, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 8, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 14, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 14, 2023
NachoSoto
added a commit
that referenced
this pull request
Sep 15, 2023
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This allows us to define properties in a
Decodabletype and ensure that they're not empty.Example
Used for #2832.