Salta ai contenuti

L'SDK JavaScript

NPM VersionGithub starsNPM DownloadsCoverageBuild Status

Terminal window
npm i @tcgdex/sdk
// Importa l'SDK in ESM/TypeScript
import TCGdex from '@tcgdex/sdk'
// OPPURE importa l'SDK in CommonJS
const TCGdex = require('@tcgdex/sdk').default
// Istanzia l'SDK con la lingua preferita
const tcgdex = new TCGdex('en');
// Usa in un contesto asincrono
(async () => {
// Recupera Furret dal set Darkness Ablaze
const card = await tcgdex.card.get('swsh3-136');
console.log(card.name); // "Furret"
})();

L’SDK fornisce endpoint dedicati per i tipi di dati comuni:

// Ottieni una carta specifica
const card = await tcgdex.card.get('swsh3-136');
// Ottieni un set specifico
const set = await tcgdex.set.get('swsh3');
// Ottieni una serie specifica
const serie = await tcgdex.serie.get('swsh');
// Ottieni una lista di tutte le carte
const allCards = await tcgdex.card.list();

Puoi anche recuperare carte, set o serie casuali:

// Ottieni una carta casuale
const randomCard = await tcgdex.random.card();
// Ottieni un set casuale
const randomSet = await tcgdex.random.set();
// Ottieni una serie casuale
const randomSerie = await tcgdex.random.serie();

L’SDK fornisce un potente sistema di query per filtrare i dati:

import TCGdex, { Query } from '@tcgdex/sdk';
const tcgdex = new TCGdex('en');
// Crea una query per trovare le carte di Pikachu con HP tra 60 e 70
const pikachuCards = await tcgdex.card.list(
Query.create()
.equal('name', 'Pikachu') // Corrispondenza esatta del nome
.greaterOrEqualThan('hp', 60) // HP >= 60
.lesserThan('hp', 70) // HP < 70
.sort('localId', 'ASC') // Ordina per ID in modo ascendente
);
// Trova carte che contengono "5" nel loro ID ma non "tg"
const filteredCards = await tcgdex.card.list(
Query.create()
.contains('localId', '5') // ID contiene "5"
.not.contains('localId', 'tg') // ID non contiene "tg"
);
// Esempio di paginazione - ottieni pagina 3 con 2 elementi per pagina
const paginatedCards = await tcgdex.card.list(
Query.create()
.paginate(3, 2)
);

L’SDK rende facile navigare tra le relazioni tra gli oggetti:

// Ottieni una carta e poi recupera il suo set
const card = await tcgdex.card.get('swsh3-136');
const set = await card.getSet();
// Ottieni un set e poi recupera la sua serie
const set = await tcgdex.set.get('swsh3');
const serie = await set.getSerie();
// Ottieni una carta dalla lista di carte di un set
const set = await tcgdex.set.get('swsh3');
const firstCardResume = set.cards[0];
const fullCard = await firstCardResume.getCard();

Trova carte in base a specifici attributi:

// Ottieni tutte le carte di tipo fuoco
const fireType = await tcgdex.type.get('fire');
// Ottieni tutte le carte con HP specifico
const hp90Cards = await tcgdex.hp.get('90');
// Ottieni tutte le carte di un illustratore specifico
const illustratorCards = await tcgdex.illustrator.get('TOKIYA');
// Ottieni tutte le carte con una rarità specifica
const rareCards = await tcgdex.rarity.get('rare');

L’SDK fornisce diverse opzioni di configurazione:

// Crea SDK con una lingua specifica
const tcgdex = new TCGdex('fr'); // Francese
// Cambia la lingua dopo l'inizializzazione
tcgdex.setLang('en'); // Passa all'inglese
// Imposta un endpoint API personalizzato
tcgdex.setEndpoint('https://custom-api.example.com/v2');
// Configura la cache
tcgdex.setCacheTTL(3600); // Imposta la durata della cache a 1 ora

Accedi facilmente alle immagini delle carte:

const card = await tcgdex.card.get('swsh3-136');
// Ottieni l'URL dell'immagine PNG di alta qualità
const highQualityPng = card.getImageURL('high', 'png');
// Ottieni l'URL dell'immagine WEBP di bassa qualità per prestazioni migliori
const lowQualityWebp = card.getImageURL('low', 'webp');