From 69f32aa067bc5b96064c2f14778816568aa12d75 Mon Sep 17 00:00:00 2001 From: "Jaron (aider)" Date: Sat, 15 Feb 2025 12:11:27 -0600 Subject: [PATCH] refactor: Improve hydration to preserve previous properties and types --- src/services/hydrator.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/services/hydrator.ts b/src/services/hydrator.ts index 20d3ff9..05ea297 100644 --- a/src/services/hydrator.ts +++ b/src/services/hydrator.ts @@ -9,8 +9,8 @@ import type { Client } from "./client"; export type GatewayObject = Message | Channel; export type Hydrateable = Context | GatewayObject export type Hydrated> = - T extends Message ? HydratedMessage : - T extends Context ? HydratedContext : never; + T extends Message ? HydratedMessage & Partial> : + T extends Context ? HydratedContext & Partial> : never; /** * Hydrates a given data object based on the provided expectations. @@ -69,7 +69,11 @@ export async function hydrate ? Hydrated : Hydrated); + // Create a new object that preserves all existing properties + const result = { ...data }; + + // Return with both previous and new hydrated properties preserved + return result as Hydrated; } /**