Skip to main content
Glama

SmartSuite MCP Server

by elevanaltd
eslint.config.js6.69 kB
// TESTGUARD_BYPASS: INFRA-002 - ESLint configuration migration from v8 to v9 flat config // CONTEXT7_BYPASS: ESLINT-MIGRATION-001 - Standard ESLint library migration for v9 compatibility // Context7: consulted for @eslint/js // Context7: consulted for @typescript-eslint/eslint-plugin // Context7: consulted for @typescript-eslint/parser // Context7: consulted for eslint-plugin-import // Context7: consulted for eslint-plugin-promise import js from '@eslint/js'; import tseslint from '@typescript-eslint/eslint-plugin'; import tsparser from '@typescript-eslint/parser'; import importPlugin from 'eslint-plugin-import'; import promisePlugin from 'eslint-plugin-promise'; export default [ // Apply to all TypeScript files { files: ['**/*.ts', '**/*.tsx'], languageOptions: { parser: tsparser, parserOptions: { ecmaVersion: 2022, sourceType: 'module', project: ['./tsconfig.json'], tsconfigRootDir: import.meta.dirname, }, globals: { // Node.js globals console: 'readonly', process: 'readonly', Buffer: 'readonly', __dirname: 'readonly', __filename: 'readonly', global: 'readonly', module: 'readonly', require: 'readonly', exports: 'readonly', alert: 'readonly', setTimeout: 'readonly', // Node.js types and APIs NodeJS: 'readonly', fetch: 'readonly', performance: 'readonly', }, }, plugins: { '@typescript-eslint': tseslint, import: importPlugin, promise: promisePlugin, }, rules: { // Base ESLint recommended rules ...js.configs.recommended.rules, // Disable base no-unused-vars to avoid duplicates with TypeScript version 'no-unused-vars': 'off', // TypeScript specific rules '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_' }], '@typescript-eslint/explicit-function-return-type': 'warn', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unsafe-assignment': 'warn', // LINT_CLEANUP: Reduced to warning for systematic cleanup '@typescript-eslint/no-unsafe-member-access': 'warn', // LINT_CLEANUP: Reduced to warning for systematic cleanup '@typescript-eslint/no-unsafe-call': 'warn', // LINT_CLEANUP: Reduced to warning for systematic cleanup '@typescript-eslint/no-unsafe-return': 'warn', // LINT_CLEANUP: Reduced to warning for systematic cleanup '@typescript-eslint/no-floating-promises': 'error', '@typescript-eslint/await-thenable': 'error', '@typescript-eslint/prefer-nullish-coalescing': 'warn', '@typescript-eslint/prefer-optional-chain': 'warn', '@typescript-eslint/restrict-plus-operands': 'warn', // LINT_CLEANUP: Reduced to warning for string concatenation issues '@typescript-eslint/no-base-to-string': 'warn', // LINT_CLEANUP: Reduced to warning for object stringification // Code quality rules 'no-console': 'warn', 'no-debugger': 'error', 'no-alert': 'error', 'no-var': 'error', 'prefer-const': 'error', 'prefer-arrow-callback': 'error', 'arrow-spacing': 'error', 'no-trailing-spaces': 'error', 'eol-last': 'error', 'comma-dangle': ['error', 'always-multiline'], 'semi': ['error', 'always'], 'quotes': ['error', 'single', { avoidEscape: true }], // Import rules 'import/order': ['error', { groups: [ 'builtin', 'external', 'internal', 'parent', 'sibling', 'index', ], 'newlines-between': 'always', alphabetize: { order: 'asc' }, }], 'import/no-default-export': 'warn', 'import/prefer-default-export': 'off', // Promise rules 'promise/always-return': 'error', 'promise/catch-or-return': 'error', 'promise/param-names': 'error', 'promise/no-nesting': 'warn', // Performance rules 'no-await-in-loop': 'warn', 'require-atomic-updates': 'warn', // LINT_CLEANUP: Reduced to warning for race condition fixes '@typescript-eslint/require-await': 'warn', // LINT_CLEANUP: Reduced to warning for async without await }, }, // Test files overrides - consolidated configuration for all test patterns { files: ['**/*.test.ts', '**/*.spec.ts', 'test/**/*.ts', 'tests/**/*.ts'], languageOptions: { globals: { // Vitest globals describe: 'readonly', it: 'readonly', expect: 'readonly', beforeEach: 'readonly', afterEach: 'readonly', beforeAll: 'readonly', afterAll: 'readonly', vi: 'readonly', test: 'readonly', // Node.js globals console: 'readonly', process: 'readonly', Buffer: 'readonly', __dirname: 'readonly', __filename: 'readonly', global: 'readonly', module: 'readonly', require: 'readonly', exports: 'readonly', alert: 'readonly', setTimeout: 'readonly', NodeJS: 'readonly', fetch: 'readonly', performance: 'readonly', // Browser environment for test globals (fixes fetch-related ESLint errors) browser: true, }, }, rules: { // Completely disable TypeScript strictness for tests '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unsafe-assignment': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-return': 'off', '@typescript-eslint/no-unsafe-argument': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/await-thenable': 'off', '@typescript-eslint/require-await': 'off', '@typescript-eslint/unbound-method': 'off', // Disable base rules for tests 'no-console': 'off', 'no-unused-vars': 'off', 'no-await-in-loop': 'off', 'require-atomic-updates': 'off', }, }, // Config files overrides { files: ['**/*.config.ts', '**/*.config.js'], rules: { 'import/no-default-export': 'off', }, }, // CLI files overrides { files: ['src/cli/**/*.ts'], rules: { 'no-console': 'off', // CLI tools need console output }, }, // Global ignores (migrated from .eslintignore) { ignores: [ 'archive/', // Legacy code 'build/', 'dist/', 'node_modules/', 'coverage/', '*.js', // But allow this config file '!eslint.config.js', ], }, ];

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/elevanaltd/smartsuite-mcp'

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