Skip to main content
Glama
eslint.config.js5.72 kB
import js from "@eslint/js" import jsdoc from "eslint-plugin-jsdoc" import stylistic from "@stylistic/eslint-plugin" import globals from "globals" export default [ js.configs.recommended, jsdoc.configs['flat/recommended'], { name: "gesslar/uglier/ignores", ignores: [], }, { name: "gesslar/uglier/languageOptions", languageOptions: { ecmaVersion: "latest", sourceType: "module", globals: { ...globals.node, fetch: "readonly", Headers: "readonly", }, }, }, // Add override for webview files to include browser globals { name: "gesslar/uglier/webview-env", files: ["src/webview/**/*.{js,mjs,cjs}"], languageOptions: { globals: { ...globals.browser, acquireVsCodeApi: "readonly" } } }, // Add override for .cjs files to treat as CommonJS { name: "gesslar/uglier/cjs-override", files: ["src/**/*.cjs"], languageOptions: { sourceType: "script", ecmaVersion: 2021 }, }, // Add override for .mjs files to treat as ES modules { name: "gesslar/uglier/mjs-override", files: ["src/**/*.mjs"], languageOptions: { sourceType: "module", ecmaVersion: 2021 } }, { name: "gesslar/uglier/lints-js", files: ["{work,src}/**/*.{mjs,cjs,js}"], plugins: { "@stylistic": stylistic, }, rules: { "@stylistic/arrow-parens": ["error", "as-needed"], "@stylistic/arrow-spacing": ["error", { before: true, after: true }], "@stylistic/brace-style": ["error", "1tbs", {allowSingleLine: false}], "@stylistic/nonblock-statement-body-position": ["error", "below"], "@stylistic/padding-line-between-statements": [ "error", {blankLine: "always", prev: "if", next: "*"}, {blankLine: "always", prev: "*", next: "return"}, {blankLine: "always", prev: "while", next: "*"}, {blankLine: "always", prev: "for", next: "*"}, {blankLine: "always", prev: "switch", next: "*"}, {blankLine: "always", prev: "do", next: "*"}, // {blankLine: "always", prev: ["const", "let", "var"], next: "*"}, // {blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]}, {blankLine: "always", prev: "directive", next: "*" }, {blankLine: "any", prev: "directive", next: "directive" }, ], "@stylistic/eol-last": ["error", "always"], "@stylistic/indent": ["error", 2, { SwitchCase: 1 // Indents `case` statements one level deeper than `switch` }], "@stylistic/key-spacing": ["error", { beforeColon: false, afterColon: true }], "@stylistic/keyword-spacing": ["error", { before: false, after: true, overrides: { // Control statements return: { before: true, after: true }, if: { after: false }, else: { before: true, after: true }, for: { after: false }, while: { before: true, after: false }, do: { after: true }, switch: { after: false }, case: { before: true, after: true }, throw: { before: true, after: false } , // Keywords as: { before: true, after: true }, of: { before: true, after: true }, from: { before: true, after: true }, async: { before: true, after: true }, await: { before: true, after: false }, class: { before: true, after: true }, const: { before: true, after: true }, let: { before: true, after: true }, var: { before: true, after: true }, // Exception handling catch: { before: true, after: true }, finally: { before: true, after: true }, } }], // Blocks "@stylistic/space-before-blocks": ["error", "always"], "@stylistic/max-len": ["warn", { code: 80, ignoreComments: true, ignoreUrls: true, ignoreStrings: true, ignoreTemplateLiterals: true, ignoreRegExpLiterals: true, tabWidth: 2 }], "@stylistic/no-tabs": "error", "@stylistic/no-trailing-spaces": ["error"], "@stylistic/object-curly-spacing": ["error", "never", { objectsInObjects: false, arraysInObjects: false }], "@stylistic/quotes": ["error", "double", { avoidEscape: true, allowTemplateLiterals: "always" }], "@stylistic/semi": ["error", "never"], "@stylistic/space-before-function-paren": ["error", "never"], "@stylistic/yield-star-spacing": ["error", { before: true, after: false }], "constructor-super": "error", "no-unexpected-multiline": "error", "no-unused-vars": ["error", { caughtErrors: "all", caughtErrorsIgnorePattern: "^_+", argsIgnorePattern: "^_+", destructuredArrayIgnorePattern: "^_+", varsIgnorePattern: "^_+" }], "no-useless-assignment": "error", "prefer-const": "error", "@stylistic/no-multiple-empty-lines": ["error", { max: 1 }], "@stylistic/array-bracket-spacing": ["error", "never"], } }, { name: "gesslar/uglier/lints-jsdoc", files: ["{work,src}/**/*.{mjs,cjs,js}"], plugins: { jsdoc, }, rules: { "jsdoc/require-description": "error", "jsdoc/tag-lines": ["error", "any", {"startLines":1}], "jsdoc/require-jsdoc": ["error", { publicOnly: true }], "jsdoc/check-tag-names": "error", "jsdoc/check-types": "error", "jsdoc/require-param-type": "error", "jsdoc/require-returns-type": "error" } } ]

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/gesslar/fluffos-mcp'

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