Zum Inhalt springen

Das TypeScript SDK

NPM VersionGithub starsNPM DownloadsCoverageBuild Status

Terminal-Fenster
npm i @tcgdex/sdk
// SDK in ESM/TypeScript importieren
import TCGdex from '@tcgdex/sdk'
// SDK mit Ihrer bevorzugten Sprache instanziieren
const tcgdex = new TCGdex('en');
// In einem asynchronen Kontext verwenden
(async () => {
// Furret aus dem Darkness Ablaze Set abrufen
const card = await tcgdex.card.get('swsh3-136');
console.log(card.name); // "Furret"
})();

Das SDK bietet dedizierte Endpunkte für gängige Datentypen:

// Eine bestimmte Karte abrufen
const card = await tcgdex.card.get('swsh3-136');
// Ein bestimmtes Set abrufen
const set = await tcgdex.set.get('swsh3');
// Eine bestimmte Serie abrufen
const serie = await tcgdex.serie.get('swsh');
// Eine Liste aller Karten abrufen
const allCards = await tcgdex.card.list();

Sie können auch zufällige Karten, Sets oder Serien abrufen:

// Eine zufällige Karte abrufen
const randomCard = await tcgdex.random.card();
// Ein zufälliges Set abrufen
const randomSet = await tcgdex.random.set();
// Eine zufällige Serie abrufen
const randomSerie = await tcgdex.random.serie();

Das SDK bietet ein leistungsstarkes Abfragesystem zur Filterung von Daten:

import TCGdex, { Query } from '@tcgdex/sdk';
const tcgdex = new TCGdex('en');
// Abfrage erstellen, um Pikachu-Karten mit HP zwischen 60 und 70 zu finden
const pikachuCards = await tcgdex.card.list(
Query.create()
.equal('name', 'Pikachu') // Exakter Namensabgleich
.greaterOrEqualThan('hp', 60) // HP >= 60
.lesserThan('hp', 70) // HP < 70
.sort('localId', 'ASC') // Nach ID aufsteigend sortieren
);
// Karten finden, die "5" in ihrer ID enthalten, aber nicht "tg"
const filteredCards = await tcgdex.card.list(
Query.create()
.contains('localId', '5') // ID enthält "5"
.not.contains('localId', 'tg') // ID enthält nicht "tg"
);
// Paginierungsbeispiel - Seite 3 mit 2 Elementen pro Seite abrufen
const paginatedCards = await tcgdex.card.list(
Query.create()
.paginate(3, 2)
);

Das SDK erleichtert die Navigation zwischen Objektbeziehungen:

// Eine Karte abrufen und dann das zugehörige Set abrufen
const card = await tcgdex.card.get('swsh3-136');
const set = await card.getSet();
// Ein Set abrufen und dann die zugehörige Serie abrufen
const set = await tcgdex.set.get('swsh3');
const serie = await set.getSerie();
// Eine Karte aus der Kartenliste eines Sets abrufen
const set = await tcgdex.set.get('swsh3');
const firstCardResume = set.cards[0];
const fullCard = await firstCardResume.getCard();

Finden Sie Karten nach bestimmten Attributen:

// Alle Feuer-Typ-Karten abrufen
const fireType = await tcgdex.type.get('fire');
// Alle Karten mit bestimmten HP abrufen
const hp90Cards = await tcgdex.hp.get('90');
// Alle Karten eines bestimmten Illustrators abrufen
const illustratorCards = await tcgdex.illustrator.get('TOKIYA');
// Alle Karten mit einer bestimmten Seltenheit abrufen
const rareCards = await tcgdex.rarity.get('rare');

Das SDK bietet verschiedene Konfigurationsoptionen:

// SDK mit einer bestimmten Sprache erstellen
const tcgdex = new TCGdex('fr'); // Französisch
// Sprache nach der Initialisierung ändern
tcgdex.setLang('en'); // Zu Englisch wechseln
// Einen benutzerdefinierten API-Endpunkt festlegen
tcgdex.setEndpoint('https://custom-api.example.com/v2');
// Caching konfigurieren
tcgdex.setCacheTTL(3600); // Cache-Dauer auf 1 Stunde setzen

Greifen Sie einfach auf Kartenbilder zu:

const card = await tcgdex.card.get('swsh3-136');
// URL für hochqualitatives PNG-Bild abrufen
const highQualityPng = card.getImageURL('high', 'png');
// URL für niedrigqualitatives WEBP-Bild für bessere Performance abrufen
const lowQualityWebp = card.getImageURL('low', 'webp');