Skip to content

Commit 1b9c790

Browse files
committed
chore: use eslint caching
1 parent 420dc7b commit 1b9c790

7 files changed

Lines changed: 28 additions & 19 deletions

File tree

.github/workflows/check.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ jobs:
2323
cache: "pnpm"
2424
- name: Install dependencies
2525
run: pnpm install --frozen-lockfile
26+
- name: Restore ESLint cache
27+
uses: actions/cache@v4
28+
with:
29+
path: .eslintcache
30+
key: eslint-${{ runner.os }}-${{ hashFiles('eslint.config.js', 'eslint-rules/**', 'pnpm-lock.yaml') }}
31+
restore-keys: |
32+
eslint-${{ runner.os }}-
2633
- name: Build
2734
run: pnpm run build
2835
- name: Run style check

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
dist
22
node_modules
3+
.eslintcache
34

45
.vscode/mcp.json
56
.github/prompts/*

eslint.config.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"
66
import vitestPlugin from "@vitest/eslint-plugin";
77
import enforceZodV4 from "./eslint-rules/enforce-zod-v4.js";
88

9-
const testFiles = ["packages/**/*.test.ts", "packages/**/*.test.tsx", "packages/**/*.ts", "packages/**/*.tsx"];
10-
11-
const files = [...testFiles, "packages/**/*.ts"];
9+
const sourceFiles = ["knip.ts", "packages/**/*.ts", "packages/**/*.tsx"];
10+
const testFiles = ["packages/**/*.test.ts", "packages/**/*.test.tsx"];
1211

1312
export default defineConfig([
14-
{ files, plugins: { js }, extends: ["js/recommended"] },
15-
{ files, languageOptions: { globals: globals.node } },
13+
{ files: sourceFiles, plugins: { js }, extends: ["js/recommended"] },
14+
{ files: sourceFiles, languageOptions: { globals: globals.node } },
1615
{
1716
files: testFiles,
1817
plugins: {
@@ -37,7 +36,7 @@ export default defineConfig([
3736
},
3837
},
3938
{
40-
files,
39+
files: sourceFiles,
4140
extends: [tseslint.configs.recommendedTypeChecked],
4241
languageOptions: {
4342
parserOptions: {
@@ -47,7 +46,7 @@ export default defineConfig([
4746
},
4847
},
4948
{
50-
files,
49+
files: sourceFiles,
5150
rules: {
5251
"@typescript-eslint/switch-exhaustiveness-check": ["error", { considerDefaultExhaustiveForUnions: true }],
5352
"@typescript-eslint/no-non-null-assertion": "error",
@@ -106,17 +105,16 @@ export default defineConfig([
106105
globalIgnores([
107106
"node_modules",
108107
"**/dist/**",
109-
"packages/*/dist/**",
110108
"packages/atlas-api-client/openapi.d.ts",
111109
".claude/**",
112-
"packages/mongodb-mcp-server/src/ui/lib",
110+
"packages/ui/src/lib/**",
113111
"coverage",
114112
"global.d.ts",
115113
"eslint.config.js",
116-
"vitest.config.ts",
117-
"vite.ui.config.ts",
118-
"src/types/*.d.ts",
119-
"tests/integration/fixtures/",
114+
"**/vitest.config.ts",
115+
"**/vite*.config.ts",
116+
"**/temp/**",
117+
"**/*.tsbuildinfo",
120118
"packages/browser-tests/polyfills/**",
121119
"eslint-rules",
122120
".yalc",

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
"build": "pnpm --filter './packages/*' --filter '!./packages/*-tests' --filter '!./packages/test-utils' -r run build",
1515
"inspect": "pnpm --filter mongodb-mcp-server inspect",
1616
"prettier": "prettier",
17-
"check": "concurrently \"pnpm run -r check\" \"pnpm run check:lint\" \"pnpm run check:format\" \"pnpm run check:dependencies\" \"pnpm run check:api\"",
17+
"check": "concurrently \"pnpm run check:types\" \"pnpm run check:style\" \"pnpm run check:api\"",
18+
"check:types": "pnpm run -r --parallel check",
19+
"check:style": "concurrently \"pnpm run check:lint\" \"pnpm run check:format\" \"pnpm run check:dependencies\"",
1820
"check:api": "pnpm run -r --parallel check:api",
19-
"check:lint": "eslint .",
21+
"check:lint": "eslint . --cache",
2022
"check:dependencies": "knip --no-config-hints",
2123
"check:format": "prettier -c .",
2224
"update:api": "pnpm run build && pnpm run -r --parallel update:api",
2325
"fix": "pnpm run fix:lint && pnpm run reformat",
24-
"fix:lint": "eslint . --fix",
26+
"fix:lint": "eslint . --fix --cache",
2527
"reformat": "prettier --write .",
2628
"generate": "pnpm run generate:api && pnpm run generate:arguments && pnpm run generate:ui",
2729
"generate:ui": "pnpm --filter @mongodb-js/mcp-scripts generate:ui",

packages/integration-tests/src/metricsHelpers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function parsePrometheusValue(
2424

2525
if (braceOpen === -1) {
2626
if (line.startsWith(metricName + " ") && Object.keys(labels).length === 0) {
27+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2728
return parseFloat(line.split(" ")[1]!);
2829
}
2930
continue;
@@ -35,6 +36,7 @@ export function parsePrometheusValue(
3536

3637
const parsedLabels: Record<string, string> = {};
3738
for (const match of line.slice(braceOpen + 1, braceClose).matchAll(/(\w+)="([^"]*)"/g)) {
39+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3840
parsedLabels[match[1]!] = match[2]!;
3941
}
4042

packages/integration-tests/src/tools/assistant/assistantHelpers.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ export function describeWithAssistant(name: string, fn: MockIntegrationTestFunct
2222
});
2323
};
2424

25-
// eslint-disable-next-line vitest/valid-describe-callback
2625
return describe("assistant (mocked)", () => testDefinition());
2726
}
2827

packages/tools-atlas/src/tools/read/listProjects.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export class ListProjectsTool extends AtlasToolBase {
2525
}
2626

2727
const orgs: Record<string, string> = orgData.results
28-
.filter((org) => org.id)
29-
.reduce((acc, org) => ({ ...acc, [org.id!]: org.name }), {});
28+
.filter((org): org is typeof org & { id: string } => org.id !== undefined)
29+
.reduce((acc, org) => ({ ...acc, [org.id]: org.name }), {});
3030

3131
const data = orgId
3232
? await this.apiClient.getOrgGroups({

0 commit comments

Comments
 (0)