fp-ts
2.16.11 · 18 Aug 2025MIT6.2M / weekRepositorynpmAtom feed
1.19.5 is the newest release of 1.x.
In short
141 deprecated14 new5 changed
- deprecated
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). - deprecated
Deprecate
URI2HKT<n>in favour ofURItoKind<n> - deprecated
Deprecate
Type<n>in favour ofKind<n> - deprecated
Deprecate
Setoidin favour ofEq - deprecated
Deprecate
when - deprecated
Deprecate
getMonoid - deprecated
Deprecate
applyFirst, usepipeable'sapFirst - deprecated
Deprecate
applySecond, usepipeable'sapSecond
Release note
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 => 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
Eqmodulebackport top level data-last functions from v2
backport
pipeablemodule form v2backport
pipefunction form v2backport
flowfunction form v2Arrayadd
isNonEmpty
IOEitheradd
foldIOandfoldIOEither
Recordadd
recordinstanceadd
mapWithIndexadd
reduceWithIndexadd
foldMapWithIndexadd
reduceRightWithIndexadd
hasOwnProperty
Mapbackport
updateAtbackport
modifyAt
Ordmake
Orda contravariant functor
Bug Fix
fix
MonadThrowdefinitionTraversableWithIndexfix
TraverseWithIndex2definitionfix
TraverseWithIndex2Cdefinition
Deprecations
HKTdeprecate
URI2HKT<n>in favour ofURItoKind<n>deprecate
Type<n>in favour ofKind<n>
deprecate
Setoidin favour ofEqApplicativedeprecate
whendeprecate
getMonoid
Applydeprecate
applyFirst, usepipeable'sapFirstdeprecate
applySecond, usepipeable'sapSecond
Arraydeprecate
catOptionsin favour ofcompactdeprecate
mapOptionsin favour offilterMapdeprecate uncurried
filterin favour of curried, data-lastfilterdeprecate uncurried
partitionin favour of curried, data-lastpartitiondeprecate uncurried
partitionMapin favour of curried, data-lastpartitionMapdeprecate
fold/foldLin favour offoldLeftdeprecate
foldrin favour offoldRightdeprecate
takein favour oftakeLeftdeprecate
takeEndin favour oftakeRightdeprecate
takeWhilein favour oftakeLeftWhiledeprecate
spanin favour ofspanLeftdeprecate
dropin favour ofdropLeftdeprecate
dropEndin favour ofdropRightdeprecate
dropWhilein favour ofdropLeftWhiledeprecate uncurried
findIndexin favour of curried, data-lastfindIndexdeprecate uncurried
findFirstin favour of curried, data-lastfindFirstdeprecate uncurried
findFirstMapin favour of curried, data-lastfindFirstMapdeprecate uncurried
findLastin favour of curried, data-lastfindLastdeprecate uncurried
findLastMapin favour of curried, data-lastfindLastMapdeprecate uncurried
findLastIndexin favour of curried, data-lastfindLastIndexdeprecate uncurried
insertAtin favour of curried, data-lastinsertAtdeprecate uncurried
updateAtin favour of curried, data-lastupdateAtdeprecate uncurried
deleteAtin favour of curried, data-lastdeleteAtdeprecate uncurried
modifyAtin favour of curried, data-lastmodifyAtdeprecate uncurried
rotatein favour of curried, data-lastrotatedeprecate uncurried
chopin favour of curried, data-lastchopdeprecate
splitin favour ofsplitAtdeprecate uncurried
chunksOfin favour of curried, data-lastchunksOf
Chaindeprecate
flatten, usepipeable'sflatten
Constdeprecate
Constconstructor in favour ofmake
Contravariantdeprecate
lift, usepipeable'scontramap
Exceptionmodule is deprecatedExtenddeprecate
duplicate, usepipeable'sduplicate
Foldable2vdeprecate
folddeprecate
sequence_, usetraverse_deprecate
oneOfdeprecate
sumdeprecate
productdeprecate
elemdeprecate
findFirstdeprecate
mindeprecate
maxdeprecate
toArray
Freemodule is deprecatedFreeGroupmodule is deprecatedfunctiondeprecate
Function*types, useFunctionNdeprecate
Kleislitypedeprecate
Cokleislitypedeprecate
concatfunction, useArray'sgetSemigroupdeprecate
composefunction in favour offlowdeprecate
pipefunction in favour offlowdeprecate
curriedfunctiondeprecate
curryfunctiondeprecate
toStringfunction, useShowtype classdeprecate
applyfunctiondeprecate
applyFlippedfunctiondeprecate
constIdentityfunctiondeprecate
phantomdeprecate
ordeprecate
anddeprecate
ondeprecate
BinaryOperator
Functordeprecate
lift, usepipeable'smapdeprecate
voidRightdeprecate
voidLeftdeprecate
flap
Validationdeprecate
Validationmodule in favour ofEither's:getValidationgetValidationSemigroupgetValidationMonoid
Eitherdeprecate
getCompactable,getFilterablein favour ofgetWitherable
IOEitherdeprecate
rightin favour ofrightIOdeprecate
leftin favour ofleftIOdeprecate
fromLeftin favour ofleft2vadd
right2v
IxIOmodule is deprecatedIxMonadmodule is deprecatedMapdeprecate
insertin favour ofinsertAtdeprecate
removein favour ofdeleteAt
MonadThrowdeprecate
fromOptiondeprecate
fromEither
Monoiddeprecate
getArrayMonoidin favour ofArray'sgetMonoid
Monoidalmodule is deprecatedNonEmptyArraydeprecate uncurried
groupByin favour of curried, data-lastgroupBydeprecate
findFirstin favour ofArray'sfindFirstdeprecate
findLastin favour ofArray'sfindLastdeprecate
findIndexin favour ofArray'sfindIndexdeprecate
findLastIndexin favour ofArray'sfindLastIndexdeprecate uncurried
insertAtin favour of curried, data-lastinsertAtdeprecate uncurried
updateAtin favour of curried, data-lastupdateAtdeprecate uncurried
modifyAtin favour of curried, data-lastmodifyAtdeprecate uncurried
filterin favour of curried, data-lastfilterdeprecate uncurried
filterWithIndexin favour of curried, data-lastfilterWithIndex
Orddeprecate
lessThanin favour ofltdeprecate
greaterThanin favour ofgtdeprecate
lessThanOrEqin favour ofleqdeprecate
greaterThanOrEqin favour ofgeqswap
contramaparguments
Pairmodule is deprecatedProfunctordeprecate
lmapfunctiondeprecate
rmapfunction
ReaderTaskEitherdeprecate
rightin favour ofrightTaskdeprecate
leftin favour ofleftTaskdeprecate
fromReaderin favour ofrightReaderdeprecate
fromIOin favour ofrightIOdeprecate
fromLeftin favour ofleft2vadd
right2v
Recorddeprecate uncurried
collectin favour of curried, data-lastcollectdeprecate
insertin favour ofinsertAtdeprecate
removein favour ofdeleteAtdeprecate uncurried
popin favour of curried, data-lastpopdeprecate
mapWithKeyin favour ofmapWithIndexdeprecate
reduceWithKeyin favour ofreduceWithIndexdeprecate
foldMapWithKeyin favour offoldMapWithIndexdeprecate
foldrWithKeyin favour ofreduceRightWithIndexdeprecate
traverseWithKeyin favour oftraverseWithIndexdeprecate
traversein favour oftraverse2vdeprecate uncurried
filterWithIndexin favour of curried, data-lastfilterWithIndexdeprecate uncurried
partitionMapin favour of curried, data-lastpartitionMapdeprecate uncurried
partitionin favour of curried, data-lastpartitiondeprecate
witherin favour ofrecord.witherdeprecate
wiltin favour ofrecord.wiltdeprecate uncurried
filterMapin favour of curried, data-lastfilterMapdeprecate uncurried
partitionMapWithKeyin favour of curried, data-lastpartitionMapWithIndexdeprecate uncurried
partitionWithKeyin favour of curried, data-lastpartitionWithIndexdeprecate uncurried
filterMapWithKeyin favour of curried, data-lastfilterMapWithIndexdeprecate uncurried
filterin favour of curried, data-lastfilterdeprecate uncurried
mapin favour of curried, data-lastmapdeprecate uncurried
foldMapin favour of curried, data-lastfoldMapdeprecate
foldrin favour ofreduceRight
StrMapmodule is deprecatedTaskdeprecate
delayin favour ofdelay2v
TaskEitherdeprecate
rightin favour ofrightTaskdeprecate
leftin favour ofleftTaskdeprecate
fromIOin favour ofrightIOdeprecate
fromLeftin favour ofleft2vadd
right2v
Thesedeprecate
this_in favour ofleftdeprecate
thatin favour ofrightdeprecate
fromThesein favour oftoTupledeprecate
theseLeftin favour ofgetLeftdeprecate
theseRightin favour ofgetRightdeprecate
isThisin favour ofisLeftdeprecate
isThatin favour ofisRightdeprecate
thisOrBothin favour ofleftOrBothdeprecate
thatOrBothin favour ofrightOrBothdeprecate
theseThisin favour ofgetLeftOnlydeprecate
theseThatin favour ofgetRightOnly
Tracemodule is deprecatedValidationmodule is deprecated, useEither'sgetValidationWriterdeprecate
listensin favour oflistens2vdeprecate
censorin favour ofcensor2v
Zippermodule is deprecated