Minor Changes
-
#2006
9a2d1c1
Thanks @github-actions! - With this change we now require a string key to be provided for all tags and renames the dear oldTag
toGenericTag
, so when previously you could do:import { Effect, Context } from "effect"; interface Service { readonly _: unique symbol; } const Service = Context.Tag< Service, { number: Effect.Effect<never, never, number>; } >();
you are now mandated to do:
import { Effect, Context } from "effect"; interface Service { readonly _: unique symbol; } const Service = Context.GenericTag< Service, { number: Effect.Effect<never, never, number>; } >("Service");
This makes by default all tags globals and ensures better debuggaility when unexpected errors arise.
Furthermore we introduce a new way of constructing tags that should be considered the new default:
import { Effect, Context } from "effect"; class Service extends Context.Tag("Service")< Service, { number: Effect.Effect<never, never, number>; } >() {} const program = Effect.flatMap(Service, ({ number }) => number).pipe( Effect.flatMap((_) => Effect.log(`number: ${_}`)), );
this will use "Service" as the key and will create automatically an opaque identifier (the class) to be used at the type level, it does something similar to the above in a single shot.
-
#2006
2131a8c
Thanks @github-actions! - second revision of /rpc api/rpc now uses Schema.TaggedRequest to define the schemas, and supports
streaming.The api has been simplified and has a less complex design. See the examples
folder in the /rpc-http package for a simple example. -
#2006
1a77f72
Thanks @github-actions! - changeEffect
type parameters order fromEffect<R, E, A>
toEffect<A, E = never, R = never>
-
#2006
b1e2086
Thanks @github-actions! - remove re-exports from platform packages -
#2006
9a2d1c1
Thanks @github-actions! - This change enablesEffect.serviceConstants
andEffect.serviceMembers
to access any constant in the service, not only the effects, namely it is now possible to do:import { Effect, Context } from "effect"; class NumberRepo extends Context.TagClass("NumberRepo")< NumberRepo, { readonly numbers: Array<number>; } >() { static numbers = Effect.serviceConstants(NumberRepo).numbers; }
Patch Changes
- Updated dependencies [
96bcee2
,b1e2086
,4cd6e14
,96bcee2
,c77f635
,e343a74
,acf1894
,9dc04c8
,9a2d1c1
,2131a8c
,1a77f72
,af47aa3
,d3f9f4d
,c986f0e
,96bcee2
,d3f9f4d
,d3f9f4d
,d3f9f4d
,70dde23
,a34dbdc
,d3f9f4d
,81b7425
,b1e2086
,02c3461
,0e56e99
,8b0ded9
,8dd83e8
,5127afe
,d75f6fe
,7356e5c
,3077cde
,be19ce0
,4a5d01a
,78f47ab
,6361ee2
,52e5d20
,c6137ec
,86f665d
,f5ae081
,4a5d01a
,60686f5
,9a2d1c1
,5127afe
,56b8691
,8ee2931
,6727474
,5127afe
]:- effect@2.3.0
- @effect/platform@0.44.0
- @effect/schema@0.62.0
- @effect/rpc@0.27.0