Add additional lint rules

This commit is contained in:
Aerilyn Weber 2026-05-19 16:15:15 +09:00
parent 02d782c3da
commit 420b18eb78
67 changed files with 3686 additions and 1415 deletions

View file

@ -2,6 +2,7 @@ import { apiClient } from './api-client';
import type { z } from 'zod/v4';
import type {
ShoppingListResponseSchema,
ShoppingItemSchema,
CreateShoppingListSchema,
UpdateShoppingListSchema,
AddShoppingItemSchema,
@ -10,25 +11,31 @@ import type {
BasketStoreComparisonResponseSchema,
} from '@meshitrack/shared';
type ShoppingListResponse = z.infer<typeof ShoppingListResponseSchema>;
type CreateShoppingListInput = z.infer<typeof CreateShoppingListSchema>;
type UpdateShoppingListInput = z.infer<typeof UpdateShoppingListSchema>;
type AddShoppingItemInput = z.infer<typeof AddShoppingItemSchema>;
type UpdateShoppingItemInput = z.infer<typeof UpdateShoppingItemSchema>;
type ShoppingListSyncToPantryResponse = z.infer<typeof ShoppingListSyncToPantryResponseSchema>;
type BasketStoreComparisonResponse = z.infer<typeof BasketStoreComparisonResponseSchema>;
export type ShoppingListResponse = z.infer<typeof ShoppingListResponseSchema>;
export type ShoppingItem = z.infer<typeof ShoppingItemSchema>;
export type CreateShoppingListInput = z.infer<typeof CreateShoppingListSchema>;
export type UpdateShoppingListInput = z.infer<typeof UpdateShoppingListSchema>;
export type AddShoppingItemInput = z.infer<typeof AddShoppingItemSchema>;
export type UpdateShoppingItemInput = z.infer<typeof UpdateShoppingItemSchema>;
export type ShoppingListSyncToPantryResponse = z.infer<
typeof ShoppingListSyncToPantryResponseSchema
>;
export type BasketStoreComparisonResponse = z.infer<typeof BasketStoreComparisonResponseSchema>;
export async function getShoppingLists(householdId: string): Promise<ShoppingListResponse[]> {
return apiClient.get<ShoppingListResponse[]>(`/households/${householdId}/shopping-lists`);
}
export async function getShoppingList(householdId: string, id: string): Promise<ShoppingListResponse> {
export async function getShoppingList(
householdId: string,
id: string,
): Promise<ShoppingListResponse> {
return apiClient.get<ShoppingListResponse>(`/households/${householdId}/shopping-lists/${id}`);
}
export async function createShoppingList(
householdId: string,
data: CreateShoppingListInput
data: CreateShoppingListInput,
): Promise<ShoppingListResponse> {
return apiClient.post<ShoppingListResponse>(`/households/${householdId}/shopping-lists`, data);
}
@ -36,9 +43,12 @@ export async function createShoppingList(
export async function updateShoppingList(
householdId: string,
id: string,
data: UpdateShoppingListInput
data: UpdateShoppingListInput,
): Promise<ShoppingListResponse> {
return apiClient.patch<ShoppingListResponse>(`/households/${householdId}/shopping-lists/${id}`, data);
return apiClient.patch<ShoppingListResponse>(
`/households/${householdId}/shopping-lists/${id}`,
data,
);
}
export async function deleteShoppingList(householdId: string, id: string): Promise<void> {
@ -50,30 +60,33 @@ export async function deleteShoppingList(householdId: string, id: string): Promi
export async function addShoppingItem(
householdId: string,
id: string,
data: AddShoppingItemInput
data: AddShoppingItemInput,
): Promise<ShoppingListResponse> {
return apiClient.post<ShoppingListResponse>(`/households/${householdId}/shopping-lists/${id}/items`, data);
return apiClient.post<ShoppingListResponse>(
`/households/${householdId}/shopping-lists/${id}/items`,
data,
);
}
export async function updateShoppingItem(
householdId: string,
id: string,
itemId: string,
data: UpdateShoppingItemInput
data: UpdateShoppingItemInput,
): Promise<ShoppingListResponse> {
return apiClient.patch<ShoppingListResponse>(
`/households/${householdId}/shopping-lists/${id}/items/${itemId}`,
data
data,
);
}
export async function removeShoppingItem(
householdId: string,
id: string,
itemId: string
itemId: string,
): Promise<ShoppingListResponse> {
return apiClient.delete<ShoppingListResponse>(
`/households/${householdId}/shopping-lists/${id}/items/${itemId}`
`/households/${householdId}/shopping-lists/${id}/items/${itemId}`,
);
}
@ -81,28 +94,28 @@ export async function removeShoppingItem(
export async function generateFromMealPlan(
householdId: string,
mealPlanId: string
mealPlanId: string,
): Promise<ShoppingListResponse> {
return apiClient.post<ShoppingListResponse>(
`/households/${householdId}/shopping-lists/from-meal-plan/${mealPlanId}`
`/households/${householdId}/shopping-lists/from-meal-plan/${mealPlanId}`,
);
}
export async function syncToPantry(
householdId: string,
id: string
id: string,
): Promise<ShoppingListSyncToPantryResponse> {
return apiClient.post<ShoppingListSyncToPantryResponse>(
`/households/${householdId}/shopping-lists/${id}/sync-to-pantry`
`/households/${householdId}/shopping-lists/${id}/sync-to-pantry`,
);
}
export async function getBasketStoreComparison(
householdId: string,
id: string
id: string,
): Promise<BasketStoreComparisonResponse> {
return apiClient.get<BasketStoreComparisonResponse>(
`/households/${householdId}/shopping-lists/${id}/stores`
`/households/${householdId}/shopping-lists/${id}/stores`,
);
}