All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.9 - 2024-05-14
- Fix CVE-2022-25883.
0.1.8 - 2023-07-10
- Complete the list of
Http
errors.
- Fix CVE-2022-46175.
- Fix CVE-2022-25881.
- Fix CVE-2023-26136.
0.1.7 - 2023-01-02
- Add
infix
tostring
module.
0.1.6 - 2022-09-30
- Add
collectWithIndex
function toReadonlyRecord
module.
0.1.5 - 2022-09-22
- Add
prefix
tostring
module. - Add
suffix
tostring
module.
- Changed overloads of
$mock.union
function.
- Update
yarn.lock
in order to fix "typescript (18.x)" and "jest (18.x)" jobs in CI.
0.1.4 - 2022-06-24
- Fix CVE-2022-33987.
0.1.3 - 2022-05-31
-
Add
AggregateError
inspired from TC39. -
Add
decode
method toType
module to help wrappingio-ts
Errors
into anError
subclass. -
Add unit tests for the
set
function of theRedis
module. -
Add
Has
module and enhanceReaderTaskEither
for smart dependencies management (inspired by Effect-TS):// Foo.ts import { TaskEither } from 'fp-ts/TaskEither' import { $has, $readerTaskEither } from 'fortepiano' export interface Foo { bar(a: number): TaskEither<Error, string> } export const TagFoo = $has.tag<Foo>() export const $foo = { bar: $readerTaskEither.derivesTaskEither(TagFoo, 'bar'), }
// Bar.ts import { IOEither } from 'fp-ts/IOEither' import { $has, $readerTaskEither } from 'fortepiano' export interface Bar { (a: string): IOEither<Error, boolean> } export const TagBar = $has.tag<Bar>() export const bar = $readerTaskEither.deriveIOEither(TagBar)
// index.ts import { $has } from 'fortepiano' import { ioEither, readerTaskEither, taskEither } from 'fp-ts' import { pipe } from 'fp-ts/function' import { TagBar, bar } from './Bar' import { $foo, TagFoo } from './Foo' // const a: ReaderTaskEither<Has<Foo> & Has<Bar>, Error, boolean> const a = pipe($foo.bar(42), readerTaskEither.chainW(bar)) // const b: TaskEither<Error, boolean> const b = a( // Let's mock our dependencies. pipe( $has.singleton(TagFoo, { bar: () => taskEither.of('foobar') }), $has.upsertAt(TagBar, () => ioEither.of(true)), ), )
- Replace
struct
type withStruct
. - Rename
GeneratorL
module toYield
. - Use
cause
property to record wrapped errors (inspired by TC39).
- Deprecate
struct
(useStruct
instead). - Deprecate
GeneratorL
module (useYield
instead).
- Decode from Json and then from the given codec in the
get
function of theRedis
module.
0.1.2 - 2022-04-29
- Add
LICENSE.md
. - Add
CONTRIBUTING.md
. - Add
CHANGELOG.md
.
- Relicense as MIT.
- Update
README.md
.
- Deprecate
$got
(use$axios
instead).
0.1.1 - 2022-04-26
- Support tree shaking via top-level imports:
import { curry } from 'fortepiano/function' // ...instead of `import { curry } from 'fortepiano/lib/function'`
- Discourage imports from
fortepiano/lib/*
as they break tree shaking.
0.1.0 - 2022-04-20
- First public release of
fortepiano
.