| 1 | import { Region as AwsRegion } from "@distilled.cloud/aws/Region"; |
| 2 | import * as Effect from "effect/Effect"; |
| 3 | |
| 4 | // The Route 53 Domains API is global and only served from us-east-1, |
| 5 | // regardless of where the calling function runs. Pin every 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 Pricing / CloudFront KVS / ACM). |
| 11 | export const ROUTE53_DOMAINS_REGION = "us-east-1" as const; |
| 12 | |
| 13 | export const withRoute53DomainsRegion = <A, E, R>( |
| 14 | effect: Effect.Effect<A, E, R>, |
| 15 | ) => |
| 16 | effect.pipe( |
| 17 | Effect.provideService(AwsRegion, Effect.succeed(ROUTE53_DOMAINS_REGION)), |
| 18 | ); |