Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
10 lines
704 B
TypeScript
10 lines
704 B
TypeScript
/**
|
|
* Для PATCH-запросов: оставляет из разобранного тела только поля, которые клиент действительно
|
|
* прислал. Схема с `.partial()` подставляет значения по умолчанию и в пропущенные поля — без
|
|
* этой фильтрации правка одного поля сбрасывала бы остальные.
|
|
*/
|
|
export function onlySent<T extends object>(body: unknown, parsed: T): Partial<T> {
|
|
const sent = body !== null && typeof body === 'object' ? body : {};
|
|
return Object.fromEntries(Object.entries(parsed).filter(([key]) => key in sent)) as Partial<T>;
|
|
}
|