• Map an AniList status to Kenmei status.

    Parameters

    Returns KenmeiStatus

    Kenmei status.

    export function mapAniListToKenmeiStatus(
    status: MediaListStatus,
    customMapping?: Partial<StatusMappingConfig>,
    ): KenmeiStatus {
    // Create a reverse mapping
    const reverseMapping = new Map<MediaListStatus, KenmeiStatus>();

    // Populate with default mapping
    Object.entries(DEFAULT_STATUS_MAPPING).forEach(
    ([kenmeiStatus, anilistStatus]) => {
    reverseMapping.set(anilistStatus, kenmeiStatus as KenmeiStatus);
    },
    );

    // Override with custom mapping if provided
    if (customMapping) {
    Object.entries(customMapping).forEach(([kenmeiStatus, anilistStatus]) => {
    // Find and remove the default entry for this AniList status
    [...reverseMapping.entries()].forEach(([key]) => {
    if (key === anilistStatus) {
    reverseMapping.delete(key);
    }
    });

    // Add the custom mapping
    reverseMapping.set(anilistStatus, kenmeiStatus as KenmeiStatus);
    });
    }

    // Find the matching Kenmei status
    const kenmeiStatus = reverseMapping.get(status);

    // Default to "reading" if no mapping is found
    return kenmeiStatus || "reading";
    }