examples/storefront Public
import { WorkerEntrypoint } from "cloudflare:workers";import { createApp } from "./app.ts";import type { Env } from "./env.ts";import { cancelOrder, markPaid, type Settled } from "./orders.ts";// The calls the shop's other Workers make through a service binding (entrypoint OrdersService).// storefront-api stays the only Worker that writes to the database; see// .rebasely/kb/decisions/0006-one-writer-for-the-database.md.export class OrdersService extends WorkerEntrypoint<Env> { markPaid(orderId: string, paymentIntentId: string): Promise<Settled> { return markPaid(this.env.DB, this.env.ORDER_EVENTS, orderId, paymentIntentId, Date.now()); } cancel(orderId: string): Promise<Settled> { return cancelOrder(this.env.DB, this.env.ORDER_EVENTS, orderId, Date.now()); }}export default { fetch(req, env) { return createApp(env).fetch(req); },} satisfies ExportedHandler<Env>;