Tags:
- [New Feature]
- [Bug Fix]
- [Breaking Change]
- [Documentation]
- [Internal]
- [Polish]
- [Experimental]
Note: Gaps between patch versions are faulty/broken releases. Note: A feature tagged as Experimental is in a high state of flux, you're at risk of it changing without notice.
- New Feature
- use
unknown
asmixed
(@gcanti)
- use
- Bug Fix
- should emit expected keys while decoding, fix #214 (@gcanti)
- Bug Fix
- align
TaggedExact
definition with siblings, fix #223 (@gcanti)
- align
- Bug Fix
- dictionary type should not allow arrays, fix #218 (@gcanti)
- Polish
- use interface instead of type alias (@gcanti)
Context
Errors
Any
Mixed
- use interface instead of type alias (@gcanti)
- New Feature
- add
TaggedUnionType
(@gcanti)
- add
- Polish
- allow recursive types in tagged unions (@gcanti)
- New Feature
- add
void
runtime type (@gcanti)
- add
- Bug Fix
- partial combinator should preserve additional properties while encoding, fixes #179 (@gcanti)
- Polish
- use
useIdentity
when possible (@gcanti)
- use
- Internal
- fix broken build with
[email protected]
, closes #174 (@gcanti)
- fix broken build with
- Internal
- upgrade to
[email protected]
(@gcanti)
- upgrade to
- Bug Fix
- fix
alias
implementation (@gcanti) - handle exact types in
isTagged
(@gcanti)
- fix
- Experimental
- add
clean
/alias
functions, closes #149 (@gcanti) - add
exact
combinator (@gcanti)- the
strict
combinator is deprecated
- the
- remove
optional
combinator (@gcanti)- it doesn't play well with advanced combinators, see here for a discussion
- add
- Bug Fix
taggedUnion
fails to decode when tag values are not string literals, fix #161 (@gcanti)
- Bug Fix
- workaround for upstream TypeScript bug 14041 (wrong generated declarations) (@gcanti)
- Internal
- optimize InterfaceType.encode (@gcanti)
- use definite assignment assertion for phantom fields (@gcanti)
- Bug Fix
- make
Context
readonly (@gcanti)
- make
- Internal
- optimizations, #137 (@gcanti, @sledorze)
- Internal
- optimizations, #134 (@gcanti, @sledorze)
- Bug Fix
- fix
OutputOfPartialProps
name (@gcanti)
- fix
- Bug Fix
- fix
AnyType
by extendingType<any>
(@gcanti)
- fix
- Breaking Change
- upgrade to
[email protected]
- see gcanti#112 (@gcanti)
- upgrade to
- New Feature
- add decode and deprecate top level validate (@gcanti)
- Internal
- when checking validations use methods instead of top level functions (@gcanti)
- New Feature
- add
taggedUnion
combinator (@gcanti, @sledorze)
- add
- New Feature
recursive
combinator- add support for mutually recursive types, closes #114 (@gcanti)
- make it safer:
RT
now must extendType<mixed, A>
(@gcanti)
- New Feature
- add
mixed
type (@gcanti) - replace
any
withmixed
in all input type parameters (@gcanti)-export class StringType extends Type<any, string> { +export class StringType extends Type<mixed, string> { }
- add
- Bug Fix
- strict: should succeed validating an undefined field, closes #106 (@gcanti)
- Bug Fix
- revert 37c74a5e2038de063a950f9ba8d18b1f132ef450, closes #8 (@gcanti)
- New Feature
- add
Decoder
/Encoder
interfaces (@sledorze, @gcanti)
- add
- Internal
- perf optimizations (@sledorze, @gcanti)
- Bug Fix
- make all classes "dumb", fix #95 (@gcanti)
- Breaking Change
- remove
t.map
andt.mapWithName
(in general doesn't look serializable, needs more investigation) - remove
t.prism
(in general doesn't look serializable, needs more investigation) - change
Type
from interface to class and addS
type parameter- remove
t._A
- remove
- add
Type#serialize
- add
Type#is
(in order to serialize unions and while we're at it, looks useful anyway) - remove
t.is
(now that there'sType#is
is misleading)
- remove
- Experimental
- add Flowtype support (@gcanti)
- New Feature
- add
object
type, closes #86 (@gcanti)
- add
- New Feature
- add
strict
combinator, closes #84 (@phiresky, @gcanti)
- add
- Breaking Change
- upgrade
fp-ts
dependency (@gcanti)
- upgrade
- Bug Fix
- tag recursive types, fix #80 (@gcanti)
- Bug Fix
- incorrect compile time type for dictionary, fix #75 (@gcanti)
- Breaking Change
- upgrade to latest fp-ts (0.5.1) (@gcanti)
- New Feature
- add aliases for
null
andinterface
, closes #63 (@gcanti)
- add aliases for
- Internal
- handle latest fp-ts (0.4.3) (@gcanti)
- Breaking Change
- upgrade to latest fp-ts (0.4.0) (@gcanti)
- Internal
- allow for infinite unions (@gcanti)
- Bug Fix
- export and rename
interfaceType
to_interface
, fix #57 (@gcanti)
- export and rename
- Breaking Change
Type
is now an interface- types no more own a
is
method, uset.is
instead - unions no more own a
fold
method Reporter
,PathReporter
,ThrowReporter
are now top level modules
- Breaking Change
- upgrade to latest
fp-ts
(io-ts
APIs are not changed though) (@gcanti) - drop
lib-jsnext
folder
- upgrade to latest
- Bug Fix
- remove excess overloadings, fix #43 (@gcanti)
- New Feature
- add mapWithName and Functor instance, fix #37 (@gcanti)
- add prism combinator, fix #41 (@gcanti)
This is a breaking change only if you are using fp-ts APIs
- Breaking Change
- upgrade to latest fp-ts v0.2 (@gcanti)
- Internal
- upgrade to fp-ts v0.1 (@gcanti)
- New Feature
- add
partial
combinator (makes optional props possible) - add
readonly
combinator (values are not frozen in production) - add
readonlyArray
combinator (values are not frozen in production) - add
never
type
- add
- Breaking Changes
- remove
maybe
combinator, can be defined in userland asexport function maybe<RT extends t.Any>( type: RT, name?: string ): t.UnionType<[RT, typeof t.null], t.TypeOf<RT> | null> { return t.union([type, t.null], name) }
- remove
- Polish
- export
pathReporterFailure
function from default reporters
- export
- Bug Fix
- revert pruning excess properties (see gcanti#27 for context)
- revert
intersection
combinator accepting onlyInterfaceType
s
- Experimental
- Pattern matching / catamorphism for unions
-
New Feature
- add support for jsnext
- add
Integer
type
-
Breaking Changes
t.Object
type. Renamed tot.Dictionary
, now accepts arrays so is fully equivalent to{ [key: string]: any }
.t.instanceOf
combinator. Removed.t.object
combinator. Renamed tot.interface
.ObjectType
toInterfaceType
. Excess properties are now pruned.mapping
combinator. Renamed todictionary
.MappingType
toDictionaryType
.intersection
combinator. Due to the new excess property pruning int.interface
now only acceptInterfaceType
s.- API
isSuccess
removed, useeither.isRight
instead - API
isFailure
removed, useeither.isLeft
instead - API
fromValidation
removed
- Bug Fix
- reverse overloading definitions for unions, intersections and tuples, fix inference bug
Initial release