danielwerg / r6api.js

🍫 Node.js wrapper around Rainbow Six Siege APIs
https://npm.im/r6api.js
MIT License
111 stars 19 forks source link

V5 #97

Open danielwerg opened 1 year ago

danielwerg commented 1 year ago
Done - [x] ESM bullshittery - Use ESM? - Support CJS as well? - Using `.js` extension for `.ts` files are dumb (solution: https://github.com/justkey007/tsc-alias ?) - Stick with CJS? - Drop hacky ESM support? - [x] Drop method for `playerstats2/statistics` endpoint and write little guide how to implement custom method for historical stats (https://github.com/danielwerg/r6api.js/issues/78, https://github.com/danielwerg/r6api.js/issues/47) (low priority) - [x] Multiple instances (https://github.com/danielwerg/r6api.js/issues/71) - [x] `prod.datadev.ubisoft.com` methods (https://github.com/danielwerg/r6api.js/issues/42) - aggregation - [x] summary - [x] operators - [x] weapons - [x] maps - [x] Implement `profiles/gamesplayed` endpoint (https://github.com/danielwerg/r6api.js/issues/81https://github.com/danielwerg/r6api.js/issues/81) - [x] Rename "user" to "profile" where needed in methods? (don't) - readme - [x] Better method description - [x] ts-utils added by EndBug (https://github.com/danielwerg/r6api.js/blob/e77978c9244b123fca12e8754783e1c10f9b9b8a/ts-utils.ts) do we _really_ need them? (also future is now: https://github.com/danielwerg/r6api.js/commit/be2a20b84003bcfb75471cbef5d7b20744d801dc#commitcomment-66611286) - [x] Publish new package which r6api.js will rely on - [x] New rank icons - [x] Remake all rank icons from scratch - [x] Copper - [x] Bronze - [x] Silver - [x] Gold - [x] Platinum - [x] Emerald - [x] Diamond - [x] Champions
danielwerg commented 1 year ago

By "Drop hacky ESM support?" I'm referencing https://github.com/danielwerg/r6api.js/pull/70 @BadCoder1337 πŸ‘€

BadCoder1337 commented 1 year ago

By "Drop hacky ESM support?" I'm referencing #70 @BadCoder1337 πŸ‘€

IMHO ESM isn't accepted enough to drop CJS. I am not authoring any npm library so can't give final advice, but think guys from https://github.com/sapphiredev/framework doing well. Their project compiles to CJS and wraps with https://github.com/addaleax/gen-esm-wrapper to support ESM.

BadCoder1337 commented 1 year ago

Rename "user" to "profile" where needed in methods

IMHO There's two ways of naming we could stick to: 1) Keep names close to Ubisoft as possible (e.g. PlatformCrossplay => PlatformFamilies ) 2) Choose different names for consistency and compatibility reasons ? (e.g. unified seasonal info interface. Fetching data before Operation Health - prod.datadev.ubisoft.com, Health to Brutal Swarm - r6karma/players, Solar Raid - r6s/skill/full_profiles) There's no major difference between MMR and (rank base RP + displayed RP). If someone is interested in skill they could be obtained through r6karma/players with new crossplay spaceId.

danielwerg commented 1 year ago

@EndBug I realized I haven't added ts-utils to V5 that you have added while ago in this commit https://github.com/danielwerg/r6api.js/commit/0d599ac4823d449a0e6270da28c43a45bbe8c276. Could you give me quick ted talk why we need them and how you use them?

EndBug commented 1 year ago

@danielwerg If I remember well, I added it because they help when validating user input, when you need to check whether the input is a valid operator, weapon, etc.

danielwerg commented 1 year ago

Hey @BadCoder1337, I published new repo - R6Data, which is going to be a dependency of next version of R6API.js and I used gen-esm-wrapper for ESM support. Could you test it in your ESM environment and let me know if you have any issue with it?