5180 fichiers 38.5 Mo 0 téléchargements 270 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / soundboard / soundboardLegacyCatalog.ts
soundboardLegacyCatalog.ts 924 o Télécharger le fichier
import { ISoundboardSound } from '@octane/renderer';

const isRecord = (value: unknown): value is Record<string, unknown> => !!value && typeof value === 'object' && !Array.isArray(value);

export const normalizeLegacySoundboardCatalog = (input: unknown): ISoundboardSound[] => {
    if (!isRecord(input) || !Array.isArray(input.sounds)) return [];

    const ids = new Set<number>();
    const sounds: ISoundboardSound[] = [];

    for (const candidate of input.sounds) {
        if (!isRecord(candidate)) continue;

        const id = candidate.id;
        const name = typeof candidate.name === 'string' ? candidate.name.trim() : '';
        const url = typeof candidate.url === 'string' ? candidate.url.trim() : '';
        if (typeof id !== 'number' || !Number.isInteger(id) || id <= 0 || ids.has(id) || !name || !url) continue;

        ids.add(id);
        sounds.push({ id, name, url });
    }

    return sounds;
};
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser