Skip to content

Releases: Snowflyt/tinyeffect

v0.3.4

Choose a tag to compare

@Snowflyt Snowflyt released this 29 Mar 15:37
  • 🦄 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

Choose a tag to compare

@Snowflyt Snowflyt released this 26 Mar 10:09
  • ✨ 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

Choose a tag to compare

@Snowflyt Snowflyt released this 21 Mar 09:03
  • ✨ 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

Choose a tag to compare

@Snowflyt Snowflyt released this 07 Feb 01:35
  • 🐳 chore(build): Replace sucrase with ts-blank-space to generate cleaner JS output.

v0.3.0

Choose a tag to compare

@Snowflyt Snowflyt released this 06 Feb 15:15
  • ✨ feat!: Rename Effected#map to Effected#andThen for improved API conciseness. (76fb3fe)

v0.2.1

Choose a tag to compare

@Snowflyt Snowflyt released this 12 Nov 06:33
  • ✨ 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

Choose a tag to compare

@Snowflyt Snowflyt released this 11 Nov 03:45
  • ✨ 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

Choose a tag to compare

@Snowflyt Snowflyt released this 08 Nov 07:20
  • ✨ feat: Add Effected.of/from to create an Effected instance with no effects and a simple return value.

v0.1.1

Choose a tag to compare

@Snowflyt Snowflyt released this 05 Nov 03:28
  • ✨ feat: Add .catchAndThrow(error, message?) and .catchAllAndThrow(message?) to allow raising exceptions instead of handling them.

v0.1.0

Choose a tag to compare

@Snowflyt Snowflyt released this 03 Nov 15:13

Algebraic effects, in TypeScript.

That’s where tinyeffect comes in.