Skip to content

Releases: Snowflyt/tinyeffect

v0.3.4

29 Mar 15:37
Compare
Choose a tag to compare
  • 🦄 refactor(type): Support EffectedDraft in .pipe(...fs). (a44cc7f)
  • 🦄 refactor(type): Export EffectedDraft for 3rd-party libraries integration. (a44cc7f)
  • 🦄 refactor(type): Preserve effect type in ExcludeEffect if no modification is needed to make type information more readable. (a44cc7f)
  • 🦄 refactor(type): Improve type inference for .handle(). (a44cc7f)
  • 🐞 fix(type): Fix type inference of nested default effects for .provide() and .provideBy(). (a44cc7f)
  • 🐞 fix(type): Correct return type of the defaultHandler property for Default. (a44cc7f)
  • 📃 docs(README): Rename effected parameter to self in effect handlers to avoid confusion. (a44cc7f)
  • 📃 docs(README): Add an example to build a configurable logging system with algebraic effects. (848ac31)

v0.3.3

26 Mar 10:09
Compare
Choose a tag to compare
  • ✨ feat: Support default effect handlers. (58115ee)
  • ✨ feat: Add Effected#zip for zipping two effected programs together. (60abecc)
  • ✨ feat: Add Effected#pipe for easy integration with user-defined transformers (inspired by Effect). (61ef163)

v0.3.2

21 Mar 09:03
Compare
Choose a tag to compare
  • ✨ feat: Support running asynchronous effected programs in parallel (concurrency) by adding Effected.all and Effected.allSeq. (fb2c5ac)
  • ✨ feat: Added pipeline-style transformation methods: .map(), .flatMap(), .as(value) and .asVoid() to enhance functional composition patterns. (c9fc3b9) (43fcaf2)
  • 🦄 refactor: Improve readability of error messages. (d75a710)
  • 🐞 fix: Fixed .andThen() method to properly initialize iterators when executed multiple times. This resolves an issue where subsequent runs of effected programs could produce incorrect results or fail unexpectedly. (374108d)
  • 🐞 fix(type): Fix return type inference of .andThen() when handler function returns a mix of effected programs and simple values. (f3c8c3a)
  • 📃 docs(README): Improve documentation for pipeline syntax. (655a3be)

v0.3.1

07 Feb 01:35
Compare
Choose a tag to compare
  • 🐳 chore(build): Replace sucrase with ts-blank-space to generate cleaner JS output.

v0.3.0

06 Feb 15:15
Compare
Choose a tag to compare
  • ✨ feat!: Rename Effected#map to Effected#andThen for improved API conciseness. (76fb3fe)

v0.2.1

12 Nov 06:33
Compare
Choose a tag to compare
  • ✨ feat: Add .tap(handler) as an alternative of .map(handler) that preserves the original value.
  • 🐳 chore: Lower minimum compatibility target to ES2015.

v0.2.0

11 Nov 03:45
Compare
Choose a tag to compare
  • ✨ feat (BREAKING CHANGE): effect now returns an effected function instead of a gnerator function for consistency. Similarly, effectify now returns an Effected instance instead of a generator.
  • 🎈 perf: The performance of nested effects (handling effects within another effected program or other effects) has been significantly improved, now achieving up to 20x faster execution than before.

v0.1.2

08 Nov 07:20
Compare
Choose a tag to compare
  • ✨ feat: Add Effected.of/from to create an Effected instance with no effects and a simple return value.

v0.1.1

05 Nov 03:28
Compare
Choose a tag to compare
  • ✨ feat: Add .catchAndThrow(error, message?) and .catchAllAndThrow(message?) to allow raising exceptions instead of handling them.

v0.1.0

03 Nov 15:13
Compare
Choose a tag to compare

Algebraic effects, in TypeScript.

That’s where tinyeffect comes in.