diff --git a/.dockerignore b/.dockerignore index 4f7bee5..7610c0f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ +TODO.md node_modules **/node_modules .git diff --git a/TODO.md b/TODO.md index 60252ca..5aa8345 100644 --- a/TODO.md +++ b/TODO.md @@ -2,44 +2,45 @@ Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md. + ## Open x fullscreen and dont lock on main app dm view and the no-game-player view ...and doesnt actually prevent lock on android -also better vert tab layout - labelt friendly +x also better vert tab layout - labelt friendly x needs AC for players dude x and quick entry hp -hp do not carry from encounter to ecnounter!!! +x hp do not carry from encounter to ecnounter!!! ^feature to add back to campaign character after encounter? maybe campaign toggle in charc section (choosing each end is DM overload will be missed forgotten done wront) -hp wont go over max and no temp hp support - - x refresh/reload/code update causes UI to update to top unselected cambpaign have to drill all the way back down to active encounter....every time. siemtmes? +x encounters cards need clear "in progress"... -I wonder...if a charcter-list-character should have a isNPC option vailble to them - for longer lived + + +x I wonder...if a charcter-list-character should have a isNPC option vailble to them - for longer lived npcs..... +x hp wont go over max and no temp hp support + + +## monsters per campaign and npcs +## or/and ....copy from encoubnter? -### dm list - keep active particpant in view (scroll) -not sure good way to do this - ### npm install warnings cleanup pass lots of updates -## monsters per campaign and npcs -## or/and ....copy from encoubnter? diff --git a/shared/tests/static.eslint.test.js b/shared/tests/static.eslint.test.js index 8657f95..6b32bfc 100644 --- a/shared/tests/static.eslint.test.js +++ b/shared/tests/static.eslint.test.js @@ -1,21 +1,30 @@ // STATIC GUARD: prod source must pass eslint with zero errors/warnings. -// Scans App.js + storage adapters + shared modules. Catches unused imports, +// Scans ALL .js/.jsx in src/ + shared/ (excl tests/mocks). Catches unused imports, // dead code, undefined vars before they hit the browser console. // Run via: npx eslint --format json -> parse -> fail on any problem. const { execSync } = require('child_process'); const path = require('path'); +const fs = require('fs'); const ROOT = path.resolve(__dirname, '..', '..'); +function walkJs(dir) { + let out = []; + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + if (entry.name === 'node_modules' || entry.name === 'tests' || entry.name === '__mocks__') continue; + out = out.concat(walkJs(full)); + } else if (/\.(js|jsx)$/.test(entry.name)) { + out.push(full); + } + } + return out; +} + const TARGETS = [ - 'src/App.js', - 'src/storage/contract.js', - 'src/storage/firebase.js', - 'src/storage/index.js', - 'src/storage/server.js', - 'shared/index.js', - 'shared/logEvent.js', - 'shared/turn.js', + ...walkJs(path.join(ROOT, 'src')), + ...walkJs(path.join(ROOT, 'shared')), ]; function runEslint(files) {