1.0.0 • Published 10 months ago

@lgriffin/esi.ts v1.0.0

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
10 months ago

ESI.ts

This repository contains a TypeScript implementation for the EVE Online API (ESI). This is inspired by the JavaScript implementation at https://github.com/ExperiBass/esiJS

The project is a personal goal for me, I'm a lapsed developer (actively an Engineering Manager) going back to upskill in TypeScript after a decade away from development in Node.js and Java. Why TypeScript? Familarity with JavaScript and a hopefully better experience for anyone using my app.

In my absence from coding, I have generated a lot of knowledge on concepts around architecture and design. So the intent of this application is to:

  • Build a clean architecture inspired application -- NOTE This will not be perfect, I'm going to try and adhere to it as best I can
  • Bring in Behaviour Driven Development to describe the intentions of the API for non expert programmers
  • Try and pursue a red-green TDD style approach for the APIs
  • Seperate the API into small, consumable usage
  • Look at design patterns, currently playing around with a Builder Pattern to eventually look at tailored client usage where we can have a slimmer client experience and create customised and narrower API profiles
  • Figure out how github actions work, I know enough of Jenkins to hopefully figure this out
  • Figure out caching and API management
  • Figure out auth flows and longer term token management and see can the API help here.
  • Develop a useful user guide and documentation

This is most likely overkill for most end users, my goal is maintability and extensibility of the API and try and get a best practices project off the ground. The project is in flight, this first formal public commit is more to expose the intention and architecture. The factions API was chosen first just to have a mix of open calls and auth calls. This did not follow any best practices with testing and was an attempt to just get a functional API working. A lot of time was spent battling tooling (cucumber.js does not like TypeScript) and different integrations but this is at a point now where I am happy with the intentions. As I progress through each future API grouping my aim is to follow best practices and create a hopefully useful app for the EVE Online Community.

ISK donations are always welcome to deiseman in game, reach out to chat about any ideas or how the design and API exposure could benefit your app.

API Implementation Status

As progress is made I will try and update this to show what is functional and in place.

Faction Warfare

  • Get Faction Warfare Leaderboards - Characters ✔️
  • Get Faction Warfare Leaderboards - Corporations ✔️
  • Get Faction Warfare Leaderboards - Overall ✔️
  • Get Faction Warfare Stats ✔️
  • Get Faction Warfare Character Stats ✔️
  • Get Faction Warfare Corporation Stats ✔️
  • Get Faction Warfare Systems ✔️
  • Get Faction Warfare Wars ✔️

Alliances

  • Get Alliance by ID ❌
  • Get Alliance Corporations ❌
  • Get Alliances ❌
  • Get Alliance Icons ❌

Bookmarks

  • Get Character Bookmarks ❌
  • Get Character Bookmark Folders ❌
  • Get Corporation Bookmarks ❌
  • Get Corporation Bookmark Folders ❌

Calendar

  • Get Character Calendar ❌
  • Get Calendar Event by ID ❌
  • Get Calendar Event Attendees ❌
  • Respond to Calendar Event ❌

Characters

  • Get Character by ID ❌
  • Get Character Agents Research ❌
  • Get Character Blueprints ❌
  • Get Character Corporation History ❌
  • Get Character Medals ❌
  • Get Character Notifications ❌
  • Get Character Portrait ❌
  • Get Character Roles ❌

Clones

  • Get Clones ❌
  • Get Jump Clones ❌
  • Get Implants ❌

Contacts

  • Get Character Contacts ❌
  • Get Corporation Contacts ❌
  • Get Alliance Contacts ❌
  • Add Character Contacts ❌
  • Edit Character Contacts ❌
  • Delete Character Contacts ❌

Contracts

  • Get Character Contracts ❌
  • Get Corporation Contracts ❌
  • Get Public Contracts ❌
  • Get Contract Bids ❌
  • Get Contract Items ❌

Corporations

  • Get Corporation by ID ❌
  • Get Corporation Assets ❌
  • Get Corporation Blueprints ❌
  • Get Corporation Divisions ❌
  • Get Corporation Facilities ❌
  • Get Corporation Icons ❌
  • Get Corporation Medals ❌
  • Get Corporation Members ❌

Dogma

  • Get Dogma Attributes ❌
  • Get Dogma Effects ❌

Fittings

  • Get Character Fittings ❌
  • Create Character Fitting ❌
  • Delete Character Fitting ❌

Fleets

  • Get Fleet by ID ❌
  • Get Fleet Members ❌
  • Invite Fleet Member ❌
  • Kick Fleet Member ❌
  • Update Fleet Member ❌
  • Get Fleet Wings ❌

Incursions

  • Get Incursions ❌

Industry

  • Get Industry Facilities ❌
  • Get Industry Systems ❌
  • Get Character Industry Jobs ❌
  • Get Corporation Industry Jobs ❌

Insurance

  • Get Insurance Prices ❌

Killmails

  • Get Character Killmails ❌
1.0.0

10 months ago