Home / File/ cart.ts — astro Source File

cart.ts — astro Source File

Architecture documentation for cart.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  02d51798_5e00_bea9_2ad5_facdab102396["cart.ts"]
  68b48ea3_6a80_7c00_cfa0_9edb7b54bcab["session.ts"]
  02d51798_5e00_bea9_2ad5_facdab102396 --> 68b48ea3_6a80_7c00_cfa0_9edb7b54bcab
  f16d8c76_2866_6150_bd14_0347b59abfe9["astro"]
  02d51798_5e00_bea9_2ad5_facdab102396 --> f16d8c76_2866_6150_bd14_0347b59abfe9
  style 02d51798_5e00_bea9_2ad5_facdab102396 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { APIContext } from 'astro';
import { userCartItems } from '../../models/session';

export function GET({ cookies }: APIContext) {
	let userId = cookies.get('user-id')?.value;

	if (!userId || !userCartItems.has(userId)) {
		return Response.json({ items: [] });
	}
	let items = userCartItems.get(userId);
	let array = Array.from(items.values());

	return Response.json({ items: array });
}

interface AddToCartItem {
	id: number;
	name: string;
}

export async function POST({ cookies, request }: APIContext) {
	const item: AddToCartItem = await request.json();

	let userId = cookies.get('user-id')?.value;

	if (!userCartItems.has(userId)) {
		userCartItems.set(userId, new Map());
	}

	let cart = userCartItems.get(userId);
	if (cart.has(item.id)) {
		cart.get(item.id).count++;
	} else {
		cart.set(item.id, { id: item.id, name: item.name, count: 1 });
	}

	return Response.json({ ok: true });
}

Domain

Functions

Dependencies

Frequently Asked Questions

What does cart.ts do?
cart.ts is a source file in the astro codebase, written in typescript. It belongs to the StateStores domain, NanostoresImplementation subdomain.
What functions are defined in cart.ts?
cart.ts defines 2 function(s): GET, POST.
What does cart.ts depend on?
cart.ts imports 2 module(s): astro, session.ts.
Where is cart.ts in the architecture?
cart.ts is located at examples/ssr/src/pages/api/cart.ts (domain: StateStores, subdomain: NanostoresImplementation, directory: examples/ssr/src/pages/api).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free