0.1.8 • Published 2 years ago

@guardianforge/destiny-data-utils v0.1.8

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Destiny Data Utils

Destiny Data Utils is a library designed to make building third party applications around Destiny 2 easier. This project is an iteration on the front end code built for GuardianForge to download manifest data, assist with caching, and massage the data into a more developer-friendly format. More info coming soon.

⚠️ This project is in VERY early development and is likely to change frequently over the coming weeks.

Project Outline

Below are the various components included with this library:

UtilityDescription
BungieApiServiceA wrapper around the Bungie.net API
ManifestServiceContains logic on how to download and optionally cache the Destiny 2 Manifest
IManifestCacheAn interface used by ManifestSevice to cache the manifest
IndexedDbServiceAn implementation of IManifestCache that will cache the manifest to the browser's IndexedDb datastore

Examples

Downloading & Caching the Manifest

This example is taken directly from the main GuardianForge.net repo.

// Define the database name & version for the IndexedDbService
const DB_NAME = "destinybuilds.gg"
const DB_VERSION = 5
let dbService = new IndexedDbService(DB_NAME, DB_VERSION)

// Create an instance of the BungieApiService, which the ManifestService uses to connect to Bungie's API.
let bungieApiService = new BungieApiService(config.bungieApiKey)

// Create the ManifestService, passing in both objects from above.
let manifestService = new ManifestService(bungieApiService, dbService)

// Calling 'init' on the ManifestService executes the logic to download the current manifest data and cache it. If the implementation of IManifestCache (IndexedDbService in this example) contains a copy of the manifest data that matches the version pulled from the metadata, the cached version will be loaded instead.
await manifestService.init()

If you only need a subset of the manifest, you can pass in a list of components like so. This saves time on minimizing the number of network calls to download the components.

// If you only need a subset of the manifest, you can optionally pass in an array of component names.
const components = [
  "DestinyInventoryItemDefinition",
  "DestinySocketTypeDefinition",
  "DestinySocketCategoryDefinition",
  "DestinyDamageTypeDefinition",
  "DestinyStatDefinition",
  "DestinyInventoryBucketDefinition",
  "DestinyTalentGridDefinition",
  "DestinyActivityDefinition",
  "DestinyActivityTypeDefinition",
  "DestinyActivityModeDefinition",
  "DestinyActivityGraphDefinition",
  "DestinyEnergyTypeDefinition"
]
let manifestService = new ManifestService(bungieApiService, dbService, components)

To Do

  • Unit testing
0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago