1import { CreateCheckoutSession as createCheckoutSessionOp } from "@distilled.cloud/stripe/stripe";
2import * as Layer from "effect/Layer";
3import { CreateCheckoutSession } from "./CreateCheckoutSession.ts";
4import { makeHttpStripeAccountBinding } from "./StripeHttp.ts";
5
6/**
7 * HTTP implementation of {@link CreateCheckoutSession}. Provide it on the
8 * Function or Worker Effect.
9 *
10 * @layer
11 * @product Checkout
12 * @provides Stripe.CreateCheckoutSession
13 */
14export const CreateCheckoutSessionHttp = Layer.effect(
15 CreateCheckoutSession,
16 makeHttpStripeAccountBinding({
17 tag: "Stripe.CreateCheckoutSession",
18 operation: createCheckoutSessionOp,
19 permissions: ["checkout_sessions_write"],
20 }),
21);