Skip to content

Latest commit

 

History

History
168 lines (107 loc) · 4.22 KB

CHANGELOG.md

File metadata and controls

168 lines (107 loc) · 4.22 KB

Changelog

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

Security

  • Fix CVE-2022-25883.

0.1.8 - 2023-07-10

Added

  • Complete the list of Http errors.

Security

  • Fix CVE-2022-46175.
  • Fix CVE-2022-25881.
  • Fix CVE-2023-26136.

0.1.7 - 2023-01-02

Added

  • Add infix to string module.

0.1.6 - 2022-09-30

Added

  • Add collectWithIndex function to ReadonlyRecord module.

0.1.5 - 2022-09-22

Added

  • Add prefix to string module.
  • Add suffix to string module.

Changed

  • Changed overloads of $mock.union function.

Fixed

  • Update yarn.lock in order to fix "typescript (18.x)" and "jest (18.x)" jobs in CI.

0.1.4 - 2022-06-24

Security

  • Fix CVE-2022-33987.

0.1.3 - 2022-05-31

Added

  • Add AggregateError inspired from TC39.

  • Add decode method to Type module to help wrapping io-ts Errors into an Error subclass.

  • Add unit tests for the set function of the Redis module.

  • Add Has module and enhance ReaderTaskEither 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)),
      ),
    )

Changed

  • Replace struct type with Struct.
  • Rename GeneratorL module to Yield.
  • Use cause property to record wrapped errors (inspired by TC39).

Deprecated

  • Deprecate struct (use Struct instead).
  • Deprecate GeneratorL module (use Yield instead).

Fixed

  • Decode from Json and then from the given codec in the get function of the Redis module.

0.1.2 - 2022-04-29

Added

  • Add LICENSE.md.
  • Add CONTRIBUTING.md.
  • Add CHANGELOG.md.

Changed

  • Relicense as MIT.
  • Update README.md.

Deprecated

  • Deprecate $got (use $axios instead).

0.1.1 - 2022-04-26

Added

  • Support tree shaking via top-level imports:
    import { curry } from 'fortepiano/function'
    // ...instead of `import { curry } from 'fortepiano/lib/function'`

Deprecated

  • Discourage imports from fortepiano/lib/* as they break tree shaking.

0.1.0 - 2022-04-20

Added

  • First public release of fortepiano.