@blizzard-api/wow
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

@blizzard-api/wow

This package aims to make it easier for you to integrate with the Blizzard Battle.net API, specifically for World of Warcraft.

Installation

npm i @blizzard-api/core @blizzard-api/wow

Usage

You can get paths, namespaces, parameters and more for a specific endpoint by calling it from the wow export.

import { wow } from "@blizzard-api/wow"

const achievement = wow.achievement(123);
        ^ { path: string, namespace: string }

If you need the response types, they are also exported with "Response" appended, so to get the response type from the above code, you can import it like this:

import type { AchievementResponse } from '@blizzard-api/wow';

If you simply want to use the existing object, you can use the helper from @blizzard-api/core like so:

import { wow } from "@blizzard-api/wow"

const achievement = wow.achievement(123);
        ^ { path: string, namespace: string }
type AchievementResponse = ExtractResourceType<typeof achievement>;

If you don't want to use the exported wow object, you can also access the functions directly:

import { achievement } from "@blizzard-api/wow"

const achievement = achievement(123);
        ^ { path: string, namespace: string }
type AchievementResponse = ExtractResourceType<typeof achievement>;

Differences to @blizzard-api/classic-wow

This package is specifically for World of Warcraft (retail or modern), and as such, the endpoints and responses are different from the classic variants. If you are looking for the classic version of World of Warcraft, you should use @blizzard-api/classic-wow instead.

Types

The types are manually created from using the Blizzard API documentation, and are as accurate as possible with smoke testing each endpoint. However, no-one is perfect so there is likely be some discrepancies. If you encounter any issues with the types from this package, please open an issue or a pull request.

Client

While this package is made to function on it's own, it performs even better when combined with @blizzard-api/client where you can easily request data combining the two libraries.

import { createBlizzardApiClient } from '@blizzard-api/client';
import { wow } from '@blizzard-api/wow';

const client = await createBlizzardApiClient({
  key: 'environment.blizzardClientId',
  secret: 'environment.blizzardClientSecret',
  origin: 'eu',
});

//Response will automatically be typed with the appropriate values
const response = await client.sendRequest(wow.commodities());

console.log(response.data);
                      ^ typeof AuctionHouseCommoditiesResponse

Package Sidebar

Install

npm i @blizzard-api/wow

Weekly Downloads

133

Version

1.1.1

License

MIT

Unpacked Size

467 kB

Total Files

8

Last publish

Collaborators

  • laustsf