mirror of
https://github.com/Such-Software/such.software.git
synced 2026-10-17 05:32:05 +02:00
The linter had two faults stacked on top of each other. First, the global `ajv: ^8.17.1` override starved @eslint/eslintrc, which needs ajv 6 and passes it `missingRefs`; ajv 8 rejects that option, so ESLint died before loading a single rule. Scoped overrides give eslint and @eslint/eslintrc ajv 6.12.6 and leave the audit override in place everywhere else. Second, underneath that, `extends: ["@repo/config/eslint-preset.js"]` could never resolve: ESLint's shareable-config naming convention rewrites it to `@repo/eslint-config-config/...`. require.resolve hands ESLint a real path. With the linter running it reported 35 react/no-unescaped-entities errors across 7 files. Those are escaped rather than silenced, using ESLint's own coordinates so only flagged text nodes were touched. Lint now exits 0. Two @next/next/no-img-element warnings remain on the splash logos, which are deliberate: theme-paired and fetchPriority="high". Em dashes are also gone from the six blog posts and the README (105 occurrences), same rules as the site copy: colons for definition labels, commas for appositives, semicolons for independent clauses.
7 lines
351 B
JavaScript
7 lines
351 B
JavaScript
// require.resolve, not the bare specifier: ESLint's shareable-config naming convention
|
|
// rewrites "@repo/config/eslint-preset.js" to "@repo/eslint-config-config/eslint-preset.js"
|
|
// and then cannot find it. Resolving through Node hands ESLint a real path instead.
|
|
module.exports = {
|
|
extends: [require.resolve("@repo/config/eslint-preset.js")],
|
|
};
|