Draft
Conversation
|
hey @anthonyjoeseph, it's been a while since this was opened. Is it still the direction of travel for the io-ts POC and (hopefully) next major version of it? Do you need any help with this? |
Owner
|
@cdimitroulas The next major iteration of a I don't plan to make changes to Once |
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.
Closes #453, Closes #635
Completes the work started by @gcanti in the poc branch, which is explained at a high level here (by the author) and in the docs
As per the notes in the POC branch, all
Schemable-related code has been moved into a separate repo called io-ts-contrib. It's registered under anthonyjoeseph's GitHub account, but ownership would ideally be transferred to a maintainer of io-ts(This PR is still a draft, pending the following)
TODO
LeafEerror types that are printable, and how to pattern match on errors (based on gcanti's explanation)io-ts-contrib TODO:
GuardArbitraryJsonSchemaTypeOpen Questions
Does io-ts 3.0.0 depend on fp-ts 3.0.0 still? (I thought I saw that somewhere but I can't find it now) Why?
Any way to use Kleisli to remove duplicate code between Decoders and TaskDecoders? Maybe through the help of multiple case-specific Applicative, Chain, Semigroup and/or Alt instances? (Or is this even worth doing?)
Why do decoders store their metadata at the value level? DecodeErrors make sense, that metadata is used for walking the tree, but what's the decoder stuff for?
Why was 'refine' originally removed from Decoder2? fromRefinement? (This PR adds
refinementback in)Add Alt & Category instances for Decoder and TaskDecoder?
Decoder/TaskDecoder - input Ord instance for traversing? Or standardize "Ord.trivial"?
TaskDecoder - input Applicative instances? Or standardize "Task.parallel" (would probably be sufficient for e.g. graphql resolvers)?