Saltearse al contenido

El SDK de JavaScript

NPM VersionGithub starsNPM DownloadsCoverageBuild Status

Ventana de terminal
npm i @tcgdex/sdk
// Importar el SDK en ESM/TypeScript
import TCGdex from '@tcgdex/sdk'
// O importar el SDK en CommonJS
const TCGdex = require('@tcgdex/sdk').default
// Instanciar el SDK con tu idioma preferido
const tcgdex = new TCGdex('en');
// Usar en un contexto asíncrono
(async () => {
// Obtener Furret del Set Darkness Ablaze
const card = await tcgdex.card.get('swsh3-136');
console.log(card.name); // "Furret"
})();

El SDK proporciona endpoints dedicados para tipos de datos comunes:

// Obtener una carta específica
const card = await tcgdex.card.get('swsh3-136');
// Obtener un set específico
const set = await tcgdex.set.get('swsh3');
// Obtener una serie específica
const serie = await tcgdex.serie.get('swsh');
// Obtener una lista de todas las cartas
const allCards = await tcgdex.card.list();

También puedes recuperar cartas, sets o series aleatorias:

// Obtener una carta aleatoria
const randomCard = await tcgdex.random.card();
// Obtener un set aleatorio
const randomSet = await tcgdex.random.set();
// Obtener una serie aleatoria
const randomSerie = await tcgdex.random.serie();

El SDK proporciona un potente sistema de consultas para filtrar datos:

import TCGdex, { Query } from '@tcgdex/sdk';
const tcgdex = new TCGdex('en');
// Crear una consulta para encontrar cartas de Pikachu con HP entre 60 y 70
const pikachuCards = await tcgdex.card.list(
Query.create()
.equal('name', 'Pikachu') // Coincidir con el nombre exacto
.greaterOrEqualThan('hp', 60) // HP >= 60
.lesserThan('hp', 70) // HP < 70
.sort('localId', 'ASC') // Ordenar por ID ascendente
);
// Encontrar cartas que contengan "5" en su ID pero no "tg"
const filteredCards = await tcgdex.card.list(
Query.create()
.contains('localId', '5') // ID contiene "5"
.not.contains('localId', 'tg') // ID no contiene "tg"
);
// Ejemplo de paginación - obtener página 3 con 2 elementos por página
const paginatedCards = await tcgdex.card.list(
Query.create()
.paginate(3, 2)
);

El SDK facilita la navegación entre relaciones de objetos:

// Obtener una carta y luego recuperar su set
const card = await tcgdex.card.get('swsh3-136');
const set = await card.getSet();
// Obtener un set y luego recuperar su serie
const set = await tcgdex.set.get('swsh3');
const serie = await set.getSerie();
// Obtener una carta de la lista de cartas de un set
const set = await tcgdex.set.get('swsh3');
const firstCardResume = set.cards[0];
const fullCard = await firstCardResume.getCard();

Encuentra cartas por atributos específicos:

// Obtener todas las cartas de tipo fuego
const fireType = await tcgdex.type.get('fire');
// Obtener todas las cartas con un HP específico
const hp90Cards = await tcgdex.hp.get('90');
// Obtener todas las cartas de un ilustrador específico
const illustratorCards = await tcgdex.illustrator.get('TOKIYA');
// Obtener todas las cartas con una rareza específica
const rareCards = await tcgdex.rarity.get('rare');

El SDK proporciona varias opciones de configuración:

// Crear el SDK con un idioma específico
const tcgdex = new TCGdex('fr'); // Francés
// Cambiar el idioma después de la inicialización
tcgdex.setLang('en'); // Cambiar a inglés
// Establecer un punto de acceso API personalizado
tcgdex.setEndpoint('https://custom-api.example.com/v2');
// Configurar el almacenamiento en caché
tcgdex.setCacheTTL(3600); // Establecer la duración de la caché a 1 hora

Accede fácilmente a las imágenes de las cartas:

const card = await tcgdex.card.get('swsh3-136');
// Obtener URL de imagen PNG de alta calidad
const highQualityPng = card.getImageURL('high', 'png');
// Obtener URL de imagen WEBP de baja calidad para mejor rendimiento
const lowQualityWebp = card.getImageURL('low', 'webp');