🚀. Socket Launch Week Day 2:Introducing Manifest Alerts.Learn more
Sign In

@guardianforge/destiny-data-utils

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@guardianforge/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 int

latest
Source
npmnpm
Version
0.1.8
Version published
Maintainers
1
Created
Source

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

Keywords

Bungie

FAQs

Package last updated on 06 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts