@ascensionlabs/sdejs
v1.0.0
Published
Tools for retrieving data from Eve Online Static Data Export (SDE)
Readme
SDEJS
Tools for retrieving data from Eve Online Static Data Export (SDE).
Installation
npm install @ascensionlabs/sdejs
API
The sdejs api treats the SDE's jsonl files as arrays and takes the form of
sdejs.<sdeFileName>.find(predicateFn = it => it, singleRecord = false): Array<Object>|Object
find works similar to the Array.find; if the predicateFn returns true then that record is returned. By default predicateFn is an identity funciton so you can pass nothing to get all records. The second parameter causes the find to stop at the first record found and return its object directly. Every function in sdejs returns a Promise so ensure you are using await or then/catch when calling them.
Example Usage
import { sdejs } from '@ascensionlabs/sdejs'
const sde = await sdejs()
// get the forge object
const theForgeRegion = await sde.mapRegions.find(region => region.name.en === 'The Forge', true)
// get all systems in the forge region
const systemsInTheForge = await sde.mapSolarSystems.find(sys => sys.regionID === theForgeRegion._key)
console.log({ systemsInTheForge })const rifterType = await sde.types.find(type => type.name.en === 'Rifter')
// grab all dogma attributes for the rifter
const rifterTypeAttributes = await sde.dogmaAttributes.find(sys => sys.typeID === rifterType._key)
// map out only what we need and rename the _key to attributeID
const rifterInfo = rifterTypeAttributes.map(({
_key: attributeID,
name,
description,
defaultValue
}) => ({ attributeID, name, description, defaultValue }))
console.log({ rifterInfo })Update & Download Latest SDE
sdejs also provides functions for keeping the SDE up to date on your machine.
import { checkSDE, updateSDE } from '@ascensionlabs/sdejs'
const isNewVersionAvailable = await checkSDE() // using default path './sde/'
if (isNewVersionAvailable) {
// updateSDE downloads the latest SDE and unzips it to location provided or default './sde/'
const success = await updateSDE()
}updateSDE will overwrite the contents of the current SDE with the new files.
