All files / src/apis/v1 index.ts

100% Statements 20/20
100% Branches 3/3
100% Functions 2/2
100% Lines 20/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57                                          106x     61x   61x 56x     5x     106x   106x 106x 106x 106x 106x 106x 106x 106x 106x 106x 106x 106x 106x 106x                
import { GuildWars2 } from '@/index';
 
import * as wvw from './wvw';
import { build } from './build';
import { colors } from './colors';
import { continents } from './continents';
import { eventDetails } from './eventDetails';
import { files } from './files';
import { guildDetails } from './guildDetails';
import { itemDetails } from './itemDetails';
import { items } from './items';
import { mapFloor } from './mapFloor';
import { mapNames } from './mapNames';
import { maps } from './maps';
import { skinDetails } from './skinDetails';
import { skins } from './skins';
import { worldNames } from './worldNames';
import { bind } from '@/utils';
import { rfetch, RibbonFetchBasicOptions } from '@ribbon-studios/js-utils';
 
export class V1 implements V1.API {
  constructor(protected config: GuildWars2.Config.V1) {}
 
  async fetch<T>(endpoint: string, options: RibbonFetchBasicOptions = {}): Promise<T> {
    const url = new URL(endpoint, 'https://api.guildwars2.com');
 
    if (Object.keys(options).length > 0) {
      return rfetch.get<T>(url.toString(), options);
    }
 
    return rfetch.get<T>(url.toString());
  }
 
  wvw = bind(wvw, this as V1.API);
 
  build = build;
  colors = colors;
  continents = continents;
  eventDetails = eventDetails;
  files = files;
  guildDetails = guildDetails;
  itemDetails = itemDetails;
  items = items;
  mapFloor = mapFloor;
  mapNames = mapNames;
  maps = maps;
  skinDetails = skinDetails;
  skins = skins;
  worldNames = worldNames;
}
 
export namespace V1 {
  export interface API {
    fetch<T>(endpoint: string, options?: RibbonFetchBasicOptions): Promise<T>;
  }
}