chore: strengthen lint coverage and update project housekeeping
- Recursively lint all production JS/JSX under src/ and shared/ - Exclude tests, mocks, and node_modules from static guard - Update TODO status - Exclude TODO.md from Docker build context
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
TODO.md
|
||||||
node_modules
|
node_modules
|
||||||
**/node_modules
|
**/node_modules
|
||||||
.git
|
.git
|
||||||
|
|||||||
@@ -2,44 +2,45 @@
|
|||||||
|
|
||||||
Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
|
Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
|
||||||
|
|
||||||
|
|
||||||
## Open
|
## Open
|
||||||
|
|
||||||
|
|
||||||
x fullscreen and dont lock on main app dm view and the no-game-player view ...and doesnt actually prevent lock on android
|
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 needs AC for players dude
|
||||||
|
|
||||||
x and quick entry hp
|
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?
|
^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)
|
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 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.....
|
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
|
### npm install warnings cleanup pass
|
||||||
lots of updates
|
lots of updates
|
||||||
|
|
||||||
|
|
||||||
## monsters per campaign and npcs
|
|
||||||
## or/and ....copy from encoubnter?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,30 @@
|
|||||||
// STATIC GUARD: prod source must pass eslint with zero errors/warnings.
|
// 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.
|
// dead code, undefined vars before they hit the browser console.
|
||||||
// Run via: npx eslint <files> --format json -> parse -> fail on any problem.
|
// Run via: npx eslint <files> --format json -> parse -> fail on any problem.
|
||||||
const { execSync } = require('child_process');
|
const { execSync } = require('child_process');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
const ROOT = path.resolve(__dirname, '..', '..');
|
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 = [
|
const TARGETS = [
|
||||||
'src/App.js',
|
...walkJs(path.join(ROOT, 'src')),
|
||||||
'src/storage/contract.js',
|
...walkJs(path.join(ROOT, 'shared')),
|
||||||
'src/storage/firebase.js',
|
|
||||||
'src/storage/index.js',
|
|
||||||
'src/storage/server.js',
|
|
||||||
'shared/index.js',
|
|
||||||
'shared/logEvent.js',
|
|
||||||
'shared/turn.js',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
function runEslint(files) {
|
function runEslint(files) {
|
||||||
|
|||||||
Reference in New Issue
Block a user