MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / extractUserInfo

Function extractUserInfo

packages/cli/src/auth/client.ts:198–216  ·  view source on GitHub ↗

* The backend wraps responses in `{code, message, data: {...}}` for some * endpoints and returns raw fields directly for others. Handle both.

(payload: unknown)

Source from the content-addressed store, hash-verified

196 * endpoints and returns raw fields directly for others. Handle both.
197 */
198function extractUserInfo(payload: unknown): UserInfo {
199 if (!payload || typeof payload !== "object" || Array.isArray(payload)) return {};
200 const obj = payload as Record<string, unknown>;
201 const wrapped = obj["data"];
202 const data =
203 wrapped && typeof wrapped === "object" && !Array.isArray(wrapped)
204 ? (wrapped as Record<string, unknown>)
205 : obj;
206 return {
207 username: pickString(data, "username"),
208 email: pickString(data, "email"),
209 first_name: pickString(data, "first_name"),
210 last_name: pickString(data, "last_name"),
211 billing_type: pickString(data, "billing_type"),
212 wallet: pickObject(data, "wallet") as WalletInfo | undefined,
213 subscription: pickObject(data, "subscription") as SubscriptionInfo | undefined,
214 usage_based: pickObject(data, "usage_based") as UsageBasedInfo | undefined,
215 };
216}
217
218function pickString(obj: Record<string, unknown>, key: string): string | undefined {
219 const v = obj[key];

Callers 1

fetchUserMethod · 0.85

Calls 2

pickStringFunction · 0.85
pickObjectFunction · 0.85

Tested by

no test coverage detected