-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
- Add missing codecs for built-in types
-
null -
undefined -
bigint -
date(accepts validDateobjects) -
integer -
set(members) -
map(keys, values) -
unknown
-
- Add missing basic combinators
-
tuple([...codecs]) -
nullable(codec) -
brand(codec, brand) -
pattern(codec, regexp) -
refinement(codec, predicate, makeError) -
taggedUnion(tag, ...codecs) -
intersection(...codecs)
-
- Add codecs for parsing some built-in data types from a JSON-serializable format (how to name these?)
-
bigintFromString -
setFromArray(serialized to an array) -
dateFromString(currently named asdate) -
mapFromEntries(serialized to an array of key-value tuples)
-
- Add missing object combinators, such as
- A version of
objectthat doesn't strip extra keys -
partial(props)
- A version of
- Built-in refinements, such as
-
email -
uuid
-
- Think about how to support Temporal API
- Add support for recursive types (e.g.
lazy) - Add some structured way to restrict input values more carefully (minimum length, maximum length, value greater than, value less than, regex pattern etc.). Should work with built-in codecs like
string,array,number,bigintetc. The additional restrictions should be stored in the metadata for introspection. - With the above machinery, add some convenience codecs like
nonEmptyArrayornonEmptyString,positiveIntegeretc. - Do a polish pass on error types
- Decide on the set of built-in error types
- Add human readable messages to errors (
"Expected value to be a string"etc.) - Add actual/expected values to error types
- Decide if the
pathproperty should be a string or an array - Try out @milankinen's idea for getting rid of the separate
validatemethod
- Fix tree shaking by adding necessary pure annotations
- Add more comprehensive benchmarks & tune performance accordingly
- Add documentation
- Add general documentation to README
- Add comprehensive TSDoc comments to the public API
- Generate API docs from the TSDoc comments
- Try to write something like an JSON schema generator to try out the introspection capabilities
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels