steam-workshop-ts
TypeScript 1
// Áttekintés
Futásidejű függőség nélküli TypeScript kliens a Steam Workshop Web API-hoz és a SteamCMD-hez. Itemek lekérdezése és keresése, kollekciók feloldása, workshop tartalom letöltése és cache-elése CLI-vel, CS2 és Source szerverekhez.
// Mivel készült
TypeScriptNode.jsBunzero-depSteamCMD
// A probléma
A Steam Workshop itemek kezelése szerverekhez azt jelenti, hogy az alig dokumentált Web API-val kell zsonglőrködni és a steamcmd-t kézzel hajtani, majd találgatni, hova kerültek a fájlok.
// Megközelítés
- Egyetlen függőségmentes csomag, ami a Workshop Web API-t és a SteamCMD automatizálást is lefedi.
- Manifest-alapú cache disk-space ellenőrzéssel, plusz perzisztens depot cache a gyors inkrementális frissítésekhez.
- Docker és temp-dir sandbox módok, így a letöltés macOS-en is működik és nem szennyezi a hostot.
// Mérnöki kihívások
- A steamcmd zajos kimenetének parse-olása, hogy megbízhatóan visszaadja a pontos letöltési utat a lemezen.
- A cache-invalidáció helyes megoldása a Web API frissítési időbélyegének és a lokális manifestnek az összevetésével.
- Steam Guard 2FA, timeoutok és átmeneti API-hibák kezelése egyetlen futásidejű függőség nélkül.