Replace script-order globals shared between board.js, game.js and drag.js
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Refactoring
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- eslint, javascript, node.js
- Bereich
- developer-experience, frontend
Rechercherichtung
Read docs/ARCHITECTURE.md and .github/CONTRIBUTING.md, then trace the shared state and window accessors in js/board.js, js/game.js, and js/drag.js alongside the globals in eslint.config.js. Start by checking the test bootstrap work in related issue #40 and the existing tests in tests/. Run npm test and npm run lint; done means board rendering no longer reads game variables, missing drag dependencies raise errors, and the per-file globals list shrinks or disappears.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
The seven scripts share one global scope and depend on load order. board.js and game.js read each other's variables, drag.js reaches both through window.* behind typeof guards, and eslint.config.js hand-lists the cross-file globals for every file.
Where
js/board.js:184(readsmoveHistoryfromgame.js),js/game.js:109(readsselectedSquareandpossibleMovesfromboard.js)js/game.js:908-921,js/board.js:252-266(window getters)js/drag.js:97-115,js/drag.js:230-232,js/drag.js:256eslint.config.js:35-155package.json:5("type": "module"while every file uses CommonJS exports)
Impact
Adding or moving a function means editing the source, the ESLint globals list and each test preamble. The typeof guards in drag.js turn a wiring mistake into a silent no-op (a drop that does nothing). The globals list is already stale: drag.js is granted handleBoardClick, which it does not use.
Suggested fix
- Move the shared test bootstrap into one helper (#40); no production change.
- Break the cycle: pass
lastMoveintoupdateBoardVisuals, and giveselectedSquareandpossibleMovesone owning module with accessors. - Replace the
window.*getters with one explicit namespace object and drop thetypeofguards. - Optionally convert to ES modules, which removes the per-file globals lists. ES modules do not load from
file://, so decide first whether openingindex.htmldirectly must keep working.
Acceptance criteria
-
board.jsrenders without readinggame.jsvariables - A missing dependency in
drag.jsraises an error instead of doing nothing - The per-file globals in
eslint.config.jsshrink or disappear
Getting started
- Relevant files:
js/board.js,js/game.js,js/drag.js,eslint.config.js,tests/ - How to run tests:
npm install, thennpm testandnpm run lint - Related docs:
docs/ARCHITECTURE.md,.github/CONTRIBUTING.md
Filed by repo-audit/full-audit at 8a2c86c. Severity: medium. Effort: M. audit-key: tech-debt|js/board.js|window-globals
- Vorherrschende Sprache
- JavaScript
- Sterne
- 4
- Forks
- 2
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TMHSDigital/Static_Chess
-
enhancement good first issue severity: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TMHSDigital/Static_Chess#53 ·
-
documentation good first issue severity: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
TMHSDigital/Static_Chess#49 ·
-
documentation good first issue severity: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
TMHSDigital/Static_Chess#48 ·
-
documentation severity: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TMHSDigital/Static_Chess#47 ·
-
documentation good first issue severity: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
TMHSDigital/Static_Chess#46 ·
Alle Issues in TMHSDigital/Static_Chess
Ähnliche Issues
-
good first issue tests
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
growilabs/growi#12246 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
TMHSDigital/Free-Game-Dev-Assets#301 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100