Files
scriptc/tests/fixtures/effect4/rate-limiter.ts
Chris Tate e2d58f60d2 Expand static support for common Effect 4 patterns (#600)
* 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
2026-10-01 17:36:29 -05:00

5 lines
561 B
TypeScript

import * as Effect from "effect/Effect"
import * as Layer from "effect/Layer"
import * as RateLimiter from "effect/persistence/RateLimiter"
Effect.runPromise((Effect.gen(function*(){const l=yield* RateLimiter.make;const opts={key:"one",limit:1,window:"1 minute" as const,onExceeded:"fail" as const};const a=yield* l.consume(opts);const b=yield* l.consume(opts).pipe(Effect.catch(e=>Effect.succeed(e.reason._tag)));return [a.remaining,b]}).pipe(Effect.provide(RateLimiter.layerStoreMemory))).pipe(Effect.tap(v=>Effect.sync(()=>console.log(JSON.stringify(v))))))