Compare commits

..

12 Commits

Author SHA1 Message Date
a886302e05 v1.2.0-beta.1 2020-03-11 23:08:33 +01:00
75bc7249f1 Updated DB
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 23:05:27 +01:00
00316364fa fix error
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 21:59:31 +01:00
3cdc149845 Add new functions
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 21:57:40 +01:00
d0088d62cb Fix translation not getting the correct file
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 11:45:20 +01:00
405cd8542a v1.0.8 2020-03-11 11:14:52 +01:00
53afc67b72 Updated Interfaces
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 11:02:24 +01:00
593b17b55f v1.0.7 2020-03-11 11:01:12 +01:00
f1f4ef3d94 v1.0.6 2020-03-11 10:32:07 +01:00
5315c9511d Made Better REAADME
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 10:13:00 +01:00
561ec85545 Modified Function possibilities
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 10:12:50 +01:00
f7044c7b10 Made lang settings public, Edited function params
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-03-11 10:12:38 +01:00
12 changed files with 202 additions and 27 deletions

View File

@ -1,8 +1,44 @@
current endpoints
# TCGdex Javacript SDK
```js
console.log(await tcgdex.getCard("1", "hgss1"))
console.log(await tcgdex.getSet("hgss1"))
console.log(await tcgdex.getExpansion("hgss"))
## Install
### Yarn/npm
```bash
yarn add @tcgdex/sdk
```
or with npm
```bash
npm install @tcgdex/sdk
```
## Usage
_Note: a complete documentation is in progress_
```javascript
import TCGdex from '@tcgdex/sdk'
import TranslationUtil from '@tcgdex/sdk/TranslationUtil'
import Tag from '@tcgdex/sdk/interfaces/Tag'
// init the class
const tcgdex = new TCGdex("en") // Lang code (Optionnal) (See TranslationUtil.ts line 3)
// change lang
tcgdex.lang = "fr"
// get Card object wih global id
await tcgdex.getCard("base1-1")
// get Card object with local id and set
await tcgdex.getCard(1, "base1")
// get Set informations
await tcgdex.getSet("base1")
// get Expansion
await tcgdex.getExpansion("base")
// Translate information from code to the lang
TranslationUtil.translate("tag", Tag.STAGE2, "en")
```

View File

@ -1,10 +1,20 @@
import LangList, { Langs } from "./interfaces/LangList";
import AbilityType from "./interfaces/AbilityType";
import Category from "./interfaces/Category";
import Rarity from "./interfaces/Rarity";
import Tag from "./interfaces/Tag";
import Type from "./interfaces/Type";
type possibilities = "abilityType" | "category" | "rarity" | "tag" | "type"
export default class TranslationUtil {
public static translate(master: "abilityType",a: AbilityType, lang: Langs): string|undefined;
public static translate(master: "category",a: Category, lang: Langs): string|undefined;
public static translate(master: "rarity",a: Rarity, lang: Langs): string|undefined;
public static translate(master: "tag",a: Tag, lang: Langs): string|undefined;
public static translate(master: "type",a: Type, lang: Langs): string|undefined;
public static translate(master: possibilities,a: number, lang: Langs): string|undefined {
const trans = require(`./${master}`).default as translations
const trans = require(`./translations/${master}`).default as translations
const tmp = trans[lang]
if (!tmp) return
return tmp[a]

View File

@ -3,6 +3,12 @@ export interface AbilityTypeSimple {
name: string
}
export type AbilityTypeSingle = {
id: AbilityType
name: string
cards: string
}
enum AbilityType {
POKEBODY,
POKEPOWER,

View File

@ -11,6 +11,7 @@ import Set from "./Set";
export interface CardSimple {
id: string
localId: string|number
name: string
image: string
}
@ -33,10 +34,34 @@ export interface CardSingle {
code: string
}
cardTypes?: {
normal: boolean
reverse: boolean
holo: boolean
firstEd: boolean
/**
* normal card without anything special
*
*
* @type {boolean} consider `undefined` to true
*/
normal?: boolean
/**
* Card which has a holographic background
* but not the picture
*
* @type {boolean} `undefined` === `true`
*/
reverse?: boolean
/**
* Card which has a hologaphic picture
*
* @type {boolean} `undefined` === `false`
*/
holo?: boolean
/**
* Card which can have a `1st ed` icon
*
* only the base expansion should received it
*
* @type {boolean} `undefined` === `false`
*/
firstEd?: boolean
}
// Pokémon only

View File

@ -1,4 +1,5 @@
import { CardSimple } from "./Card";
import { List } from "./General";
export type IllustratorSingle = {
id: number,
@ -11,10 +12,7 @@ export interface IllustratorSimple {
name: string
}
export interface IllustratorsList {
count: number
list: Array<IllustratorSimple>
}
export type IllustratorsList = List<IllustratorSimple>
interface Illustrator {
id: number

View File

@ -1,3 +1,6 @@
import { List } from "./General"
import { CardSimple } from "./Card"
export enum Rarity {
Common,
Uncommon,
@ -30,3 +33,11 @@ export interface RaritySimple {
id: Rarity
name: string
}
export type RaritySingle = {
id: Rarity
name: string
cards: Array<CardSimple>
}
export type RarityList = List<RaritySimple>

View File

@ -1,4 +1,5 @@
import { CardSimple } from "./Card";
import { List } from "./General";
export type RetreatSimple = number
@ -7,7 +8,4 @@ export interface RetreatSingle {
cards: Array<CardSimple>
}
export interface RetreatList {
count: number,
list: Array<RetreatSimple>
}
export type RetreatList = List<RetreatSimple>

View File

@ -36,6 +36,8 @@ export type SetSingle = {
export type SetSimple = {
code: string
name: string
logo?: string
symbol?: string
total: number
}

View File

@ -1,3 +1,6 @@
import { List } from "./General"
import { CardSimple } from "./Card"
enum Tag {
BASIC,
BASICENERGY,
@ -29,3 +32,11 @@ export interface TagSimple {
id: Tag
name: string
}
export type TagSingle = {
id: Tag
name: string
cards: Array<CardSimple>
}
export type TagList = List<TagSimple>

View File

@ -1,3 +1,6 @@
import { List } from "./General"
import { CardSimple } from "./Card"
enum Type {
COLORLESS,
DARKNESS,
@ -17,4 +20,12 @@ export interface TypeSimple {
name: string
}
export type TypeSingle = {
id: Type
name: string
cards: Array<CardSimple>
}
export type TypeList = List<TypeSimple>
export default Type

View File

@ -1,6 +1,6 @@
{
"name": "@tcgdex/sdk",
"version": "1.0.5",
"version": "1.2.0-beta.1",
"main": "./tcgdex.js",
"types": "./types/tcgdex.d.ts",
"repository": "https://git.delta-wings.net/tcgdex/javascript-sdk.git",

View File

@ -1,11 +1,11 @@
import fetch from 'isomorphic-unfetch'
import { Langs } from './interfaces/Langs'
import { SetSingle, SetRequest } from './interfaces/Set'
import { SetSingle, SetRequest, SetSimple } from './interfaces/Set'
import { CardSingle } from './interfaces/Card'
import { ExpansionSingle } from './interfaces/Expansion'
import { ExpansionSingle, ExpansionList } from './interfaces/Expansion'
export default class TCGDex {
private lang: Langs = "en"
export default class TCGdex {
public lang: Langs = "en"
public constructor(lang?: Langs) {
if (lang) this.lang = lang
@ -19,10 +19,12 @@ export default class TCGDex {
return this.getBaseUrl()
}
public async getCard(id: string, set?: string): Promise<CardSingle> {
public async getCard(id: string|number, set: string): Promise<CardSingle>;
public async getCard(id: string): Promise<CardSingle>;
public async getCard(id: string|number, set?: string): Promise<CardSingle> {
try {
const txt = set ? `sets/${set}` : "cards"
const resp = await fetch(`${this.gbu()}/${txt}/${id}`)
const resp = await fetch(`${this.gbu()}/${txt}/${id}/`)
if (resp.status !== 200) throw new Error("Card not found")
try {
return await resp.json()
@ -34,9 +36,34 @@ export default class TCGDex {
}
}
public async getCards(set?: string) {
if (set) {
try {
const setSingle = await this.getSet(set)
return setSingle.list
} catch (e) {
throw e
}
}
try {
console.warn("note: while it's possible to fetch every cards at once it's not recommended as it take much more time than any other requests")
const resp = await fetch(`${this.gbu()}/cards/`)
if (resp.status !== 200) {
throw new Error("Could not fetch cards")
}
try {
return resp.json()
} catch (e) {
throw e
}
} catch (e) {
throw e
}
}
public async getSet(set: string): Promise<SetSingle> {
try {
const resp = await fetch(`${this.gbu()}/sets/${set}`)
const resp = await fetch(`${this.gbu()}/sets/${set}/`)
console.log(resp.status)
if (resp.status !== 200) throw new Error("Set not found")
try {
@ -52,7 +79,7 @@ export default class TCGDex {
public async getExpansion(expansion: string): Promise<ExpansionSingle> {
try {
const resp = await fetch(`${this.gbu()}/expansions/${expansion}`)
const resp = await fetch(`${this.gbu()}/expansions/${expansion}/`)
if (resp.status !== 200) throw new Error("Expansion not found")
try {
return await resp.json()
@ -63,4 +90,44 @@ export default class TCGDex {
throw e
}
}
public async getExpansions(): Promise<ExpansionList> {
try {
const resp = await fetch(`${this.gbu()}/expansions/`)
if (resp.status !== 200) throw new Error("Could not fetch expansions")
try {
return await resp.json()
} catch (e) {
throw e
}
} catch (e) {
throw e
}
}
public async getSets(expansion?: string): Promise<Array<SetSimple>> {
if (expansion) {
try {
const expansionSingle = await this.getExpansion(expansion)
return expansionSingle.sets
} catch (e) {
throw e
}
} else {
try {
const resp = await fetch(`${this.gbu()}/sets/`)
if (resp.status !== 200) {
throw new Error("Could not fetch sets")
}
try {
return resp.json()
} catch (e) {
throw e
}
} catch (e) {
throw e
}
}
}
}