export class StripeService extends Effect.Service<StripeService>()(
"StripeService",
{
accessors: true,
effect: Effect.gen(function* () {
const secretKey = Deno.env.get("STRIPE_SECRET_KEY")!;
const webhookSecret = Deno.env.get("STRIPE_WEBHOOK_SECRET")!;
const config = yield* Schema.decodeUnknownEither(StripeConfigSchema)({
secretKey,
apiVersion: "2025-07-30.basil",
webhookSecret,
});
return new Stripe(config.secretKey, {
apiVersion: config.apiVersion,
typescript: true,
});
}),
}
) {}
export class StripeService extends Effect.Service<StripeService>()(
"StripeService",
{
accessors: true,
effect: Effect.gen(function* () {
const secretKey = Deno.env.get("STRIPE_SECRET_KEY")!;
const webhookSecret = Deno.env.get("STRIPE_WEBHOOK_SECRET")!;
const config = yield* Schema.decodeUnknownEither(StripeConfigSchema)({
secretKey,
apiVersion: "2025-07-30.basil",
webhookSecret,
});
return new Stripe(config.secretKey, {
apiVersion: config.apiVersion,
typescript: true,
});
}),
}
) {}