1import { Region as AwsRegion } from "@distilled.cloud/aws/Region";
2import * 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).
11export const ROUTE53_DOMAINS_REGION = "us-east-1" as const;
12
13export 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 );