Aller au contenu

Le SDK JavaScript

NPM VersionGithub starsNPM DownloadsCoverageBuild Status

Fenêtre de terminal
npm i @tcgdex/sdk
// Importer le SDK en ESM/TypeScript
import TCGdex from '@tcgdex/sdk'
// OU importer le SDK en CommonJS
const TCGdex = require('@tcgdex/sdk').default
// Instancier le SDK avec votre langue préférée
const tcgdex = new TCGdex('en');
// Utilisation dans un contexte asynchrone
(async () => {
// Récupérer Fouinar du set Ténèbres Embrasées
const card = await tcgdex.card.get('swsh3-136');
console.log(card.name); // "Furret"
})();

Le SDK fournit des endpoints dédiés pour les types de données courants :

// Obtenir une carte spécifique
const card = await tcgdex.card.get('swsh3-136');
// Obtenir un set spécifique
const set = await tcgdex.set.get('swsh3');
// Obtenir une série spécifique
const serie = await tcgdex.serie.get('swsh');
// Obtenir une liste de toutes les cartes
const allCards = await tcgdex.card.list();

Vous pouvez également récupérer des cartes, sets ou séries aléatoires :

// Obtenir une carte aléatoire
const randomCard = await tcgdex.random.card();
// Obtenir un set aléatoire
const randomSet = await tcgdex.random.set();
// Obtenir une série aléatoire
const randomSerie = await tcgdex.random.serie();

Le SDK fournit un système de requêtes puissant pour filtrer les données :

import TCGdex, { Query } from '@tcgdex/sdk';
const tcgdex = new TCGdex('en');
// Créer une requête pour trouver les cartes Pikachu avec un HP entre 60 et 70
const pikachuCards = await tcgdex.card.list(
Query.create()
.equal('name', 'Pikachu') // Correspond au nom exact
.greaterOrEqualThan('hp', 60) // HP >= 60
.lesserThan('hp', 70) // HP < 70
.sort('localId', 'ASC') // Trier par ID en ordre croissant
);
// Trouver des cartes contenant "5" dans leur ID mais pas "tg"
const filteredCards = await tcgdex.card.list(
Query.create()
.contains('localId', '5') // L'ID contient "5"
.not.contains('localId', 'tg') // L'ID ne contient pas "tg"
);
// Exemple de pagination - obtenir la page 3 avec 2 éléments par page
const paginatedCards = await tcgdex.card.list(
Query.create()
.paginate(3, 2)
);

Le SDK facilite la navigation entre les relations d’objets :

// Obtenir une carte puis récupérer son set
const card = await tcgdex.card.get('swsh3-136');
const set = await card.getSet();
// Obtenir un set puis récupérer sa série
const set = await tcgdex.set.get('swsh3');
const serie = await set.getSerie();
// Obtenir une carte à partir de la liste de cartes d'un set
const set = await tcgdex.set.get('swsh3');
const firstCardResume = set.cards[0];
const fullCard = await firstCardResume.getCard();

Trouvez des cartes par attributs spécifiques :

// Obtenir toutes les cartes de type feu
const fireType = await tcgdex.type.get('fire');
// Obtenir toutes les cartes avec un HP spécifique
const hp90Cards = await tcgdex.hp.get('90');
// Obtenir toutes les cartes d'un illustrateur spécifique
const illustratorCards = await tcgdex.illustrator.get('TOKIYA');
// Obtenir toutes les cartes avec une rareté spécifique
const rareCards = await tcgdex.rarity.get('rare');

Le SDK fournit plusieurs options de configuration :

// Créer le SDK avec une langue spécifique
const tcgdex = new TCGdex('fr'); // Français
// Changer la langue après l'initialisation
tcgdex.setLang('en'); // Passer à l'anglais
// Définir un endpoint API personnalisé
tcgdex.setEndpoint('https://custom-api.example.com/v2');
// Configurer la mise en cache
tcgdex.setCacheTTL(3600); // Définir la durée du cache à 1 heure

Accédez facilement aux images des cartes :

const card = await tcgdex.card.get('swsh3-136');
// Obtenir l'URL d'une image PNG haute qualité
const highQualityPng = card.getImageURL('high', 'png');
// Obtenir l'URL d'une image WEBP basse qualité pour les performances
const lowQualityWebp = card.getImageURL('low', 'webp');