mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-22 05:59:31 +08:00
* Expand static compilation for common Effect 4 patterns * Run every Effect 4 fixture slice in CI * Preserve existing corpus behavior across Effect 4 lowering * Preserve Effect platform callbacks and native stream state * Record new corpus baselines and retain child stdin refusals * Retire the obsolete stateful regex diagnostic * Preserve promise reference count layout for cycle collection
9 lines
855 B
TypeScript
9 lines
855 B
TypeScript
import * as Effect from "effect/Effect"
|
|
import * as Layer from "effect/Layer"
|
|
import * as Ref from "effect/Ref"
|
|
import * as Schema from "effect/Schema"
|
|
import * as Entity from "effect/cluster/Entity"
|
|
import * as TestRunner from "effect/cluster/TestRunner"
|
|
import * as Rpc from "effect/rpc/Rpc"
|
|
const C=Entity.make("Counter",[Rpc.make("Inc",{payload:{amount:Schema.Int},success:Schema.Int})]);const handlers=C.toLayer(Effect.gen(function*(){const n=yield* Ref.make(0);return C.of({Inc:({payload})=>Ref.updateAndGet(n,v=>v+payload.amount)})}));Effect.runPromise((Effect.gen(function*(){const client=yield* C.client;const c=client("counter-1");return [yield* c.Inc({amount:1}),yield* c.Inc({amount:2})]}).pipe(Effect.provide(handlers.pipe(Layer.provideMerge(TestRunner.layer))))).pipe(Effect.tap(value=>Effect.sync(()=>console.log(JSON.stringify(value))))))
|