add linting

This commit is contained in:
Paul Carleton 2025-10-30 13:06:52 +00:00
commit ae9451f5e0
No known key found for this signature in database
6 changed files with 6617 additions and 5337 deletions

24
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,24 @@
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: npm
- run: npm ci
- run: npm test
- run: npm run lint

20
.prettierrc.json Normal file
View file

@ -0,0 +1,20 @@
{
"printWidth": 140,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": true,
"bracketSameLine": false,
"proseWrap": "always",
"arrowParens": "avoid",
"overrides": [
{
"files": "**/*.md",
"options": {
"printWidth": 280
}
}
]
}

20
eslint.config.mjs Normal file
View file

@ -0,0 +1,20 @@
// @ts-check
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import eslintConfigPrettier from 'eslint-config-prettier/flat';
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
{
linterOptions: {
reportUnusedDisableDirectives: false
},
rules: {
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-explicit-any': 'off'
}
},
eslintConfigPrettier
);

11811
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,22 +1,29 @@
{ {
"name": "conformance", "name": "conformance",
"version": "1.0.0", "version": "1.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"start": "tsx src/runner.ts", "start": "tsx src/runner.ts",
"test": "jest" "test": "jest",
}, "lint": "eslint src/ && prettier --check .",
"devDependencies": { "lint:fix": "eslint src/ --fix && prettier --write ."
"@jest/globals": "^29.7.0", },
"@types/jest": "^29.5.8", "devDependencies": {
"jest": "^29.7.0", "@eslint/js": "^9.8.0",
"ts-jest": "^29.1.1", "@jest/globals": "^29.7.0",
"tsx": "^4.7.0", "@types/jest": "^29.5.8",
"typescript": "^5.3.0" "eslint": "^9.8.0",
}, "eslint-config-prettier": "^10.1.8",
"dependencies": { "jest": "^29.7.0",
"@modelcontextprotocol/sdk": "^1.20.1", "prettier": "3.6.2",
"express": "^5.1.0", "ts-jest": "^29.1.1",
"zod": "^3.25.76" "tsx": "^4.7.0",
} "typescript": "^5.5.4",
"typescript-eslint": "^8.0.0"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.20.1",
"express": "^5.1.0",
"zod": "^3.25.76"
}
} }

View file

@ -1,13 +1,13 @@
{ {
"compilerOptions": { "compilerOptions": {
"target": "ES2020", "target": "ES2020",
"module": "ES2020", "module": "ES2020",
"moduleResolution": "node", "moduleResolution": "node",
"strict": true, "strict": true,
"esModuleInterop": true, "esModuleInterop": true,
"skipLibCheck": true, "skipLibCheck": true,
"forceConsistentCasingInFileNames": true "forceConsistentCasingInFileNames": true
}, },
"include": ["src/**/*"], "include": ["src/**/*"],
"exclude": ["node_modules"] "exclude": ["node_modules"]
} }