Skip to main content
Glama
eslint.config.js4.43 kB
import js from "@eslint/js"; import nodePlugin from "eslint-plugin-node"; import tsParser from "@typescript-eslint/parser"; import tsPlugin from "@typescript-eslint/eslint-plugin"; import prettierConfig from "eslint-config-prettier"; export default [ js.configs.recommended, { files: ["**/*.js", "**/*.ts"], languageOptions: { parser: tsParser, ecmaVersion: 2022, sourceType: "module", globals: { process: "readonly", console: "readonly", Buffer: "readonly", __dirname: "readonly", __filename: "readonly", fetch: "readonly", FormData: "readonly", URLSearchParams: "readonly", setTimeout: "readonly", clearTimeout: "readonly", setInterval: "readonly", clearInterval: "readonly", global: "writable", }, }, plugins: { node: nodePlugin, }, rules: { // General rules "no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", }, ], "no-console": "error", semi: ["error", "always"], quotes: ["error", "double"], "comma-dangle": ["error", "always-multiline"], // indent: ["error", 2, { SwitchCase: 1 }], // Disabled in favor of prettier "linebreak-style": ["error", "unix"], "eol-last": ["error", "always"], // ES6+ rules "prefer-const": "error", "no-var": "error", "arrow-spacing": "error", "template-curly-spacing": "error", // Node.js specific "node/no-unsupported-features/es-syntax": "off", "node/no-missing-import": "off", // Warn if a comment starts with 'Doc:' (to discourage its use). // Note: This does not enforce using 'docs:' instead; it only warns on 'Doc:'. "no-warning-comments": ["warn", { terms: ["Doc:"], location: "start" }], }, }, { files: ["**/*.ts"], plugins: { "@typescript-eslint": tsPlugin, }, rules: { "no-unused-vars": [ "error", { args: "none", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", }, ], "no-undef": "off", // TypeScript handles this "no-case-declarations": "off", "no-useless-escape": "off", // TypeScript specific rules "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-unused-vars": [ "error", { args: "none", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", }, ], }, }, { files: ["**/*.test.js", "**/*.spec.js", "tests/**/*.js", "**/*.test.ts", "**/*.spec.ts", "**/__tests__/**/*.ts"], languageOptions: { globals: { // Vitest globals describe: "readonly", it: "readonly", test: "readonly", expect: "readonly", beforeEach: "readonly", afterEach: "readonly", beforeAll: "readonly", afterAll: "readonly", vi: "readonly", require: "readonly", module: "readonly", exports: "writable", __dirname: "readonly", __filename: "readonly", }, }, rules: { // Vitest/testing best practices (without Jest plugin) "no-console": "off", // Allow console in tests "@typescript-eslint/no-explicit-any": "off", // Allow any in tests }, }, { files: [ "src/utils/logger.ts", "src/utils/debug.ts", "src/utils/error.ts", "src/dxt-entry.cjs", "scripts/**/*.js", "scripts/**/*.cjs", ], rules: { "no-console": "off", // Logger utility, debug, error handlers and scripts need console access }, }, { files: ["evaluations/**/*.js"], languageOptions: { globals: { require: "readonly", module: "readonly", exports: "writable", __dirname: "readonly", __filename: "readonly", process: "readonly", console: "readonly", Buffer: "readonly", setTimeout: "readonly", clearTimeout: "readonly", setInterval: "readonly", clearInterval: "readonly", global: "writable", }, }, rules: { "no-console": "off", }, }, { ignores: ["node_modules/", "coverage/", "dist/", ".env*", "bin/"], }, prettierConfig, ];

Latest Blog Posts

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/docdyhr/mcp-wordpress'

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