Compare commits

...

9 Commits

Author SHA1 Message Date
a6e2ee60cc v2.0.0 2021-05-28 11:26:39 +02:00
22589b0be5 Updated interface to support new rotationMark field
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-28 11:25:55 +02:00
81d4447d27 Removed translation files
They were moved to the compiler

Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-28 11:25:31 +02:00
d7ba03749d v2.0.0-beta.6 2021-05-07 10:17:26 +02:00
6c5fc609ae Added URL URLs Normalization
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-07 10:16:42 +02:00
4597476e6b v2.0.0-beta.5 2021-05-03 21:57:12 +02:00
2ac98526a1 Fixed Items with accents not being correctly fetched
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-03 21:56:42 +02:00
040cb4508a v2.0.0-beta.4 2021-05-02 15:49:34 +02:00
edbcf7f4da Add new cardCount field to set
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-02 15:48:26 +02:00
9 changed files with 55 additions and 156 deletions

View File

@ -4,3 +4,5 @@
tsconfig.json tsconfig.json
*.ts *.ts
yarn.lock yarn.lock
test.js
test.d.ts

38
interfaces.d.ts vendored
View File

@ -33,7 +33,13 @@ interface SetResume {
logo?: string logo?: string
symbol?: string symbol?: string
cardCount: { cardCount: {
/**
* total of number of cards
*/
total: number total: number
/**
* number of cards officialy (on the bottom of each cards)
*/
official: number official: number
} }
} }
@ -50,6 +56,33 @@ export interface Set extends SetResume {
expanded: boolean expanded: boolean
} }
cardCount: {
/**
* total of number of cards
*/
total: number
/**
* number of cards officialy (on the bottom of each cards)
*/
official: number
/**
* number of cards having a normal version
*/
normal: number
/**
* number of cards having an reverse version
*/
reverse: number
/**
* number of cards having an holo version
*/
holo: number
/**
* Number of possible cards
*/
firstEd?: number
}
cards: CardList cards: CardList
} }
@ -232,6 +265,11 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
// Energy Only // Energy Only
energyType?: 'Normal' | // https://www.tcgdex.net/database/ecard/ecard1/160 energyType?: 'Normal' | // https://www.tcgdex.net/database/ecard/ecard1/160
'Special' // https://www.tcgdex.net/database/ecard/ecard1/158 'Special' // https://www.tcgdex.net/database/ecard/ecard1/158
/**
* Define the rotation mark on cards >= Sword & Shield
*/
rotationMark?: string
} }
export type StringEndpointList = Array<string> export type StringEndpointList = Array<string>

View File

@ -1,6 +1,6 @@
{ {
"name": "@tcgdex/sdk", "name": "@tcgdex/sdk",
"version": "2.0.0-beta.3", "version": "2.0.0",
"main": "./tcgdex.js", "main": "./tcgdex.js",
"types": "./main.d.ts", "types": "./main.d.ts",
"repository": "https://github.com/tcgdex/javascript-sdk.git", "repository": "https://github.com/tcgdex/javascript-sdk.git",

View File

@ -15,8 +15,8 @@ export default class TCGdex {
} }
public async fetchCard(id: string | number, set?: string): Promise<Card | undefined> { public async fetchCard(id: string | number, set?: string): Promise<Card | undefined> {
const path = `/${set ? `sets/${set}` : 'cards'}/${id}/` const path = set ? ['sets', set] : ['cards']
return this.rwgr<Card>(path).get() return this.rwgr<Card>(...path, id).get()
} }
public async fetchCards(set?: string): Promise<Array<CardResume> | undefined> { public async fetchCards(set?: string): Promise<Array<CardResume> | undefined> {
@ -27,7 +27,7 @@ export default class TCGdex {
} }
return setSingle.cards return setSingle.cards
} }
const req = this.rwgr<Array<CardResume>>(`/cards/`) const req = this.rwgr<Array<CardResume>>('cards')
const resp = await req.get() const resp = await req.get()
if (!resp) { if (!resp) {
return undefined return undefined
@ -36,7 +36,7 @@ export default class TCGdex {
} }
public async fetchSet(set: string): Promise<Set | undefined> { public async fetchSet(set: string): Promise<Set | undefined> {
const req = this.rwgr<Set>(`/sets/${set}/`) const req = this.rwgr<Set>('sets', set)
const resp = await req.get() const resp = await req.get()
if (!resp) { if (!resp) {
return undefined return undefined
@ -45,12 +45,12 @@ export default class TCGdex {
} }
public async fetchSerie(expansion: string): Promise<Serie | undefined> { public async fetchSerie(expansion: string): Promise<Serie | undefined> {
const req = this.rwgr<Serie>(`/series/${expansion}/`) const req = this.rwgr<Serie>('series', expansion)
return req.get() return req.get()
} }
public async fetchSeries(): Promise<SerieList | undefined> { public async fetchSeries(): Promise<SerieList | undefined> {
const req = this.rwgr<SerieList>(`/series/`) const req = this.rwgr<SerieList>('series')
return req.get() return req.get()
} }
@ -62,7 +62,7 @@ export default class TCGdex {
} }
return expansionSingle.sets return expansionSingle.sets
} }
const req = this.rwgr<SetList>(`/sets/`) const req = this.rwgr<SetList>('sets')
const list = await req.get() const list = await req.get()
if (!list) { if (!list) {
return undefined return undefined
@ -70,7 +70,10 @@ export default class TCGdex {
return list return list
} }
private rwgr<T = any>(url: string) { private rwgr<T = any>(...url: Array<string | number>) {
return RequestWrapper.getRequest<T>(`${this.getBaseUrl()}${url}`) return RequestWrapper.getRequest<T>(`${this.getBaseUrl()}/${url.map((v) => encodeURI(
// Normalize URL
v.toString().replace('?', '%3F').normalize('NFC').replace(/["'\u0300-\u036f]/g, "")
)).join('/')}`)
} }
} }

View File

@ -1,17 +0,0 @@
import { translations } from "../TranslationUtil"
const translations: translations = {
en: [
"Poké-Body",
"Poké-Power",
"Ability",
"Ancient Trait"
],
fr: [
"Poké-Body",
"Poké-Power",
"Talent",
"Trait Ancien"
]
}
export default translations

View File

@ -1,15 +0,0 @@
import { translations } from "../TranslationUtil"
const translations: translations = {
en: [
"Pokémon",
"Trainer",
"Energy"
],
fr: [
"Pokémon",
"Dresseur",
"Énergie"
]
}
export default translations

View File

@ -1,21 +0,0 @@
import { translations } from "../TranslationUtil"
const translations: translations = {
en: [
"No rarity",
"Common",
"unCommon",
"Rare",
"Rare Ultra",
"Ultra Rare",
],
fr: [
"Sans rareté",
"Commun",
"Non Commun",
"Rare",
"Rare Ultra",
"Ultra Rare",
]
}
export default translations

View File

@ -1,59 +0,0 @@
import { translations } from "../TranslationUtil"
const translations: translations = {
en: [
"Basic Pokémon",
"Basic Energy",
"BREAK",
"EX",
"GX",
"Item",
"LEGEND",
"Level-Up",
"MEGA",
"Restored",
"Rocket's Secret Machine",
"SP",
"Special",
"Stadium",
"Stage 1",
"Stage 2",
"Supporter",
"Tag Team",
"Technical Machine",
"Tool",
"Pokémon V",
"Pokémon VMAX",
"Prime",
"ACE",
"Rainbow",
],
fr: [
"Pokémon de base",
"Energie de base",
"TURBO",
"EX",
"GX",
"Objet",
"LÉGENDE",
"Niveau Sup",
"Méga",
"Restauré",
"Machine secrète dees Rocket",
"SP",
"Spéciale",
"Stadium",
"Niveau 1",
"Niveau 2",
"Supporter",
"ESCOUADE",
"Machine Technique",
"Outil",
"Pokémon V",
"Pokémon VMAX",
"Prime",
"ACE",
"Arc en ciel",
]
}
export default translations

View File

@ -1,32 +0,0 @@
import { translations } from "../TranslationUtil";
const trans: translations = {
en: [
"Colorless",
"Darkness",
"Dragon",
"Fairy",
"Fighting",
"Fire",
"Grass",
"Lightning",
"Metal",
"Psychic",
"Water"
],
fr: [
"Incolore",
"Obscurité",
"Dragon",
"Fée",
"Combat",
"Feu",
"Plante",
"Électrique",
"Métal",
"Psy",
"Eau"
]
}
export default trans