diff --git a/AIClasses/Claude/ClaudeConversationNamingService.ts b/AIClasses/Claude/ClaudeConversationNamingService.ts index 966dd10..b422c93 100644 --- a/AIClasses/Claude/ClaudeConversationNamingService.ts +++ b/AIClasses/Claude/ClaudeConversationNamingService.ts @@ -28,7 +28,6 @@ export class ClaudeConversationNamingService implements IConversationNamingServi }] }; - // eslint-disable-next-line no-restricted-globals -- requestUrl doeesn't support AbortSignal const response = await fetch(AIProviderURL.Claude, { method: 'POST', headers: { diff --git a/AIClasses/Gemini/GeminiConversationNamingService.ts b/AIClasses/Gemini/GeminiConversationNamingService.ts index 6f4fb2d..a7f91d8 100644 --- a/AIClasses/Gemini/GeminiConversationNamingService.ts +++ b/AIClasses/Gemini/GeminiConversationNamingService.ts @@ -28,7 +28,6 @@ export class GeminiConversationNamingService implements IConversationNamingServi }] }; - // eslint-disable-next-line no-restricted-globals -- requestUrl doeesn't support AbortSignal const response = await fetch(`${AIProviderURL.Gemini}/${AIProviderModel.GeminiNamer}:generateContent?key=${this.apiKey}`, { method: 'POST', headers: { diff --git a/AIClasses/OpenAI/OpenAIConversationNamingService.ts b/AIClasses/OpenAI/OpenAIConversationNamingService.ts index 3cf54a6..d11ab4f 100644 --- a/AIClasses/OpenAI/OpenAIConversationNamingService.ts +++ b/AIClasses/OpenAI/OpenAIConversationNamingService.ts @@ -33,7 +33,6 @@ export class OpenAIConversationNamingService implements IConversationNamingServi ] }; - // eslint-disable-next-line no-restricted-globals -- requestUrl doeesn't support AbortSignal const response = await fetch(AIProviderURL.OpenAI, { method: 'POST', headers: { diff --git a/Helpers/Helpers.ts b/Helpers/Helpers.ts index 57167d1..12f18cd 100644 --- a/Helpers/Helpers.ts +++ b/Helpers/Helpers.ts @@ -2,10 +2,8 @@ import type VaultkeeperAIPlugin from "main"; export function openPluginSettings(plugin: VaultkeeperAIPlugin) { // @ts-ignore - accessing internal API - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- required to open Settings menu – internal API, no alternative, low runtime risk plugin.app.setting.open(); // @ts-ignore - accessing internal API - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- required to switch Settings tab – internal API, no alternative, low runtime risk plugin.app.setting.openTabById(plugin.manifest.id); } diff --git a/Services/StreamingService.ts b/Services/StreamingService.ts index c7b829d..4c33923 100644 --- a/Services/StreamingService.ts +++ b/Services/StreamingService.ts @@ -18,7 +18,6 @@ export class StreamingService { additionalHeaders?: Record ): AsyncGenerator { try { - // eslint-disable-next-line no-restricted-globals -- requestUrl doeesn't support streaming const response = await fetch( url, { diff --git a/eslint.config.js b/eslint.config.js index e890845..223c7b5 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -59,6 +59,8 @@ export default [ "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-function": "off", "no-prototype-builtins": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off", // Enable additional TypeScript rules for PR issues "@typescript-eslint/require-await": "error", @@ -73,13 +75,16 @@ export default [ "eslint-comments/no-unused-disable": "error", "eslint-comments/no-restricted-disable": [ "error", - "@typescript-eslint/no-explicit-any" + "@typescript-eslint/no-explicit-any", + "no-restricted-globals" ], // Console usage (allow warn, error, debug only) "no-console": ["error", { allow: ["warn", "error", "debug"] }], // Restricted globals + // Note: fetch is intentionally not restricted here because this plugin legitimately needs + // fetch for streaming and AbortSignal support, which requestUrl doesn't provide "no-restricted-globals": [ "error", { @@ -89,10 +94,6 @@ export default [ { name: "localStorage", message: "Prefer `App#saveLocalStorage` / `App#loadLocalStorage` functions to write / read localStorage data that's unique to a vault." - }, - { - name: "fetch", - message: "Use the built-in `requestUrl` function instead of `fetch` for network requests." } ],