import type { Context } from "hono";

export type ReturnRes<T> =
  | { success: true; message: string; data: T }
  | { success: false; message: string; error: any };

export const returnRes = <T>(
  success: boolean,
  message: string,
  data: T | null = null
): ReturnRes<T> => {
  /**
   * just a simple return to reduce the typing and make sure we are always consitant with our returns.
   *
   * data can be an error as well.
   */
  return success
    ? { success, message, data: data as T }
    : { success, message, error: data ?? "An unknown error occurred" };
};

// export const returnApi = (c:Context,success: boolean, message: string, data?: any, code: number)=>{
//     /**
//    * just a simple return to reduce the typing and make sure we are always consitant with our returns.
//    *
//    * data can be an error as well.
//    */
//   return c.json({success, message, data}, code);
// }
