• Validates and extracts kenmeiManga from raw object; returns null if required fields missing.

    Parameters

    • raw: unknown

      Raw object to validate.

    Returns null | KenmeiManga

    Validated KenmeiManga or null if invalid.

    export function extractKenmeiManga(raw: unknown): KenmeiManga | null {
    if (typeof raw !== "object" || raw === null) return null;

    const obj = raw as Record<string, unknown>;

    if (
    (typeof obj.id !== "string" && typeof obj.id !== "number") ||
    typeof obj.title !== "string"
    ) {
    return null;
    }

    return {
    id: obj.id,
    title: obj.title,
    status: pickStringFromRecord(obj, "status") ?? "",
    score: pickNumberFromRecord(obj, "score") ?? 0,
    chaptersRead:
    pickNumberFromRecord(obj, "chaptersRead", "chapters_read") ?? 0,
    volumesRead: pickNumberFromRecord(obj, "volumesRead", "volumes_read") ?? 0,
    notes: pickStringFromRecord(obj, "notes") ?? "",
    createdAt: pickStringFromRecord(obj, "createdAt", "created_at") ?? "",
    updatedAt: pickStringFromRecord(obj, "updatedAt", "updated_at") ?? "",
    lastReadAt: pickStringFromRecord(obj, "lastReadAt", "last_read_at"),
    };
    }