Add yasuo.js (TypeScript & JavaScript) — modern, zero-dependency Riot Games API client - #224
Merged
Merged
Conversation
yasuo.js is a modern, fully-typed, zero-dependency Riot Games API client for TypeScript (LoL, TFT and the Riot Account API) — the evolution of twisted. Includes npm, GitHub, docs and live-demo links. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
yasuo.js ships a compiled JS + .d.ts build, so it's usable from plain JavaScript too — dual-listed like twisted (language: JavaScript). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
justadev-afk
marked this pull request as ready for review
July 7, 2026 14:24
stelar7
approved these changes
Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add yasuo.js — a modern, zero-dependency Riot Games API client for TypeScript
This PR adds the library to both the TypeScript and JavaScript lists —
libraries/typescript/yasuojs.jsonandlibraries/javascript/yasuojs.json. yasuo.js is written in TypeScript but ships a compiled JS +.d.tsbuild, so it's equally usable from plain JavaScript — same dual-listing pattern astwisted. No existing files are touched.yasuo.js is the spiritual successor to twisted — same one-client, typed-response ergonomics, rebuilt around a query-builder API with zero runtime dependencies.
Links
Why it belongs here
node_modules(verify:npm view yasuo.js dependencies→ empty). Just fully-typed TypeScript.ApiErrorsubclasses you narrow withinstanceof.account.summoner(region).matchIds().execute()runs only the final request; relations auto-route (e.g.Region.KR→RegionGroup.ASIA) so you never re-specify routing.retry-afterbackoff is always on; opt-in proactive pacing reads Riot'sx-app/x-methodrate-limit headers and stays under the advertised limits, per host and per method.for awaitover a player's entire match history, paced by the limiter.Live proof it works
www.yasuo.gg is a complete, open-source League of Legends summoner-profile site + public JSON API, built entirely on this library and running on Cloudflare Workers (source). It even ships an interactive playground that shows the exact yasuo.js code behind each lookup.
Entry checklist
yasuojs.json, added under bothlibraries/typescript/andlibraries/javascript/schema.json(additionalProperties: falsesatisfied)v4tag (alsov5) so it surfaces in the docs +#lol-devrate-limitingtag — the library natively handles rate limitingtfttag — full TFT API support