diff --git a/.eslintrc.js b/.eslintrc.js index a80fcdc805..3fda195286 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,6 +16,12 @@ module.exports = { react: { version: packageJson.devDependencies.react || "detect", }, + // the package eslint-import-resolver-typescript is required for this line which fixes errors when using .d.ts files + "import/resolver": { + "typescript": { + "alwaysTryTypes": true, + }, + }, }, overrides: [ { diff --git a/package.json b/package.json index 0443b60eea..2667dea25b 100644 --- a/package.json +++ b/package.json @@ -340,6 +340,7 @@ "esbuild": "^0.13.15", "esbuild-loader": "^2.16.0", "eslint": "^7.32.0", + "eslint-import-resolver-typescript": "^2.5.0", "eslint-plugin-header": "^3.1.1", "eslint-plugin-import": "^2.25.3", "eslint-plugin-react": "^7.27.1", diff --git a/src/renderer/components/+preferences/app-preferences/app-preference-registration.d.ts b/src/renderer/components/+preferences/app-preferences/app-preference-registration.d.ts index 6e20c14f86..4c76722dd5 100644 --- a/src/renderer/components/+preferences/app-preferences/app-preference-registration.d.ts +++ b/src/renderer/components/+preferences/app-preferences/app-preference-registration.d.ts @@ -16,3 +16,8 @@ export interface AppPreferenceRegistration { showInPreferencesTab?: string; components: AppPreferenceComponents; } + +export interface RegisteredAppPreference extends AppPreferenceRegistration { + id: string; +} + diff --git a/src/renderer/components/+preferences/app-preferences/get-app-preferences.ts b/src/renderer/components/+preferences/app-preferences/get-app-preferences.ts index 3557bf55bf..590b7d9eb9 100644 --- a/src/renderer/components/+preferences/app-preferences/get-app-preferences.ts +++ b/src/renderer/components/+preferences/app-preferences/get-app-preferences.ts @@ -20,16 +20,12 @@ */ import { computed, IComputedValue } from "mobx"; import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; -import type { AppPreferenceRegistration } from "./app-preference-registration"; +import type { AppPreferenceRegistration, RegisteredAppPreference } from "./app-preference-registration"; interface Dependencies { extensions: IComputedValue; } -interface RegisteredAppPreference extends AppPreferenceRegistration { - id: string; -} - function getRegisteredItem(item: AppPreferenceRegistration): RegisteredAppPreference { return { id: item.id || item.title.toLowerCase().replace(/[^0-9a-zA-Z]+/g, "-"), @@ -39,11 +35,9 @@ function getRegisteredItem(item: AppPreferenceRegistration): RegisteredAppPrefe export const getAppPreferences = ({ extensions }: Dependencies) => { - return computed(() => { - return [ - ...extensions.get() - .flatMap((extension) => extension.appPreferences) - .map(pref => getRegisteredItem(pref)), - ];}, - ); + return computed(() => ( + extensions.get() + .flatMap((extension) => extension.appPreferences) + .map(getRegisteredItem) + )); }; diff --git a/src/renderer/components/+preferences/application.tsx b/src/renderer/components/+preferences/application.tsx index 8e2b09a36c..deaae917d0 100644 --- a/src/renderer/components/+preferences/application.tsx +++ b/src/renderer/components/+preferences/application.tsx @@ -17,7 +17,7 @@ import { CONSTANTS, defaultExtensionRegistryUrl, ExtensionRegistryLocation } fro import { action, IComputedValue } from "mobx"; import { isUrl } from "../input/input_validators"; import { ExtensionSettings } from "./extension-settings"; -import type { AppPreferenceRegistration } from "./app-preferences/app-preference-registration"; +import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration"; import { withInjectables } from "@ogre-tools/injectable-react"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable"; @@ -31,7 +31,7 @@ const updateChannelOptions: SelectOption[] = Array.from( ); interface Dependencies { - appPreferenceItems: IComputedValue + appPreferenceItems: IComputedValue } const NonInjectedApplication: React.FC = ({ appPreferenceItems }) => { diff --git a/src/renderer/components/+preferences/extensions.tsx b/src/renderer/components/+preferences/extensions.tsx index 010313e0ab..159a267b85 100644 --- a/src/renderer/components/+preferences/extensions.tsx +++ b/src/renderer/components/+preferences/extensions.tsx @@ -7,12 +7,12 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import type { IComputedValue } from "mobx"; import { observer } from "mobx-react"; import React from "react"; -import type { AppPreferenceRegistration } from "./app-preferences/app-preference-registration"; +import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable"; import { ExtensionSettings } from "./extension-settings"; interface Dependencies { - appPreferenceItems: IComputedValue + appPreferenceItems: IComputedValue } const NonInjectedExtensions: React.FC = ({ appPreferenceItems }) => { diff --git a/src/renderer/components/+preferences/preferences.tsx b/src/renderer/components/+preferences/preferences.tsx index bb758dfc15..828433fe2f 100644 --- a/src/renderer/components/+preferences/preferences.tsx +++ b/src/renderer/components/+preferences/preferences.tsx @@ -34,11 +34,11 @@ import { Telemetry } from "./telemetry"; import { Extensions } from "./extensions"; import { sentryDsn } from "../../../common/vars"; import { withInjectables } from "@ogre-tools/injectable-react"; -import type { AppPreferenceRegistration } from "./app-preferences/app-preference-registration"; +import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable"; interface Dependencies { - appPreferenceItems: IComputedValue + appPreferenceItems: IComputedValue } const NonInjectedPreferences: React.FC = ({ appPreferenceItems }) => { diff --git a/src/renderer/components/+preferences/telemetry.tsx b/src/renderer/components/+preferences/telemetry.tsx index cf0c0500fd..30e34bbeaf 100644 --- a/src/renderer/components/+preferences/telemetry.tsx +++ b/src/renderer/components/+preferences/telemetry.tsx @@ -9,13 +9,13 @@ import { sentryDsn } from "../../../common/vars"; import { Checkbox } from "../checkbox"; import { SubTitle } from "../layout/sub-title"; import { ExtensionSettings } from "./extension-settings"; -import type { AppPreferenceRegistration } from "./app-preferences/app-preference-registration"; +import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable"; import type { IComputedValue } from "mobx"; import { withInjectables } from "@ogre-tools/injectable-react"; interface Dependencies { - appPreferenceItems: IComputedValue + appPreferenceItems: IComputedValue } const NonInjectedTelemetry: React.FC = ({ appPreferenceItems }) => { diff --git a/yarn.lock b/yarn.lock index a24592760e..5d0e02d9ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5460,6 +5460,17 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" +eslint-import-resolver-typescript@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz#07661966b272d14ba97f597b51e1a588f9722f0a" + integrity sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ== + dependencies: + debug "^4.3.1" + glob "^7.1.7" + is-glob "^4.0.1" + resolve "^1.20.0" + tsconfig-paths "^3.9.0" + eslint-module-utils@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" @@ -6516,7 +6527,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==