Pular para o conteúdo

O SDK JavaScript

Versão NPMEstrelas no GithubDownloads NPMCoberturaStatus da Build

Terminal window
npm i @tcgdex/sdk
// Importar o SDK em ESM/TypeScript
import TCGdex from '@tcgdex/sdk'
// OU importar o SDK em CommonJS
const TCGdex = require('@tcgdex/sdk').default
// Instanciar o SDK com seu idioma preferido
const tcgdex = new TCGdex('en');
// Usar em um contexto assíncrono
(async () => {
// Buscar Furret do Set Darkness Ablaze
const card = await tcgdex.card.get('swsh3-136');
console.log(card.name); // "Furret"
})();

O SDK fornece endpoints dedicados para tipos comuns de dados:

// Obter uma carta específica
const card = await tcgdex.card.get('swsh3-136');
// Obter um set específico
const set = await tcgdex.set.get('swsh3');
// Obter uma série específica
const serie = await tcgdex.serie.get('swsh');
// Obter uma lista de todas as cartas
const allCards = await tcgdex.card.list();

Você também pode recuperar cartas, sets ou séries aleatórias:

// Obter uma carta aleatória
const randomCard = await tcgdex.random.card();
// Obter um set aleatório
const randomSet = await tcgdex.random.set();
// Obter uma série aleatória
const randomSerie = await tcgdex.random.serie();

O SDK fornece um poderoso sistema de consultas para filtrar dados:

import TCGdex, { Query } from '@tcgdex/sdk';
const tcgdex = new TCGdex('en');
// Criar uma consulta para encontrar cartas de Pikachu com HP entre 60 e 70
const pikachuCards = await tcgdex.card.list(
Query.create()
.equal('name', 'Pikachu') // Combinar nome exato
.greaterOrEqualThan('hp', 60) // HP >= 60
.lesserThan('hp', 70) // HP < 70
.sort('localId', 'ASC') // Ordenar por ID em ordem crescente
);
// Encontrar cartas contendo "5" em seu ID mas não "tg"
const filteredCards = await tcgdex.card.list(
Query.create()
.contains('localId', '5') // ID contém "5"
.not.contains('localId', 'tg') // ID não contém "tg"
);
// Exemplo de paginação - obter página 3 com 2 itens por página
const paginatedCards = await tcgdex.card.list(
Query.create()
.paginate(3, 2)
);

O SDK facilita a navegação entre os relacionamentos de objetos:

// Obter uma carta e depois recuperar seu set
const card = await tcgdex.card.get('swsh3-136');
const set = await card.getSet();
// Obter um set e depois recuperar sua série
const set = await tcgdex.set.get('swsh3');
const serie = await set.getSerie();
// Obter uma carta da lista de cartas de um set
const set = await tcgdex.set.get('swsh3');
const firstCardResume = set.cards[0];
const fullCard = await firstCardResume.getCard();

Encontre cartas por atributos específicos:

// Obter todas as cartas do tipo fogo
const fireType = await tcgdex.type.get('fire');
// Obter todas as cartas com HP específico
const hp90Cards = await tcgdex.hp.get('90');
// Obter todas as cartas de um ilustrador específico
const illustratorCards = await tcgdex.illustrator.get('TOKIYA');
// Obter todas as cartas com uma raridade específica
const rareCards = await tcgdex.rarity.get('rare');

O SDK fornece várias opções de configuração:

// Criar SDK com um idioma específico
const tcgdex = new TCGdex('fr'); // Francês
// Mudar o idioma após a inicialização
tcgdex.setLang('en'); // Mudar para Inglês
// Definir um endpoint de API personalizado
tcgdex.setEndpoint('https://custom-api.example.com/v2');
// Configurar cache
tcgdex.setCacheTTL(3600); // Definir duração do cache para 1 hora

Acesse facilmente as imagens das cartas:

const card = await tcgdex.card.get('swsh3-136');
// Obter URL de imagem PNG de alta qualidade
const highQualityPng = card.getImageURL('high', 'png');
// Obter URL de imagem WEBP de baixa qualidade para melhor desempenho
const lowQualityWebp = card.getImageURL('low', 'webp');