1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

address review comments and fix lint

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
This commit is contained in:
Jim Ehrismann 2022-01-11 15:11:39 -05:00
parent a185227ca2
commit 944f9b899a
9 changed files with 38 additions and 21 deletions

View File

@ -16,6 +16,12 @@ module.exports = {
react: { react: {
version: packageJson.devDependencies.react || "detect", 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: [ overrides: [
{ {

View File

@ -340,6 +340,7 @@
"esbuild": "^0.13.15", "esbuild": "^0.13.15",
"esbuild-loader": "^2.16.0", "esbuild-loader": "^2.16.0",
"eslint": "^7.32.0", "eslint": "^7.32.0",
"eslint-import-resolver-typescript": "^2.5.0",
"eslint-plugin-header": "^3.1.1", "eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.25.3", "eslint-plugin-import": "^2.25.3",
"eslint-plugin-react": "^7.27.1", "eslint-plugin-react": "^7.27.1",

View File

@ -16,3 +16,8 @@ export interface AppPreferenceRegistration {
showInPreferencesTab?: string; showInPreferencesTab?: string;
components: AppPreferenceComponents; components: AppPreferenceComponents;
} }
export interface RegisteredAppPreference extends AppPreferenceRegistration {
id: string;
}

View File

@ -20,16 +20,12 @@
*/ */
import { computed, IComputedValue } from "mobx"; import { computed, IComputedValue } from "mobx";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension"; 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 { interface Dependencies {
extensions: IComputedValue<LensRendererExtension[]>; extensions: IComputedValue<LensRendererExtension[]>;
} }
interface RegisteredAppPreference extends AppPreferenceRegistration {
id: string;
}
function getRegisteredItem(item: AppPreferenceRegistration): RegisteredAppPreference { function getRegisteredItem(item: AppPreferenceRegistration): RegisteredAppPreference {
return { return {
id: item.id || item.title.toLowerCase().replace(/[^0-9a-zA-Z]+/g, "-"), 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) => { export const getAppPreferences = ({ extensions }: Dependencies) => {
return computed(() => { return computed(() => (
return [ extensions.get()
...extensions.get() .flatMap((extension) => extension.appPreferences)
.flatMap((extension) => extension.appPreferences) .map(getRegisteredItem)
.map(pref => getRegisteredItem(pref)), ));
];},
);
}; };

View File

@ -17,7 +17,7 @@ import { CONSTANTS, defaultExtensionRegistryUrl, ExtensionRegistryLocation } fro
import { action, IComputedValue } from "mobx"; import { action, IComputedValue } from "mobx";
import { isUrl } from "../input/input_validators"; import { isUrl } from "../input/input_validators";
import { ExtensionSettings } from "./extension-settings"; 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 { withInjectables } from "@ogre-tools/injectable-react";
import appPreferencesInjectable from "./app-preferences/app-preferences.injectable"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable";
@ -31,7 +31,7 @@ const updateChannelOptions: SelectOption<string>[] = Array.from(
); );
interface Dependencies { interface Dependencies {
appPreferenceItems: IComputedValue<AppPreferenceRegistration[]> appPreferenceItems: IComputedValue<RegisteredAppPreference[]>
} }
const NonInjectedApplication: React.FC<Dependencies> = ({ appPreferenceItems }) => { const NonInjectedApplication: React.FC<Dependencies> = ({ appPreferenceItems }) => {

View File

@ -7,12 +7,12 @@ import { withInjectables } from "@ogre-tools/injectable-react";
import type { IComputedValue } from "mobx"; import type { IComputedValue } from "mobx";
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import React from "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 appPreferencesInjectable from "./app-preferences/app-preferences.injectable";
import { ExtensionSettings } from "./extension-settings"; import { ExtensionSettings } from "./extension-settings";
interface Dependencies { interface Dependencies {
appPreferenceItems: IComputedValue<AppPreferenceRegistration[]> appPreferenceItems: IComputedValue<RegisteredAppPreference[]>
} }
const NonInjectedExtensions: React.FC<Dependencies> = ({ appPreferenceItems }) => { const NonInjectedExtensions: React.FC<Dependencies> = ({ appPreferenceItems }) => {

View File

@ -34,11 +34,11 @@ import { Telemetry } from "./telemetry";
import { Extensions } from "./extensions"; import { Extensions } from "./extensions";
import { sentryDsn } from "../../../common/vars"; import { sentryDsn } from "../../../common/vars";
import { withInjectables } from "@ogre-tools/injectable-react"; 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"; import appPreferencesInjectable from "./app-preferences/app-preferences.injectable";
interface Dependencies { interface Dependencies {
appPreferenceItems: IComputedValue<AppPreferenceRegistration[]> appPreferenceItems: IComputedValue<RegisteredAppPreference[]>
} }
const NonInjectedPreferences: React.FC<Dependencies> = ({ appPreferenceItems }) => { const NonInjectedPreferences: React.FC<Dependencies> = ({ appPreferenceItems }) => {

View File

@ -9,13 +9,13 @@ import { sentryDsn } from "../../../common/vars";
import { Checkbox } from "../checkbox"; import { Checkbox } from "../checkbox";
import { SubTitle } from "../layout/sub-title"; import { SubTitle } from "../layout/sub-title";
import { ExtensionSettings } from "./extension-settings"; 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 appPreferencesInjectable from "./app-preferences/app-preferences.injectable";
import type { IComputedValue } from "mobx"; import type { IComputedValue } from "mobx";
import { withInjectables } from "@ogre-tools/injectable-react"; import { withInjectables } from "@ogre-tools/injectable-react";
interface Dependencies { interface Dependencies {
appPreferenceItems: IComputedValue<AppPreferenceRegistration[]> appPreferenceItems: IComputedValue<RegisteredAppPreference[]>
} }
const NonInjectedTelemetry: React.FC<Dependencies> = ({ appPreferenceItems }) => { const NonInjectedTelemetry: React.FC<Dependencies> = ({ appPreferenceItems }) => {

View File

@ -5460,6 +5460,17 @@ eslint-import-resolver-node@^0.3.6:
debug "^3.2.7" debug "^3.2.7"
resolve "^1.20.0" 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: eslint-module-utils@^2.7.1:
version "2.7.1" version "2.7.1"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" 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" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 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" version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==