Compare commits

...

11 Commits

Author SHA1 Message Date
f62615814d v2.0.2 2021-05-28 11:36:55 +02:00
eec10c548a Fixed name
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-28 11:36:20 +02:00
720bc6b43a v2.0.1 2021-05-28 11:28:24 +02:00
3557334076 removed hardcoded values as they depends on language
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-28 11:28:00 +02:00
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
9 changed files with 31 additions and 178 deletions

View File

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

40
interfaces.d.ts vendored
View File

@ -18,11 +18,6 @@ interface variants {
firstEdition?: boolean
}
export type Types = 'Colorless' | 'Darkness' | 'Dragon' |
'Fairy' | 'Fightning' | 'Fire' |
'Grass' | 'Lightning' | 'Metal' |
'Psychic' | 'Water'
export type SetList = Array<SetResume>
export type SerieList = Array<SerieResume>
export type CardList = Array<CardResume>
@ -114,7 +109,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* - Ultra Rare
* - Secret Rare
*/
rarity: 'None' | 'Common'| 'Uncommon' | 'Rare' | 'Ultra Rare' | 'Secret Rare'
rarity: string
/**
* Card Category
@ -123,7 +118,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* - Trainer
* - Energy
*/
category: 'Pokemon' | 'Trainer' | 'Energy'
category: string
/**
* Card Variants (Override Set Variants)
@ -152,7 +147,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
/**
* Pokemon Types
*/
types?: Array<Types> // ex for multiple https://www.tcgdex.net/database/ex/ex13/17
types?: Array<string> // ex for multiple https://www.tcgdex.net/database/ex/ex13/17
/**
* Pokemon Sub Evolution
@ -188,7 +183,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* - Stage2 https://www.tcgdex.net/database/xy/xy9/3
* - VMAX https://www.tcgdex.net/database/swsh/swsh1/50
*/
stage?: 'Basic' | 'BREAK' | 'LEVEL-UP' | 'MEGA' | 'RESTORED' | 'Stage1' | 'Stage2' | 'VMAX'
stage?: string
/**
* Card Suffix
@ -201,7 +196,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* - SP https://www.tcgdex.net/database/pl/pl1/7
* - TAG TEAM-GX https://www.tcgdex.net/database/sm/sm12/226
*/
suffix?: 'EX' | 'GX' | 'V' | 'Legend' | 'Prime' | 'SP' | 'TAG TEAM-GX'
suffix?: string
/**
* Pokemon Held Item
@ -219,7 +214,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* multi abilities ex https://www.tcgdex.net/database/ex/ex15/10
*/
abilities?: Array<{
type: 'Pokemon Power' | 'Poke-BODY' | 'Poke-POWER' | 'Ability' | 'Ancient Trait'
type: string
name: string
effect: string
}>
@ -228,7 +223,7 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* Pokemon Attacks
*/
attacks?: Array<{
cost?: Array<Types>
cost?: Array<string>
name: string
effect?: string
damage?: string | number
@ -238,12 +233,12 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
* Pokemon Weaknesses
*/
weaknesses?: Array<{
type: Types
type: string
value?: string
}>
resistances?: Array<{
type: Types
type: string
value?: string
}>
@ -253,18 +248,15 @@ export interface Card<SetType extends SetResume = SetResume> extends CardResume
effect?: string
// Trainer Only
trainerType?: 'Supporter' | // https://www.tcgdex.net/database/ex/ex7/83
'Item' | // https://www.tcgdex.net/database/ex/ex7/89
'Stadium' | // https://www.tcgdex.net/database/ex/ex7/87
'Tool' | // https://www.tcgdex.net/database/neo/neo1/93
'Ace Spec' | // https://www.tcgdex.net/database/bw/bw7/139
'Technical Machine' | // https://www.tcgdex.net/database/ecard/ecard1/144
'Goldenred Game Corner' | // https://www.tcgdex.net/database/neo/neo1/83
'Rocket\'s Secret Machine' // https://www.tcgdex.net/database/ex/ex7/84
trainerType?: string
// Energy Only
energyType?: 'Normal' | // https://www.tcgdex.net/database/ecard/ecard1/160
'Special' // https://www.tcgdex.net/database/ecard/ecard1/158
energyType?: string
/**
* Define the rotation mark on cards >= Sword & Shield
*/
regulationMark?: string
}
export type StringEndpointList = Array<string>

View File

@ -1,6 +1,6 @@
{
"name": "@tcgdex/sdk",
"version": "2.0.0-beta.4",
"version": "2.0.2",
"main": "./tcgdex.js",
"types": "./main.d.ts",
"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> {
const path = `/${set ? `sets/${set}` : 'cards'}/${id}/`
return this.rwgr<Card>(path).get()
const path = set ? ['sets', set] : ['cards']
return this.rwgr<Card>(...path, id).get()
}
public async fetchCards(set?: string): Promise<Array<CardResume> | undefined> {
@ -27,7 +27,7 @@ export default class TCGdex {
}
return setSingle.cards
}
const req = this.rwgr<Array<CardResume>>(`/cards/`)
const req = this.rwgr<Array<CardResume>>('cards')
const resp = await req.get()
if (!resp) {
return undefined
@ -36,7 +36,7 @@ export default class TCGdex {
}
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()
if (!resp) {
return undefined
@ -45,12 +45,12 @@ export default class TCGdex {
}
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()
}
public async fetchSeries(): Promise<SerieList | undefined> {
const req = this.rwgr<SerieList>(`/series/`)
const req = this.rwgr<SerieList>('series')
return req.get()
}
@ -62,7 +62,7 @@ export default class TCGdex {
}
return expansionSingle.sets
}
const req = this.rwgr<SetList>(`/sets/`)
const req = this.rwgr<SetList>('sets')
const list = await req.get()
if (!list) {
return undefined
@ -70,7 +70,10 @@ export default class TCGdex {
return list
}
private rwgr<T = any>(url: string) {
return RequestWrapper.getRequest<T>(`${this.getBaseUrl()}${url}`)
private rwgr<T = any>(...url: Array<string | number>) {
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