* web: update to ESLint 9 ESLint 9 has been out for awhile now, and all of the plug-ins that we use have caught up, so it is time to bite the bullet and upgrade. This commit: - upgrades to ESLint 9, and upgrades all associated plugins - Replaces the `.eslintrc` and `.eslintignore` files with the new, "flat" configuration file, "eslint.config.mjs". - Places the previous "precommit" and "nightmare" rules in `./scripts/eslint.precommit.mjs` and `./scripts/eslint.nightmare.mjs`, respectively - Replaces the scripted wrappers for eslint (`eslint`, `eslint-precommit`) with a single executable that takes the arguments `--precommit`, which applies a stricter set of rules, and `--nightmare`, which applies an even more terrifyingly strict set of rules. - Provides the scripted wrapper `./scripts/eslint.mjs` so that eslint can be run from `bun`, if one so chooses. - Fixes *all* of the lint `eslint.config.mjs` now finds, including removing all of the `eslint` styling rules and overrides because Eslint now proudly leaves that entirely up to Prettier. To shut Dependabot up about ESLint. * Added explanation for no-console removal. * web: did not need the old and unmaintained nightmare mode; it can be configured directly.
		
			
				
	
	
		
			16 lines
		
	
	
		
			459 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			459 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { execSync } from "child_process";
 | 
						|
import path from "path";
 | 
						|
 | 
						|
const projectRoot = execSync("git rev-parse --show-toplevel", { encoding: "utf8" }).replace(
 | 
						|
    "\n",
 | 
						|
    "",
 | 
						|
);
 | 
						|
const cmd = [
 | 
						|
    "codespell -D -",
 | 
						|
    `-D ${path.join(projectRoot, ".github/codespell-dictionary.txt")}`,
 | 
						|
    `-I ${path.join(projectRoot, ".github/codespell-words.txt")}`,
 | 
						|
    "-S './src/locales/**' ./src -s",
 | 
						|
].join(" ");
 | 
						|
 | 
						|
console.log(execSync(cmd, { encoding: "utf8" }));
 |