Completes the first milestone of The Pet Loft ecommerce platform: - apps/storefront: full customer-facing Next.js app with HeroUI (cart, checkout, orders, wishlist, product detail, shop, search, auth) - convex/: serverless backend with schema, queries, mutations, actions, HTTP routes, Stripe/Shippo integrations, and co-located tests - packages/types, packages/utils, packages/convex: shared workspace packages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
12 lines
301 B
TypeScript
12 lines
301 B
TypeScript
import { QueryCtx } from "../_generated/server";
|
|
import { Id } from "../_generated/dataModel";
|
|
|
|
export async function getCategoryOrThrow(
|
|
ctx: QueryCtx,
|
|
id: Id<"categories">,
|
|
) {
|
|
const category = await ctx.db.get(id);
|
|
if (!category) throw new Error("Category not found");
|
|
return category;
|
|
}
|