44 KiB
Changelog
Tags:
- [New Feature]
- [Bug Fix]
- [Breaking Change]
- [Documentation]
- [Internal]
- [Polish]
- [Experimental]
- [Deprecation]
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.
1.19.3
- Polish
- add pointer to
Eqfor those looking at deprecatedSetoidinterface, fix #889 (@gcanti)
- add pointer to
1.19.2
- Bug Fix
- fix
Reader.ofdefinition (@gcanti)
- fix
1.19.1
- Bug Fix
- use default type parameters for constructors / lifting functions (@gcanti)
1.19.0
The goal of this release is to make the migration to v2 easier.
Since in v2 data types are no more implemented with classes, chainable APIs will be deprecated (in v1.20.0).
As an alternative, a pipe function is provided, along with suitable data-last top level functions (one for each deprecated method).
Example
Before
import * as O from 'fp-ts/lib/Option'
O.some(1)
.map(n => n * 2)
.chain(n === 0 ? O.none : O.some(1 / n))
.filter(n => n > 1)
.foldL(() => 'ko', () => 'ok')
After
import * as O from 'fp-ts/lib/Option'
import { pipe } from 'fp-ts/lib/pipeable'
pipe(
O.some(1),
O.map(n => n * 2),
O.chain(n === 0 ? O.none : O.some(1 / n)),
O.filter(n => n > 1),
O.fold(() => 'ko', () => 'ok')
)
Custom tslint rule
In order to make easier to spot all the occurrences of chainable APIs without depending on @deprecated, which would force you to migrate in one shot, a custom tslint rule is provided (@obsolete).
Configuration
Add the following lines to your tslint.json to turn the @obsolete rule on:
{
+ "rulesDirectory": ["./node_modules/fp-ts/rules"],
"rules": {
+ "obsolete": true
}
}
- New Feature
- add
Eqmodule (@gcanti) - backport top level data-last functions from v2 (@gcanti)
- backport
pipeablemodule form v2 (@gcanti) - backport
pipefunction form v2 (@gcanti) - backport
flowfunction form v2 (@gcanti) Array- add
isNonEmpty(@Stouffi)
- add
IOEither- add
foldIOandfoldIOEither(@bwlt)
- add
Record- add
recordinstance (@gcanti) - add
mapWithIndex(@gcanti) - add
reduceWithIndex(@gcanti) - add
foldMapWithIndex(@gcanti) - add
reduceRightWithIndex(@gcanti) - add
hasOwnProperty(@gcanti)
- add
Map- backport
updateAt(@gcanti) - backport
modifyAt(@gcanti)
- backport
Ord- make
Orda contravariant functor (@gcanti)
- make
- add
- Bug Fix
- fix
MonadThrowdefinition (@gcanti) TraversableWithIndex- fix
TraverseWithIndex2definition (@gcanti) - fix
TraverseWithIndex2Cdefinition (@gcanti)
- fix
- fix
- Deprecations
HKT- deprecate
URI2HKT<n>in favour ofURItoKind<n>(@gcanti) - deprecate
Type<n>in favour ofKind<n>(@gcanti)
- deprecate
- deprecate
Setoidin favour ofEq(@gcanti) Applicative- deprecate
when(@gcanti) - deprecate
getMonoid(@gcanti)
- deprecate
Apply- deprecate
applyFirst, usepipeable'sapFirst(@gcanti) - deprecate
applySecond, usepipeable'sapSecond(@gcanti)
- deprecate
Array- deprecate
catOptionsin favour ofcompact(@gcanti) - deprecate
mapOptionsin favour offilterMap(@gcanti) - deprecate uncurried
filterin favour of curried, data-lastfilter(@gcanti) - deprecate uncurried
partitionin favour of curried, data-lastpartition(@gcanti) - deprecate uncurried
partitionMapin favour of curried, data-lastpartitionMap(@gcanti) - deprecate
fold/foldLin favour offoldLeft(@gcanti) - deprecate
foldrin favour offoldRight(@gcanti) - deprecate
takein favour oftakeLeft(@gcanti) - deprecate
takeEndin favour oftakeRight(@gcanti) - deprecate
takeWhilein favour oftakeLeftWhile(@gcanti) - deprecate
spanin favour ofspanLeft(@gcanti) - deprecate
dropin favour ofdropLeft(@gcanti) - deprecate
dropEndin favour ofdropRight(@gcanti) - deprecate
dropWhilein favour ofdropLeftWhile(@gcanti) - deprecate uncurried
findIndexin favour of curried, data-lastfindIndex(@gcanti) - deprecate uncurried
findFirstin favour of curried, data-lastfindFirst(@gcanti) - deprecate uncurried
findFirstMapin favour of curried, data-lastfindFirstMap(@gcanti) - deprecate uncurried
findLastin favour of curried, data-lastfindLast(@gcanti) - deprecate uncurried
findLastMapin favour of curried, data-lastfindLastMap(@gcanti) - deprecate uncurried
findLastIndexin favour of curried, data-lastfindLastIndex(@gcanti) - deprecate uncurried
insertAtin favour of curried, data-lastinsertAt(@gcanti) - deprecate uncurried
updateAtin favour of curried, data-lastupdateAt(@gcanti) - deprecate uncurried
deleteAtin favour of curried, data-lastdeleteAt(@gcanti) - deprecate uncurried
modifyAtin favour of curried, data-lastmodifyAt(@gcanti) - deprecate uncurried
rotatein favour of curried, data-lastrotate(@gcanti) - deprecate uncurried
chopin favour of curried, data-lastchop(@gcanti) - deprecate
splitin favour ofsplitAt(@gcanti) - deprecate uncurried
chunksOfin favour of curried, data-lastchunksOf(@gcanti)
- deprecate
Chain- deprecate
flatten, usepipeable'sflatten(@gcanti)
- deprecate
Const- deprecate
Constconstructor in favour ofmake(@gcanti)
- deprecate
Contravariant- deprecate
lift, usepipeable'scontramap(@gcanti)
- deprecate
Exceptionmodule is deprecated (@gcanti)Extend- deprecate
duplicate, usepipeable'sduplicate(@gcanti)
- deprecate
Foldable2v- deprecate
fold(@gcanti) - deprecate
sequence_, usetraverse_(@gcanti) - deprecate
oneOf(@gcanti) - deprecate
sum(@gcanti) - deprecate
product(@gcanti) - deprecate
elem(@gcanti) - deprecate
findFirst(@gcanti) - deprecate
min(@gcanti) - deprecate
max(@gcanti) - deprecate
toArray(@gcanti)
- deprecate
Freemodule is deprecated (@gcanti)FreeGroupmodule is deprecated (@gcanti)function- deprecate
Function*types, useFunctionN(@gcanti) - deprecate
Kleislitype (@gcanti) - deprecate
Cokleislitype (@gcanti) - deprecate
concatfunction, useArray'sgetSemigroup(@gcanti) - deprecate
composefunction in favour offlow(@gcanti) - deprecate
pipefunction in favour offlow(@gcanti) - deprecate
curriedfunction (@gcanti) - deprecate
curryfunction (@gcanti) - deprecate
toStringfunction, useShowtype class (@gcanti) - deprecate
applyfunction (@gcanti) - deprecate
applyFlippedfunction (@gcanti) - deprecate
constIdentityfunction (@gcanti) - deprecate
phantom(@gcanti) - deprecate
or(@gcanti) - deprecate
and(@gcanti) - deprecate
on(@gcanti) - deprecate
BinaryOperator(@gcanti)
- deprecate
Functor- deprecate
lift, usepipeable'smap(@gcanti) - deprecate
voidRight(@gcanti) - deprecate
voidLeft(@gcanti) - deprecate
flap(@gcanti)
- deprecate
Validation- deprecate
Validationmodule in favour ofEither's:getValidation(@gcanti)getValidationSemigroup(@gcanti)getValidationMonoid(@gcanti)
- deprecate
Either- deprecate
getCompactable,getFilterablein favour ofgetWitherable(@gcanti)
- deprecate
IOEither- deprecate
rightin favour ofrightIO(@gcanti) - deprecate
leftin favour ofleftIO(@gcanti) - deprecate
fromLeftin favour ofleft2v(@gcanti) - add
right2v(@gcanti)
- deprecate
IxIOmodule is deprecated (@gcanti)IxMonadmodule is deprecated (@gcanti)Map- deprecate
insertin favour ofinsertAt(@gcanti) - deprecate
removein favour ofdeleteAt(@gcanti)
- deprecate
MonadThrow- deprecate
fromOption(@gcanti) - deprecate
fromEither(@gcanti)
- deprecate
Monoid- deprecate
getArrayMonoidin favour ofArray'sgetMonoid(@gcanti)
- deprecate
Monoidalmodule is deprecated (@gcanti)NonEmptyArray- deprecate uncurried
groupByin favour of curried, data-lastgroupBy(@gcanti) - deprecate
findFirstin favour ofArray'sfindFirst(@gcanti) - deprecate
findLastin favour ofArray'sfindLast(@gcanti) - deprecate
findIndexin favour ofArray'sfindIndex(@gcanti) - deprecate
findLastIndexin favour ofArray'sfindLastIndex(@gcanti) - deprecate uncurried
insertAtin favour of curried, data-lastinsertAt(@gcanti) - deprecate uncurried
updateAtin favour of curried, data-lastupdateAt(@gcanti) - deprecate uncurried
modifyAtin favour of curried, data-lastmodifyAt(@gcanti) - deprecate uncurried
filterin favour of curried, data-lastfilter(@gcanti) - deprecate uncurried
filterWithIndexin favour of curried, data-lastfilterWithIndex(@gcanti)
- deprecate uncurried
Ord- deprecate
lessThanin favour oflt(@gcanti) - deprecate
greaterThanin favour ofgt(@gcanti) - deprecate
lessThanOrEqin favour ofleq(@gcanti) - deprecate
greaterThanOrEqin favour ofgeq(@gcanti) - swap
contramaparguments (@gcanti)
- deprecate
Pairmodule is deprecated (@gcanti)Profunctor- deprecate
lmapfunction (@gcanti) - deprecate
rmapfunction (@gcanti)
- deprecate
ReaderTaskEither- deprecate
rightin favour ofrightTask(@gcanti) - deprecate
leftin favour ofleftTask(@gcanti) - deprecate
fromReaderin favour ofrightReader(@gcanti) - deprecate
fromIOin favour ofrightIO(@gcanti) - deprecate
fromLeftin favour ofleft2v(@gcanti) - add
right2v(@gcanti)
- deprecate
Record- deprecate uncurried
collectin favour of curried, data-lastcollect(@gcanti) - deprecate
insertin favour ofinsertAt(@gcanti) - deprecate
removein favour ofdeleteAt(@gcanti) - deprecate uncurried
popin favour of curried, data-lastpop(@gcanti) - deprecate
mapWithKeyin favour ofmapWithIndex(@gcanti) - deprecate
reduceWithKeyin favour ofreduceWithIndex(@gcanti) - deprecate
foldMapWithKeyin favour offoldMapWithIndex(@gcanti) - deprecate
foldrWithKeyin favour ofreduceRightWithIndex(@gcanti) - deprecate
traverseWithKeyin favour oftraverseWithIndex(@gcanti) - deprecate
traversein favour oftraverse2v(@gcanti) - deprecate uncurried
filterWithIndexin favour of curried, data-lastfilterWithIndex(@gcanti) - deprecate uncurried
partitionMapin favour of curried, data-lastpartitionMap(@gcanti) - deprecate uncurried
partitionin favour of curried, data-lastpartition(@gcanti) - deprecate
witherin favour ofrecord.wither(@gcanti) - deprecate
wiltin favour ofrecord.wilt(@gcanti) - deprecate uncurried
filterMapin favour of curried, data-lastfilterMap(@gcanti) - deprecate uncurried
partitionMapWithKeyin favour of curried, data-lastpartitionMapWithIndex(@gcanti) - deprecate uncurried
partitionWithKeyin favour of curried, data-lastpartitionWithIndex(@gcanti) - deprecate uncurried
filterMapWithKeyin favour of curried, data-lastfilterMapWithIndex(@gcanti) - deprecate uncurried
filterin favour of curried, data-lastfilter(@gcanti) - deprecate uncurried
mapin favour of curried, data-lastmap(@gcanti) - deprecate uncurried
foldMapin favour of curried, data-lastfoldMap(@gcanti) - deprecate
foldrin favour ofreduceRight(@gcanti)
- deprecate uncurried
StrMapmodule is deprecated (@gcanti)Task- deprecate
delayin favour ofdelay2v(@gcanti)
- deprecate
TaskEither- deprecate
rightin favour ofrightTask(@gcanti) - deprecate
leftin favour ofleftTask(@gcanti) - deprecate
fromIOin favour ofrightIO(@gcanti) - deprecate
fromLeftin favour ofleft2v(@gcanti) - add
right2v(@gcanti)
- deprecate
These- deprecate
this_in favour ofleft(@gcanti) - deprecate
thatin favour ofright(@gcanti) - deprecate
fromThesein favour oftoTuple(@gcanti) - deprecate
theseLeftin favour ofgetLeft(@gcanti) - deprecate
theseRightin favour ofgetRight(@gcanti) - deprecate
isThisin favour ofisLeft(@gcanti) - deprecate
isThatin favour ofisRight(@gcanti) - deprecate
thisOrBothin favour ofleftOrBoth(@gcanti) - deprecate
thatOrBothin favour ofrightOrBoth(@gcanti) - deprecate
theseThisin favour ofgetLeftOnly(@gcanti) - deprecate
theseThatin favour ofgetRightOnly(@gcanti)
- deprecate
Tracemodule is deprecated (@gcanti)Validationmodule is deprecated, useEither'sgetValidation(@gcanti)Writer- deprecate
listensin favour oflistens2v(@gcanti) - deprecate
censorin favour ofcensor2v(@gcanti)
- deprecate
Zippermodule is deprecated (@gcanti)
1.18.2
- Polish
- fix
NonEmptyArraydefinition (@gcanti)
- fix
- Deprecation
- deprecate
NonEmptyArray.makein favour ofcons(@gcanti)
- deprecate
1.18.1
- Bug Fix
- use explicit
concatfunction forgetEndomorphismMonoid, #870 (@mlegenhausen)
- use explicit
1.18.0
- New Feature
- add
absurdfunction, closes #847 (@gcanti)
- add
1.17.4
- Bug Fix
- Don't set
target: es6in tsconfig.es6.json, fix #863 (@FruitieX)
- Don't set
1.17.3
- Polish
- remove
reverse(mutable) fromNonEmptyArray2vinterface (@gcanti)
- remove
1.17.2
- Polish
- add
Bifunctor2Cinterface (@gcanti) - add
Profunctor2Cinterface (@gcanti) - replace
Array<any>withArray<unknown>inFunctionNdefinition (@ta2gch) - add refinement overloads to
filter/partition(Filterabletype class) (@gcanti) - add refinement overloads to
filterWithIndex/partitionWithIndex(FilterableWithIndextype class) (@gcanti)
- add
- Deprecation
- deprecate
Array.filter,Array.partitionin favour ofArray.array.filterandArray.array.partition(@gcanti)
- deprecate
1.17.1
- Polish
- make
Type<URI1, A>not assignable toType<URI2, A>, closes #536 (@gcanti)
- make
1.17.0
- New Feature
- add
Showtype class and related instances (@gcanti) - add
fromNonEmptyArray2vtoZippermodule (@DenisFrezzato) - add
getOrElse/getOrElseLtoTaskEither(@zanza00) NonEmptyArray2vmodule- add
modifyAt(@gcanti) - add
copy(@gcanti)
- add
- mark
NonEmptyArray2vas official module
- add
- Deprecations
- deprecate
liftA<n>functions (@gcanti) - deprecate
NonEmptyArraymodule (@gcanti)
- deprecate
1.16.1
- New Feature
- add
findFistMapandfindLastMaptoArraymodule, closes #788 (@sledorze) - add
cons/snoctoNonEmptyArray2vmodule, closes #800 (@sledorze) - add
Tracedcomonad, closes #798 (@gcanti) - add
tryCatchtoValidationmodule (@gcanti) - add
FunctionNtype alias (@ta2gch) - add
MonadThrowand related instances (@gcanti) - add es6 module step to build for tree-shaking support (@FruitieX)
- add
parseJSON/stringifyJSONtoEithermodule (@gcanti) - add
Magma(@gcanti) - add
fromFoldableMaptoRecordmodule (@gcanti)
- add
- Polish
snoc/consinArraynow return aNonEmptyArray(@sledorze)- replace
anywithunknowninConsolemodule (@gcanti) - replace
anywithunknowninTracemodule (@gcanti)
1.15.1
- Regression
- revert
SequenceT*deletion and prevent distribution of conditional types insequenceT,sequenceS, fix #790 (@gcanti)
- revert
1.15.0
Note. This version requires typescript@3.1+ (mapped tuples)
- New Feature
- add
Apply.sequenceS, closes #688 (@gcanti) - make
function.tuplevariadic (@gcanti) - make
Semigroup.getTupleSemigroupvariadic (@gcanti) - make
Monoid.getTupleMonoidvariadic (@gcanti) - make
Ord.getTupleOrdvariadic (@gcanti) - make
Setoid.getTupleSetoidvariadic (@gcanti) - make
Ring.getTupleRingvariadic (@gcanti) - make
Apply.sequenceTvariadic (@gcanti)
- add
- Experimental
- add
NonEmptyArray2vmodule (type level non empty arrays), closes #735 (@gcanti)
- add
1.14.4
- Polish
- Add overloads to
sequenceTto allow more arguments (up to 8) (@cdimitroulas)
- Add overloads to
1.14.3
- Deprecation
- deprecate
StrMap.traverseWithKeyin favour ofstrmap.traverseWithIndex(@gcanti) - deprecate
OptionT.getOptionTin favour ofOptionT.getOptionT2v - deprecate useless
OptionTfunctions (@gcanti) - deprecate
EitherT.getEitherTin favour ofEitherT.getEitherT2v(@gcanti) - deprecate useless
EitherTfunctions (@gcanti) - deprecate
ReaderT.getReaderTin favour ofReaderT.getReaderT2v(@gcanti) - deprecate useless
ReaderTfunctions (@gcanti) - deprecate
StateT.getStateTin favour ofStateT.getStateT2v(@gcanti) - deprecate useless
StateTfunctions (@gcanti) - deprecate
Ord.getProductOrd/Ring.getProductRingin favour ofOrd.getTupleOrd/Ring.getTupleRing(@gcanti)
- deprecate
1.14.2
- Deprecation
- deprecate
Setoid.getRecordSetoidin favour ofSetoid.getStructSetoid(@gcanti) - deprecate
Setoid.getProductSetoidin favour ofSetoid.getTupleSetoid(@gcanti)
- deprecate
1.14.1
- New Feature
- add
Mapmodule (@joshburgess) Record- functions now support subtypes of
stringfor theKtype parameter (@gcanti) - add
every(@gcanti) - add
some(@gcanti) - add
elem(@gcanti)
- functions now support subtypes of
- add
function.constVoid(@leemhenson) Set- add
empty(@gcanti) - add
foldMap(@gcanti)
- add
- add
Reader.getSemigroup,Reader.getMonoid(@gcanti) NonEmptyArray- Add
getSetoid(@MaximeRDY) - add
NonEmptyArray.prototype.toArrayMap(@gcanti) - add
NonEmptyArray.prototype.some(@gcanti) - add
NonEmptyArray.prototype.every(@gcanti)
- Add
StrMap- add
StrMap.prototype.every(@gcanti) - add
StrMap.prototype.some(@gcanti) - add
elem(@gcanti)
- add
- add
Tree.elem(@gcanti)
- add
- Polish
- many optimizations (@sledorze)
- ensure 100% coverage (@gcanti)
- Deprecations
- deprecate
Array.indexin favour ofArray.lookup(@gcanti) - deprecate
NonEmptyArray.prototype.indexin favour ofNonEmptyArray.prototype.lookup(@gcanti) - deprecate
Record.isSubdictionaryin favour ofRecord.isSubrecord(@gcanti) - deprecate
Semigroup.getDictionarySemigroup,Monoid.getDictionaryMonoidin favour ofRecord.getMonoid(@gcanti) - deprecate
Array.getArraySemigroup(@gcanti) - deprecate
Set.memberin favour ofSet.elem(@gcanti) - deprecate
Array.memberin favour ofArray.elem(@gcanti) Record/StrMap: fix withIndex names (@gcanti)- use "Struct" instead of "Record", and "Tuple" instead of "Product" (@gcanti)
- deprecate
- Internal
- drop Type-level integrity check (@gcanti)
1.13.0
- New Feature
- add
Array.unzip(@user753) - add
Grouptype class (@gcanti) - add
FreeGroupmodule (@gcanti) - add
Thesefunctions (@gcanti)thisOrBoththatOrBoththeseThistheseThatfromOptionsfromEither
- add
1.12.3
- Polish
- support for constrained domain in
Recordmodule, closes #685 (@gcanti) - optimize
Foldable2v.toArray(@gcanti)
- support for constrained domain in
1.12.2
- Bug Fix
- fix
Tree.drawTree(@gcanti)
- fix
1.12.1
- Bug Fix
array.mapshould be safe when executed with a binary function, fix #675 (@gcanti)
1.12.0
- Deprecation
- deprecate
Set.differencein favour ofdifference2v(@gcanti)
- deprecate
- New Feature
- add
Array.union(@gcanti) - add
Array.intersection(@gcanti) - add
Array.difference(@gcanti) - add
Set.compact(@gcanti) - add
Set.separate(@gcanti) - add
Set.filterMap(@gcanti) - add
getCompactableComposition(@gcanti) - add
getFilterableComposition(@gcanti) - add
chainFirst,chainSecondtoTaskEither(@gcanti) - add
NonEmptyArray.prototype.filterWithIndex(@gcanti) - add WithKey variants to
Record(@gcanti)reduceWithKeyfoldMapWithKeyfoldrWithKeypartitionMapWithIndexpartitionWithIndexfilterMapWithIndexfilterWithIndex
- add
FunctorWithIndextype class (@MaximeRDY)Arrayinstance (@MaximeRDY)NonEmptyArrayinstance (@MaximeRDY)StrMapinstance (@gcanti)getFunctorWithIndexComposition(@MaximeRDY)
- add
FoldableWithIndextype class (@gcanti)Arrayinstance (@gcanti)NonEmptyArrayinstance (@gcanti)StrMapinstance (@gcanti)
- add
TraversableWithIndextype class (@gcanti)Arrayinstance (@gcanti)NonEmptyArrayinstance (@gcanti)StrMapinstance (@gcanti)
- add
FilterableWithIndextype class (@gcanti)Arrayinstance (@gcanti)StrMapinstance (@gcanti)
- add
- Internal
- upgrade to
typescript@3.2.1(@gcanti)
- upgrade to
1.11.3
- Deprecation
Arrayrefinein favour offilter(@gcanti)
Either.prototype.refineOrElsein favour of.prototype.filterOrElse(@gcanti).prototype.refineOrElseLin favour of.prototype.filterOrElseL(@gcanti)fromRefinementin favour offromPredicate(@gcanti)
Option.prototype.refinein favour of.prototype.filter(@gcanti)fromRefinementin favour offromPredicate(@gcanti)
- Polish
- use built-in
Recordtype inRecordmodule (@gcanti) - add support for refinements (@gcanti)
ArraytakeWhilespan
NonEmptyArray.prototype.filter
ReaderTaskEitherfromPredicate
Recordfilter
Setfilterpartition
StrMapfilter
TaskEither.prototype.filterOrElse.prototype.filterOrElseLfromPredicate
ValidationfromPredicate
- use built-in
1.11.2
- Bug Fix
- fix
function.toStringwhen input does not haveObjecton its prototype chain (@gcanti)
- fix
1.11.1
- Polish
ReaderTaskEither.tryCatch: add the environment as the second argument of theonrejectedhandler (@ascariandrea)
1.11.0
- Deprecation
- deprecate
Either.tryCatchin favour ofEither.tryCatch2v(@gcanti) - deprecate
IOEither.tryCatchin favour ofIOEither.tryCatch2v(@gcanti)
- deprecate
- New Feature
- add
Strongtype class (@gcanti) - add
Choicetype class (@gcanti) - use
unknowntype instead of{}, #539 (@gcanti) - use
HKT4,URIS4,URI2HKT4, #555 (@babakness) NonEmptyArrayenhancement #627 (@sledorze)indexfindFirstfindLastfindIndexfindLastIndexinsertAtupdateAtfilter
TaskEither- add
filterOrElse,filterOrElseL, #619 (@gcanti)
- add
Reader- add
Profunctorinstance #634 (@gcanti) - add
Stronginstance (@gcanti) - add
Choiceinstance (@gcanti) - add
Categoryinstance (@gcanti)
- add
- add
Category4,Functor4,Profunctor4,Semigroupoid4,Strong4(@gcanti)
- add
- Bug Fix
- fix
TaskEither.taskifywith immutable arguments, #637 (@DenisFrezzato)
- fix
1.10.1
- Bug Fix
- backport #637 (@gcanti)
1.10.0
- Deprecation
- deprecate
Foldablein favour ofFoldable2v(*) - deprecate
Traversablein favour ofTraversable2v(*)
- deprecate
- New Feature
Array- add
chopfunction (@gcanti) - add
splitfunction (@gcanti) - add
chunksOffunction (@gcanti) - add
takeEndfunction (@gcanti) - add
dropEndfunction (@gcanti) - add
makeByfunction (@gcanti) - add
repeatfunction (@gcanti) - add
replicatefunction (@gcanti) - add
findLastIndexfunction (@gcanti) - add array
comprehension(@gcanti)
- add
NonEmptyArray- add
lengthmethod (@gcanti) - add
groupByfunction (@gcanti)
- add
StrMap- add
emptyconstant (@gcanti)
- add
Task- add sequential instance (@giogonzo)
TaskEither- add
attemptmethod (@gcanti) - add
bracketfunction (@gcanti) - add sequential instance (@giogonzo)
- add
foldTaskmethod (@gcanti) - add
foldTaskEithermethod (@gcanti)
- add
ReaderTaskEither- add sequential instance (@giogonzo)
- add
MonadIOmodule (@gcanti) - add
MonadTaskmodule (@gcanti) - add
Datemodule (@gcanti) - add
Foldable2vmodule + instances (@gcanti) - add
Traversable2vmodule + instances (@gcanti) - add
Recordmodule (@gcanti)
- Documentation
- refactor docs layout (@gcanti)
- add examples to
Arraymodule (@gcanti) - type-check the examples while generating the documentation (@gcanti)
- comparison with ramda
- add example and explanation for
Array.member(@fozcodes)
- Internal
- upgrade to typescript@3.1.2 (@gcanti)
- add
function.nottest case (@gibbok)
(*) Foldable and Traversable will be replaced with Foldable2v and Traversable2v implementations in fp-ts@2
1.9.0
- New Feature
- add
getSemigroup,getApplySemigroup,getApplyMonoidtoTaskEither, https://github.com/gcanti/fp-ts/pull/563 (@mlegenhausen) - add
incrementanddecrementfunctions, https://github.com/gcanti/fp-ts/pull/557 (@gcanti) - add
Zippermodule, https://github.com/gcanti/fp-ts/pull/558 (@gcanti) - add
getMeetMonoid,getJoinMonoid, https://github.com/gcanti/fp-ts/pull/548 (@gcanti)
- add
- Polish
- Never emit sourcemaps, https://github.com/gcanti/fp-ts/pull/569 (@scotttrinh)
- add
Array.empty, https://github.com/gcanti/fp-ts/pull/556 (@gcanti)
1.8.1
- Bug Fix
- add module augmentation to
Free, https://github.com/gcanti/fp-ts/pull/559 (@gcanti)
- add module augmentation to
1.8.0
- New Feature
- add
IORefmodule (@gcanti)
- add
1.7.1
- Internal
- add refinement overloading to
Array.findFirst, closes #522 (@gcanti)
- add refinement overloading to
1.7.0
- New Feature
- add
Array.foldr,Array.foldrL(@PierreCooper) - add
Compactabletype class and related instances (@raveclassic) - add
Filterabletype class and related instances (@raveclassic) - add
Whitherabletype class and related instances (@raveclassic) - add
State.prototype.applyFirst,State.prototype.applySecond(@gcanti) - add
Option.getRefinement(@gcanti) - add
Foldable.traverse(@gcanti) - add
Option.getApplySemigroup,Option.getApplyMonoid(@gcanti) - add
Either.getSemigroup,Either.getApplySemigroup,Either.getApplyMonoid(@gcanti) - add
Task.delay(@gcanti) - add
NonEmptyArray.group,NonEmptyArray.groupSort(@MaximeRDY)
- add
- Bug Fix
- fix
Random.randomRangeimplementation (@gcanti) - fix
Set.partitionMapsignature (@gcanti) - sort keys in
StrMap.collect(@gcanti)
- fix
- Deprecation
- deprecate
Traversable.traverse(@raveclassic) - deprecate
Foldable.traverse_(@gcanti)
- deprecate
- Internal
- add
Applicative2Coverloadings toTraversable.traverse(@gcanti)
- add
1.6.2
- Bug Fix
- add missing
readonlymodifiers (@gcanti)BoundedJoinSemilatticeBoundedMeetSemilatticeHeytingAlgebraJoinSemilatticeMeetSemilattice
- handle
null,undefinedinfunction.toString(@gcanti) - add overloadings to
Free.foldFree, fix #470 (@gcanti)
- add missing
1.6.1
- Polish
Reader.local,ReaderTaskEither.localshould be able to change the environment type (@gcanti)- add
Reader.prototype.local,ReaderTaskEither.prototype.local(@gcanti)
1.6.0
- New Feature
- add
NonEmptyArray.prototype.last(@raveclassic) - add
IOEithermodule (@leemhenson) - add
orElsemethod toEither,Identity,Option(@raveclassic) - add
Altinstance toTaskEither(@gcanti) - add
NonEmptyArray.prototype.sort(@raveclassic) - add
TaskEither.fromIOEither(@gcanti) - add
applyFirstmethod toIO,Task,IOEither,TaskEither(@gcanti) - move
ReaderTaskEitherfrom examples intosrc(@leemhenson) - add
NonEmptyArray.prototype.reverse(@raveclassic) - add
TaskEither.fromPredicate(@leemhenson) - add
Treemodule (@gcanti) - make
Either.filterOrElseLmore general (@gcanti) - add
Either.refineOrElse,Either.refineOrElseL(@gcanti) - add
Either.fromRefinement(@gcanti)
- add
- Bug Fix
- handle undefined errors in callback of
TaskEither.taskify(@dmechas) - fix overloading typings of
TaskEither.taskify(@gcanti)
- handle undefined errors in callback of
- Internal
- make
Writer.prototype.maplazy (@gcanti)
- make
- Documentation
- handle
exampleandlinktags (@gcanti)
- handle
1.5.0
- New Feature
- Allow the usage of a custom
SemigroupforStrMap.getMonoid(@mlegenhausen) - add
applySecondmethod toIO,Task,TaskEither, closes #418 (@gcanti) - add
TaskEither.fromIO(@gcanti) - add
Apply.sequenceT(@raveclassic) - add
TaskEither.taskify, utility to convert callback-based node APIs, closes #422 (@gcanti)
- Allow the usage of a custom
1.4.1
- Bug Fix
- fix semigroup usage in
Tuple.apimplementation (@gcanti)
- fix semigroup usage in
1.4.0
- New Feature
- add
getDictionarySemigroup,getObjectSemigrouptoSemigroup(@raveclassic) - add
getDictionaryMonoidtoMonoid(@raveclassic) - add
Setoid.setoidDateandOrd.ordDate(@mlegenhausen) - add
StrMap#filter(@mlegenhausen) - add
Apply.getSemigroup,Applicative.getMonoid(@gcanti) - add lattice typeclass hierarchy, closes #412 (@gcanti)
BooleanAlgebraBoundedDistributiveLatticeBoundedJoinSemilatticeBoundedLatticeBoundedMeetSemilatticeDistributiveLatticeHeytingAlgebraJoinSemilatticeMeetSemilattice
- add
- Internal
- add more
Travserable.sequenceoverloadings (@gcanti) - upgrade to typescript@2.8.3 (@gcanti)
- use
getObjectSemigroupinStrMap.concat(@gcanti)
- add more
1.3.0
- New Feature
- add
Array.uniq(@alex-ketch) - add
NonEmptyArray.prototype.minandNonEmptyArray.prototype.max(@raveclassic) - add
refinemethod toOption, closes #396 (@wmaurer) - add
Ord.getDualOrd(@gcanti) - add support for
Monad2CandMonad3CtoOptionT, closes #379 (@gcanti) - add
TaskEither.fromLeft(@gcanti) - add
listen,pass,listens,censortoWriter(@gcanti) - add
Option.fromRefinement(@gcanti) - add
Array.sortBy,Array.sortBy1(@gcanti) - add
Either.fromOptionL, closes #384 (@gcanti) - add
Either.filterOrElse,Either.filterOrElseL, closes #382 (@gcanti)
- add
- Bug Fix
- sort keys in
StrMap.reduce(@gcanti)
- sort keys in
- Internal
- added rimraf and updated npm scripts (@wmaurer)
- upgrade to tslint@5.9.1, tslint-config-standard@7.0.0 (@gcanti)
- add issue template (@gcanti)
- Polish
- optimize
Semigroup.fold(@gcanti)
- optimize
1.2.0
- New Feature
- Make
TaskEitheran instance ofBiFunctor(@teves-castro) - add
EitherT.bimap(@teves-castro) - add
partitionMaptoSet(@sledorze) - add
getOrdtoOption(@sledorze) - add
partitiontoSet(@sledorze) - add
contramaptoSetoid(@sledorze) - add
getOrdtoArray(@sledorze) - add
chaintoSet(@sledorze) - add
maptoSet(@sledorze) - add
fromArraytoSet(@sledorze) - add
StateT.fromState(@gcanti) - add
StateT.liftF(@gcanti) - add
ReaderT.fromReader(@gcanti)
- Make
- Bug Fix
- fix
Altinstance ofValidation(@sledorze) - fix
EitherT.chainsignature (@gcanti) - use
Type*inEitherT1,EitherT2(@gcanti) - use
Type*inStateT1,StateT2(@gcanti) - use
Type*inReaderT1,ReaderT2(@gcanti) - Add
readonlymodifier to type classes properties (@gcanti)
- fix
- Internal
- make 'Set.difference' do less work (@sledorze)
- remove unecessary closure creation in
lefts,rightsandmapOption(@sledorze) - remove unnecessary closures (mainly
folds) (@sledorze) - remove closure creation of Option 'ap' function (@sledorze)
- add
URIS3overloadings toStateT(@gcanti) - add
URIS3overloadings toReaderT(@gcanti) - use definite assignement assertion for phantom fields (@gcanti)
- upgrade to prettier@1.11.0 (@gcanti)
1.1.0
- New Feature
- add
scanLeft,scanRight(@PaNaVTEC) - add an optional
onerrorargument toEither.tryCatch, fix #323 (@gcanti)
- add
- Bug Fix
Either.tryCatchnow refines the error (@gcanti)
- Docs
- Option, alt method (@piq9117)
- add laws for
Setoid,Ord,Functor,Apply,Applicative,Chain,Monad,Alt,Alternative,Plus(@gcanti)
- Internal
- upgrade to
typescript@2.7.2(@gcanti)
- upgrade to
1.0.1
- Bug Fix
- add phantom fields to curried type classes, fix #316 (@gcanti)
- fix
Unfoldable.replicateAsignatures (@gcanti)
- Internal
- optimize Foldable.oneOf (@gcanti)
- optimize Foldable.traverse_ (@gcanti)
- optimize Foldable.sequence_ (@gcanti)
- optimize Foldable.foldr (@gcanti)
1.0.0
- Breaking Change
- see https://github.com/gcanti/fp-ts/pull/312 (@gcanti)
0.6.8
- New Feature
Validation: addgetOrElse,getOrElseValue, closes #278 (@gcanti)- add
Functor2,Functor3,Apply2,Apply3,Applicative2,Applicative3,Chain2,Chain3,Monad2,Monad3in order to better support MTL style (@gcanti)
- Bug Fix
- Flow: reverse order of overloadings in curry declaration, fix #299 (@gcanti)
Set: fixunion/insert/toArray/reducedefinitions (@gcanti)
- Experimental
Validation: addchain(@gcanti)
- Internal
- fix typescript@next errors (@gcanti)
- Documentation
- add
StateTaskEither,TaskOptionexamples (@gcanti)
- add
0.6.7
- New Feature
- Ordering: add fromNumber, toNumber (@gcanti)
- function: add unsafeCoerce (@gcanti)
- add Set module, closes #161 (@gcanti)
0.6.6
- New Feature
Array: addrotate(@gcanti)- add some
Foldablefunctions (@gcanti)minimummaximumsumproductfoldMoneOfelemfind
Option: addtryCatch(@gcanti)Ring: addgetProductRing(@gcanti)Setoid: addgetProductSetoid(@gcanti)Ord: addgetProductOrd(@gcanti)
- Internal
- perf optimizations (@sledorze, @gcanti)
- travis: use node 8 (@gcanti)
0.6.5
- Bug Fix
- Flow: use
$NonMaybeTypeforfromNullableandmapNullable(@gcanti)
- Flow: use
0.6.4
- New Feature
- Array: add
getSemigroup/getMonoid, fix #272 (@gcanti) - Setoid: add
getRecordSetoid(@gcanti) - add missing
ap_methods (Reader, State, Writer) (@gcanti) - type
is*methods as type guards (Option, Either, Validation, These) (@gcanti)
- Array: add
- Experimental
- add Flowtype support (@gcanti)
- Polish
- Correct
ap_parameter name (@OliverJAsh) - update Prettier version (@gcanti)
- fix
getRecordSemigroupsignature (@gcanti) - fix
getRecordMonoidsignature (@gcanti) - format markdown files with prettier (@gcanti)
- Correct
0.6.3
- New Feature
- move semigroup methods from Monoid.ts to Semigroup.ts (@valery-paschenkov)
0.6.2
- New Feature
- add
function.constNullandfunction.constUndefined(@raveclassic)
- add
0.6.1
- Breaking Change
- upgrade to latest TypeScript (2.6.1), fix #244 (@gcanti)
0.5.4
- New Feature
Array: addfindFirstandfindLastfunctions (@chasent)Option: addgetOrElseValue,filter,mapNullable(@raveclassic)Either: addgetOrElseValue(@raveclassic)Either: addfromNullable(@gcanti)
- Bug Fix
Either:equalsnow accepts aSetoid<L>other thanSetoid<A>, fix #247 (@gcanti)Validation:equalsnow accepts aSetoid<L>other thanSetoid<A>, fix #247 (@gcanti)
0.5.3
- New Feature
- add
Invariant(@gcanti) Semigroup: addgetRecordSemigroup,getRecordMonoid,getMeetSemigroup,getJoinSemigroup(@gcanti)Ord: addgetSemigroup,fromCompare,contramap(@gcanti)Option: addtoUndefinedmethod (@vegansk)These: addgetMonad(@gcanti)Foldable: addfold(@gcanti)- add
TaskEither(@gcanti) Validation: addfromEither(@gcanti)Task: addfromIO(@gcanti)Either: pass value togetOrElse(@jiayihu)Array: addspanfunction (@gcanti)
- add
- Bug Fix
Array: fixtakeWhile,dropWhile(@gcanti)
- Documentation
- add
Mooremachine example (@gcanti) - add MTL style example (@gcanti)
- starting API documentation (@gcanti)
- add
- Internal
- fix
Semigroupoiddefinition (@gcanti)
- fix
- Polish
Ordering: shortenorderingSemigroupdefinition (@gcanti)Task: prefer{}toany, fix #231 (@OliverJAsh)- upgrade to
prettier@1.7.0(@gcanti) These: fixfoldandbimapdefinitions (@gcanti)- fix
ArrayOptionexample (@gcanti) State: removeEndomorphismtype alias (@gcanti)Monoidal: useliftA2(@gcanti)
0.5.2
- Bug Fix
- fixed EitherT to only run code on the left once, closes #219 (@nfma)
- fixed OptionT to only run code on none once (@gcanti)
0.5.1
- Breaking Change
- migrate to curried APIs when possible (@raveclassic, @gcanti)
- remove useless static
ofs (@gcanti)
- New Feature
- Array: add zip and zipWith (@gcanti)
- Monoid: add getArrayMonoid (@gcanti)
- Tuple
- add toString (@gcanti)
- add getApplicative (@gcanti)
- add getChainRec (@gcanti)
- Setoid: add getArraySetoid (@gcanti)
- Bug fix
- Store
- fix extend implementation (@gcanti)
- fix toString (@gcanti)
- Store
- Polish
- Plus: remove any from signatures (@gcanti)
0.4.6
- New Feature
- add endomorphism monoid, fix #189 (@gcanti)
- add a default implementation of
foldrusingfoldMap(@gcanti) - add
insert,removeandpoptoStrMap(@gcanti) - improve
voidLeft,voidRighttype inference, fix #191 (@gcanti)
- Bug Fix
- StrMap.size returns a wrong number of key/value pairs, fix #186 (@gcanti)
- Documentation
- start book "fp-ts by examples"
0.4.5
- New Feature
- add
contains,isNone,isSome,existsmethods toOption(@alexandervanhecke) - add
Exceptionmodule (@gcanti) - add
Pairmodule (@gcanti) - add
Tracemodule (@gcanti) - add
IxMonadmodule (@gcanti) - add
IxIOmodule (@gcanti) - add
Either.fromOption(@gcanti)
- add
- Documentation
- add
StateTexample (@gcanti) - add
IxIOexample (@gcanti)
- add
0.4.3
- New Feature
- add type-level dictionaries in order to reduce the number of overloadings (@gcanti)
- add typechecks to the type-level HKT dictionary (@SimonMeskens)
- add Task.tryCatch, closes #159 (@gcanti)
- use the bottom
nevertype for none, closes #160 (@gcanti) - add Random module (@gcanti)
- add Console module (@gcanti)
- add FantasyFilterable (@SimonMeskens)
- add FantasyWitherable (@SimonMeskens)
- Documentation
- add ReaderIO example (@gcanti)
- add EitherOption example (@gcanti)
- Polish
- TaskEither: rename fromPromise to tryCatch (@gcanti)
- Internal
- add fix-prettier task (@gcanti)
- remove typings-checker (doesn’t work with ts 2.4.1) (@gcanti)
0.4.0
- Breaking Change
- Tuple (wrapped)
- Dictionary (wrapped, renamed to StrMap)
- changed
- Applicative.getCompositionApplicative (also renamed to getApplicativeComposition)
- Foldable.getCompositionFoldable (also renamed to getFoldableComposition)
- Functor.getCompositionFunctor (also renamed to getFunctorComposition)
- Traversable.getCompositionTraversable (also renamed to getTraversableComposition)
- Free (usage)
- NaturalTransformation
- ReaderT
- StateT
- removed (temporarily or because the porting is not possible)
- Id (not possible)
- Traced
- IxMonad
- Mealy
- FreeAp
0.3.5
- New Feature
- Functor: add
flap, closes #129 (@gcanti) - Add getSetoid instances, closes #131 (@gcanti)
- Add "flipped" ap method to FantasyApply instances, closes #132 (@gcanti)
- Functor: add
- Polish
- Examples: correct TaskEither fold method (@OliverJAsh)
0.3.4
- Bug Fix
Array.snocreturns wrong results with nested arrays, fix #133 (@gcanti)
0.3.3
- New Feature
- Functor: add
voidRight/voidLeft, closes #120 (@gcanti) - Add
Mealymachine, closes #122 (@gcanti) - Add
Filterable, closes #124 (@gcanti) - Add
Witherable, closes #125 (@gcanti)
- Functor: add
- Polish
- upgrade to ts 2.3.4
- Either: make
right=== `of\ - IxIO example: use new proof
0.3.2
- Bug Fix
- IxMonad: remove wrong type constraint (@gcanti)
0.3.1
- New Feature
- add
Free Applicative, closes #106 (@gcanti) - Add
Semiring, closes #107 (@gcanti) - Add
Ring, closes #108 (@gcanti) - Add
Field, closes #109 (@gcanti) - Improve
toStringmethods, closes #116 (@gcanti)
- add
- Bug Fix
- NonEmptyArray: add missing static
of(@gcanti) - add
_tagtype annotations, closes #118 (@gcanti)
- NonEmptyArray: add missing static
- Internal
- Change
proofs of implementation (@rilut) - use prettier, closes #114 (@gcanti)
- Change
0.3.0
- New Feature
- add
StateTmonad transformer, closes #104 (@gcanti) - add
Storecomonad, closes #100 (@rilut) - add
Lastmonoid, closes #99 (@gcanti) - add
Idmonadfunctor (@gcanti) - Array: add extend instance (@gcanti)
- NonEmptyArray: add comonad instance (@gcanti)
examplesfolderexercisesfolder
- add
- Polish
- Tuple: remove StaticFunctor checking (@rilut)
- Breaking Change (@gcanti)
- required typescript version: 2.3.3
- drop
Staticprefix in type classes - Change contramap signature, closes #32
- Validation: remove deprecated functions
- Foldable/toArray
- Dictionary/fromFoldable
- Dictionary/toUnfoldable
- Profunctor/lmap
- Profunctor/rmap
- Unfoldable/replicate
- compositions: renaming and signature changes
getFunctorComposition->getCompositionFunctorgetApplicativeComposition->getCompositionApplicativegetFoldableComposition->getCompositionFoldablegetTraversableComposition->getCompositionTraversable
OptionT,EitherT,ReaderTrefactoring- drop
IxMonadT, moveIxIOto theexamplesfolder - drop
Transmodule Freerefactoring- drop
rxjsdependency - drop
lib-jsnextfolder - make
Noneconstructor private - remove
PointedandCopointedtype classes
0.2.9
- New Feature
- add Monoidal type class (@gcanti)
- Bug Fix
- fix
foldMap, closes #89 (@gcanti) - replace
instanceofchecks with valued_tags, fix #96 (@gcanti, @sledorze)
- fix
0.2.8
- New Feature
- Monoid: add
getFunctionStaticMonoid, closes #70 (@gcanti) - Foldable: add
traverse_andsequence_, closes #71 (@gcanti) - add
getStaticMonadtoEitherT,OptionT,ReaderT, closes #81 (@gcanti) - Applicative: add
when, closes #77 (@gcanti) - indexed monad type class and
IxMonadT, closes #73 (@gcanti) - Array / function: add refinements, closes #68 (@gcanti, @sledorze)
- Monoid: add
- Bug Fix
- Either:
ofshould returnEither, fix #80 (@gcanti) - fix
toArray(@gcanti)
- Either:
0.2.7
- New Feature
Foldablemodule: addintercalatefunction, fix #65 (@gcanti)- Add
Profunctortypeclass, fix #33 (@gcanti, @sledorze) - Add
These, fix #47 (@gcanti) Applymodule: addapplyFirstandapplySecond, fix #60 (@sledorze)
- Bug Fix
- fix
Either.ap(@sledorze)
- fix
0.2.6
- Polish
- expose experimental modules (@danielepolencic, @gcanti)
0.2.5
- New Feature
- add
getOrElsetoEither, fix #39 (@sledorze) - add composition of functors, applicatives, foldables, traversables, fix #53 (@gcanti)
- add
- Experimental
- add
EitherT, fix #36 (@gcanti) - add
OptionT, fix #37 (@gcanti) - add
ReaderT, fix #38 (@gcanti) - add
Transtypeclass (liftT), fix #40 (@gcanti) - add
Free, fix #42 (@gcanti)
- add
0.2.4
- Polish
- deprecate
validation.getApplicativeS/validation.getStaticApplicative(@gcanti)
- deprecate
0.2.3
- Bug Fix
- fix return types of
validation.success/validation.failure(@gcanti)
- fix return types of
0.2.2
- Bug Fix
- fix
Some.reduceso it callsf, https://github.com/gcanti/fp-ts/pull/45 (@leemhenson)
- fix
0.2.1
- New Feature
Semigroupoidtype class (@gcanti)Rxjsmodule (@gcanti)Tuplemodule (@gcanti)Dictionarymodule (@gcanti)- add phantom types to all data structures in order to allow type extraction (@gcanti)
- add all exports for rollup (@gcanti)
0.2
- Breaking Change
- complete refactoring: new technique to get higher kinded types and typeclasses
0.1.1
- New Feature
- add support for fantasy-land
- Breaking Change
- complete refactoring
- remove
datamodule - remove
newtypemodule
0.0.4
- Bug Fix
- fix
composedefinition for 5 or more functions (@bumbleblym)
- fix
0.0.3
- New Feature
- make Array a HKT and deprecate
to,fromhelper functions, fix #5 (@gcanti) - add
Tracedcomonad (@bumbleblym) - add
getOrElsemethod toOption(@gcanti) - add NonEmptyArray, fix #12 (@gcanti)
- make Array a HKT and deprecate
- Polish
- add tslint
- Bug Fix
- fix
Statedefinition (@gcanti)
- fix
0.0.2
- Bug Fix
- fix
ChainRecdefinition (@gcanti)
- fix
0.0.1
Initial release