| 1 | import { Region as AwsRegion } from "@distilled.cloud/aws/Region"; |
| 2 | import * as Effect from "effect/Effect"; |
| 3 | |
| 4 | // The AWS Price List Query API is only served from us-east-1 (and ap-south-1), |
| 5 | // regardless of where the calling function runs. Pin every pricing call to |
| 6 | // us-east-1 so a Lambda deployed in any region resolves a valid endpoint. |
| 7 | // |
| 8 | // NOTE: the distilled Region service value is `Effect<RegionName>`, not a raw |
| 9 | // string — providing a bare string makes the client `yield*` a string and |
| 10 | // crash. Wrap in Effect.succeed (same as CloudFront KVS / ACM / WAFv2). |
| 11 | export const PRICING_REGION = "us-east-1" as const; |
| 12 | |
| 13 | export const withPricingRegion = <A, E, R>(effect: Effect.Effect<A, E, R>) => |
| 14 | effect.pipe(Effect.provideService(AwsRegion, Effect.succeed(PRICING_REGION))); |