Skip to main content
Glama

PDF Reader MCP Server

by sylphxltd
eslint.config.js3.55 kB
import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import eslintConfigPrettier from 'eslint-config-prettier'; // Import prettier config export default tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, // Basic recommended rules - Apply broadly { // Global ignores ignores: [ 'node_modules/', 'build/', 'dist/', // Add dist 'coverage/', // Add coverage 'docs/.vitepress/cache/', // Ignore vitepress cache 'docs/.vitepress/dist/', // Ignore vitepress build output 'eslint.config.js', ], }, // Configuration specific to TypeScript files, including type-aware rules ...tseslint.config({ files: ['**/*.ts'], extends: [ ...tseslint.configs.strictTypeChecked, // Apply strictest type-aware rules ONLY to TS files ...tseslint.configs.stylisticTypeChecked, // Apply stylistic rules requiring TS config ], languageOptions: { parserOptions: { project: './tsconfig.eslint.json', // Point to specific tsconfig for ESLint tsconfigRootDir: import.meta.dirname, }, }, rules: { // General JS/TS Rules (applied within TS context) 'no-console': ['warn', { allow: ['warn', 'error', 'info'] }], 'prefer-const': 'error', eqeqeq: ['error', 'always'], 'no-unused-vars': 'off', // Use TS version complexity: ['error', { max: 10 }], 'max-lines': ['warn', { max: 300, skipBlankLines: true, skipComments: true }], 'max-lines-per-function': ['warn', { max: 50, skipBlankLines: true, skipComments: true }], 'max-depth': ['warn', 3], 'max-params': ['warn', 4], // TypeScript Specific Rules (override/add) '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/explicit-function-return-type': 'error', '@typescript-eslint/no-non-null-assertion': 'error', '@typescript-eslint/no-use-before-define': 'error', '@typescript-eslint/no-floating-promises': 'error', '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/no-misused-promises': 'error', '@typescript-eslint/prefer-readonly': 'warn', }, }), { // Configuration for specific files to relax rules files: [ 'src/handlers/readPdf.ts', 'test/**/*.ts', // Includes .test.ts and .bench.ts ], rules: { complexity: 'off', 'max-lines': 'off', 'max-lines-per-function': 'off', 'max-depth': 'off', // Also disable max-depth for these complex files/tests '@typescript-eslint/no-unsafe-call': 'warn', // Downgrade unsafe-call to warning for tests if needed '@typescript-eslint/no-unsafe-assignment': 'warn', // Downgrade related rule '@typescript-eslint/no-unsafe-member-access': 'warn', // Downgrade related rule }, }, { // Configuration for JavaScript files (CommonJS like config files) files: ['**/*.js', '**/*.cjs'], // Include .cjs files languageOptions: { globals: { module: 'readonly', // Define CommonJS globals require: 'readonly', process: 'readonly', __dirname: 'readonly', }, }, rules: { // Add JS/CJS specific rules if needed '@typescript-eslint/no-var-requires': 'off', // Allow require in CJS if needed }, }, eslintConfigPrettier // Add prettier config last to override other formatting rules );

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sylphxltd/pdf-reader-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server