Skip to content

Commit

Permalink
Strict null checks -- begin untangling dependency cycle (#8338)
Browse files Browse the repository at this point in the history
* getToken/refreshToken

* src/background/requests.ts

* src/contentScript/pageEditor/elementPicker.ts

* src/background/partnerIntegrations.ts

* whoops

* cleanup

* fix widget and getScopeAndId

* auto-add

* src/extensionConsole/pages/mods/GetStartedView.tsx

* src/mods/useModViewItems.tsx

* test memo compare dependencies

* fix scopeAndId tests

* autosuggest

* src/background/backgroundPlatform.ts

* src/background/restrictUnauthenticatedUrlAccess.ts

* src/bricks/effects/insertHtml.ts

* ./bricks/effects/runSubTour.ts

* ./bricks/effects/scrollIntoView.ts

* src/bricks/transformers/controlFlow/WithAsyncModVariable.ts

* mod state / variable context

* src/bricks/transformers/RunMetadataTransformer.ts

* src/bricks/transformers/splitText.ts

* src/components/fields/schemaFields/widgets/varPopup/useTreeRow.ts

* src/components/walkthroughModal/WalkthroughModalApp.tsx

* src/extensionConsole/pages/brickEditor/BrickHistory.tsx

* fix test

* src/extensionConsole/pages/mods/utils/exportBlueprint.ts

* src/extensionConsole/pages/mods/utils/exportBlueprint.ts

* src/pageScript/elementInfo.ts

* src/sidebar/LoginPanel.tsx

* src/testUtils/factories/authFactories.ts

* src/bricks/effects/attachAutocomplete.ts

* more bricks

* fix test

* src/components/fields/schemaFields/fieldTestUtils.ts

* add a bunch more

* the rest

* cleanup

* fix lint

* wip

* remove file

* remove logs

* fix factory

* update counts

* extensionPagePlatform

* partnerIntegrations

* update counts

* finding cycles

* documenting cycle

* move starterbricks into separate folders

* extract shared types from contextmenu

* migrate shared types for menuItemExtension

* migrate panel types; migrate more contextMenu types

* migrate more menuitem types

* migrate quickbar types

* migrate quickbar provider types

* migrate sidebar types

* migrate tour types

* update file paths

* auto-add

* fix types

* auto-add

* remove outdated cycle comments

---------

Co-authored-by: Ben Loe <[email protected]>
  • Loading branch information
grahamlangford and Ben Loe authored Apr 24, 2024
1 parent 30b58e0 commit 90f8b48
Show file tree
Hide file tree
Showing 60 changed files with 727 additions and 547 deletions.
4 changes: 2 additions & 2 deletions src/activation/useActivateRecipe.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import { renderHook } from "@/pageEditor/testHelpers";
import useActivateRecipe from "./useActivateRecipe";
import { validateRegistryId } from "@/types/helpers";
import { type StarterBrickConfig } from "@/starterBricks/types";
import { type MenuDefinition } from "@/starterBricks/contextMenu";
import { type ContextMenuDefinition } from "@/starterBricks/contextMenu/types";
import { uninstallRecipe } from "@/store/uninstallUtils";
import { type ModDefinition } from "@/types/modDefinitionTypes";
import extensionsSlice from "@/store/extensionsSlice";
Expand Down Expand Up @@ -74,7 +74,7 @@ function setupInputs(): {
},
reader: [validateRegistryId("@pixiebrix/document-metadata")],
},
}) as StarterBrickConfig<MenuDefinition>;
}) as StarterBrickConfig<ContextMenuDefinition>;
starterBrickConfig.definition.targetMode = "eventTarget";
starterBrickConfig.definition.contexts = ["all"];
starterBrickConfig.definition.documentUrlPatterns = ["*://*/*"];
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/analysisVisitors/selectorAnalysis.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
menuItemFormStateFactory,
triggerFormStateFactory,
} from "@/testUtils/factories/pageEditorFactories";
import type { AttachMode } from "@/starterBricks/menuItemExtension";
import type { AttachMode } from "@/starterBricks/menuItem/types";
import { HighlightEffect } from "@/bricks/effects/highlight";
import brickRegistry from "@/bricks/registry";
import { JQueryReader } from "@/bricks/transformers/jquery/JQueryReader";
Expand Down
12 changes: 6 additions & 6 deletions src/background/contextMenus.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,7 @@ import {
ensureContextMenu,
} from "@/background/contextMenus";
import extensionPointRegistry from "@/starterBricks/registry";
import {
type ContextMenuConfig,
fromJS,
type MenuDefinition,
} from "@/starterBricks/contextMenu";
import { fromJS } from "@/starterBricks/contextMenu/contextMenu";
import * as backgroundApi from "@/background/messenger/api";
import { type StarterBrickConfig } from "@/starterBricks/types";
import { type ModComponentBase } from "@/types/modComponentTypes";
Expand All @@ -33,6 +29,10 @@ import { TEST_setContext } from "webext-detect-page";
import { modComponentFactory } from "@/testUtils/factories/modComponentFactories";
import { starterBrickConfigFactory } from "@/testUtils/factories/modDefinitionFactories";
import { getPlatform } from "@/platform/platformContext";
import {
type ContextMenuDefinition,
type ContextMenuConfig,
} from "@/starterBricks/contextMenu/types";

TEST_setContext("background");

Expand Down Expand Up @@ -71,7 +71,7 @@ describe("contextMenus", () => {

it("preload context menu", async () => {
const extensionPoint =
starterBrickConfigFactory() as unknown as StarterBrickConfig<MenuDefinition>;
starterBrickConfigFactory() as unknown as StarterBrickConfig<ContextMenuDefinition>;
extensionPoint.definition.type = "contextMenu";
extensionPoint.definition.contexts = ["all"];

Expand Down
6 changes: 2 additions & 4 deletions src/background/contextMenus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@ import { handleMenuAction, notify } from "@/contentScript/messenger/strict/api";
import { waitForContentScript } from "@/background/contentScript";
import { expectContext } from "@/utils/expectContext";
import extensionPointRegistry from "@/starterBricks/registry";
import {
type ContextMenuConfig,
ContextMenuStarterBrickABC,
} from "@/starterBricks/contextMenu";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu/contextMenu";
import { getModComponentState } from "@/store/extensionsStorage";
import { resolveExtensionInnerDefinitions } from "@/registry/internal";
import { type UUID } from "@/types/stringTypes";
Expand All @@ -37,6 +34,7 @@ import { allSettled, memoizeUntilSettled } from "@/utils/promiseUtils";
import { ContextError } from "@/errors/genericErrors";
import { selectEventData } from "@/telemetry/deployments";
import type { SelectionMenuOptions } from "@/platform/platformTypes/contextMenuProtocol";
import { type ContextMenuConfig } from "@/starterBricks/contextMenu/types";

const MENU_PREFIX = "pixiebrix-";

Expand Down
12 changes: 6 additions & 6 deletions src/background/messenger/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,26 @@ import {
ensureContextMenu,
preloadContextMenus,
uninstallContextMenu,
} from "@/background/contextMenus"; // 218 strictNullCheck errors
} from "@/background/contextMenus"; // 213 strictNullCheck errors
import {
requestRunInAllFrames,
requestRunInOtherTabs,
requestRunInOpener,
requestRunInTarget,
requestRunInTop,
} from "@/background/executor"; // Depends on contentScript/messenger to pass strictNullCheck
import { getAvailableVersion } from "@/background/installer"; // 201 strictNullCheck errors
import { removeExtensionForEveryTab } from "@/background/removeExtensionForEveryTab"; // 218 strictNullCheck errors
import { debouncedActivateStarterMods as installStarterBlueprints } from "@/background/starterMods"; // 224 strictNullCheck errors
import { getAvailableVersion } from "@/background/installer"; // 196 strictNullCheck errors
import { removeExtensionForEveryTab } from "@/background/removeExtensionForEveryTab"; // 213 strictNullCheck errors
import { debouncedActivateStarterMods as installStarterBlueprints } from "@/background/starterMods"; // 219 strictNullCheck errors
import {
collectPerformanceDiagnostics,
initTelemetry,
pong,
recordEvent,
sendDeploymentAlert,
} from "@/background/telemetry"; // 197 strictNullCheck errors
} from "@/background/telemetry"; // Depends on contentScript/messenger to pass strictNullCheck

import { setCopilotProcessData } from "@/background/partnerHandlers"; // 29 strictNullCheck errors
import { setCopilotProcessData } from "@/background/partnerHandlers"; // Depends on contentScript/messenger to pass strictNullCheck

expectContext("background");

Expand Down
3 changes: 2 additions & 1 deletion src/background/messenger/strict/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import {
import type { NetworkRequestConfig } from "@/types/networkTypes";
import type { RemoteResponse } from "@/types/contract";
import { type SanitizedIntegrationConfig } from "@/integrations/integrationTypes";
import { type Nullishable } from "@/utils/nullishUtils";

export const showMySidePanel = getMethod("SHOW_MY_SIDE_PANEL", bg);
export const waitForContentScript = getMethod("WAIT_FOR_CONTENT_SCRIPT", bg);
Expand Down Expand Up @@ -101,7 +102,7 @@ export const performConfiguredRequestInBackground = getMethod(
"CONFIGURED_REQUEST",
bg,
) as <TData>(
integrationConfig: SanitizedIntegrationConfig | null,
integrationConfig: Nullishable<SanitizedIntegrationConfig>,
requestConfig: NetworkRequestConfig,
options: { interactiveLogin: boolean },
) => Promise<RemoteResponse<TData>>;
Expand Down
5 changes: 4 additions & 1 deletion src/bricks/effects/runSubTour.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

import { isTourInProgress, registerTour } from "@/starterBricks/tourController";
import {
isTourInProgress,
registerTour,
} from "@/starterBricks/tour/tourController";
import { uuidv4, validateRegistryId } from "@/types/helpers";
import pDefer from "p-defer";
import { RunSubTourEffect } from "@/bricks/effects/runSubTour";
Expand Down
2 changes: 1 addition & 1 deletion src/bricks/effects/runSubTour.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import { EffectABC } from "@/types/bricks/effectTypes";
import { type BrickArgs, type BrickOptions } from "@/types/runtimeTypes";
import { type Schema } from "@/types/schemaTypes";
import { runSubTour } from "@/starterBricks/tourController";
import { runSubTour } from "@/starterBricks/tour/tourController";
import { BusinessError } from "@/errors/businessErrors";
import { propertiesToSchema } from "@/utils/schemaUtils";

Expand Down
2 changes: 1 addition & 1 deletion src/bricks/effects/tourEffect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import {
markTourEnd,
markTourStart,
markTourStep,
} from "@/starterBricks/tourController";
} from "@/starterBricks/tour/tourController";
import { uuidv4, validateRegistryId } from "@/types/helpers";
import { isEmpty } from "lodash";
import { $safeFind } from "@/utils/domUtils";
Expand Down
5 changes: 4 additions & 1 deletion src/bricks/transformers/tourStep/tourStep.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ import { unsafeAssumeValidArg } from "@/runtime/runtimeTypes";
import ConsoleLogger from "@/utils/ConsoleLogger";
import { uuidv4, validateRegistryId } from "@/types/helpers";
import { type BrickOptions } from "@/types/runtimeTypes";
import { cancelAllTours, markTourStart } from "@/starterBricks/tourController";
import {
cancelAllTours,
markTourStart,
} from "@/starterBricks/tour/tourController";
import { tick } from "@/starterBricks/starterBrickTestUtils";
import { MultipleElementsFoundError } from "@/errors/businessErrors";
import { showPopover } from "@/contentScript/popoverDom";
Expand Down
5 changes: 4 additions & 1 deletion src/bricks/transformers/tourStep/tourStep.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ import { validateRegistryId } from "@/types/helpers";
import { isEmpty, noop } from "lodash";
import { awaitElement } from "@/bricks/effects/wait";
import { type PanelButton } from "@/types/sidebarTypes";
import { getCurrentTour, markTourStep } from "@/starterBricks/tourController";
import {
getCurrentTour,
markTourStep,
} from "@/starterBricks/tour/tourController";
import { addOverlay } from "@/bricks/transformers/tourStep/overlay";
import * as UNSAFE_panelController from "@/platform/panels/panelController";
import { AbortPanelAction } from "@/bricks/errors";
Expand Down
8 changes: 4 additions & 4 deletions src/components/BrickIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ import {
faWindowMaximize,
} from "@fortawesome/free-solid-svg-icons";
import { TriggerStarterBrickABC } from "@/starterBricks/triggerExtension";
import { MenuItemStarterBrickABC } from "@/starterBricks/menuItemExtension";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu";
import { PanelStarterBrickABC } from "@/starterBricks/panelExtension";
import { SidebarStarterBrickABC } from "@/starterBricks/sidebarExtension";
import { MenuItemStarterBrickABC } from "@/starterBricks/menuItem/menuItemExtension";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu/contextMenu";
import { PanelStarterBrickABC } from "@/starterBricks/panel/panelExtension";
import { SidebarStarterBrickABC } from "@/starterBricks/sidebar/sidebarExtension";
import getType from "@/runtime/getType";
import { type BrickType } from "@/runtime/runtimeTypes";
import { type Metadata } from "@/types/registryTypes";
Expand Down
4 changes: 2 additions & 2 deletions src/contentScript/lifecycle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import { type UUID } from "@/types/stringTypes";
import { type RegistryId } from "@/types/registryTypes";
import { RunReason } from "@/types/runtimeTypes";
import { type ResolvedModComponent } from "@/types/modComponentTypes";
import { type SidebarStarterBrickABC } from "@/starterBricks/sidebarExtension";
import { type SidebarStarterBrickABC } from "@/starterBricks/sidebar/sidebarExtension";
import {
getReloadOnNextNavigate,
setReloadOnNextNavigate,
Expand All @@ -46,7 +46,7 @@ import {
} from "@/utils/promiseUtils";
import { $safeFind } from "@/utils/domUtils";
import { onContextInvalidated } from "webext-events";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu/contextMenu";
import { ReusableAbortController } from "abort-utils";
import { isLoadedInIframe } from "@/utils/iframeUtils";
import { renderPanelsIfVisible } from "@/contentScript/sidebarController";
Expand Down
20 changes: 10 additions & 10 deletions src/contentScript/messenger/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,31 +30,31 @@ import {
queueReactivateTab,
reactivateTab,
removePersistedExtension,
} from "@/contentScript/lifecycle"; // 219 strictNullCheck errors
import { insertPanel } from "@/contentScript/pageEditor/insertPanel"; // 255 strictNullCheck errors
import { insertButton } from "@/contentScript/pageEditor/insertButton"; // 261 strictNullCheck errors
} from "@/contentScript/lifecycle"; // 214 strictNullCheck errors
import { insertPanel } from "@/contentScript/pageEditor/insertPanel"; // 216 strictNullCheck errors
import { insertButton } from "@/contentScript/pageEditor/insertButton"; // 222 strictNullCheck errors
import {
clearDynamicElements,
disableOverlay,
enableOverlay,
runExtensionPointReader,
updateDynamicElement,
} from "@/contentScript/pageEditor/dynamic"; // 228 strictNullCheck errors
} from "@/contentScript/pageEditor/dynamic"; // 217 strictNullCheck errors
import {
runBlockPreview,
resetTab,
runRendererBlock,
} from "@/contentScript/pageEditor"; // 258 strictNullCheck errors
import { runBrick } from "@/contentScript/executor"; // 134 strictNullCheck errors
import selectElement from "@/contentScript/pageEditor/selectElement"; // 235 strictNullCheck errors
} from "@/contentScript/pageEditor"; // 219 strictNullCheck errors
import { runBrick } from "@/contentScript/executor"; // Depends on background/messenger to pass strictNullCheck
import selectElement from "@/contentScript/pageEditor/selectElement"; // 196 strictNullCheck errors
import {
runHeadlessPipeline,
runMapArgs,
runRendererPipeline,
} from "@/contentScript/pipelineProtocol"; // Depends on background/messenger to pass strictNullCheck
import { reloadActivationEnhancements } from "@/contentScript/loadActivationEnhancementsCore"; // 194 strictNullCheck errors
import { getAttributeExamples } from "@/contentScript/pageEditor/elementInformation"; // 192 strictNullCheck errors
import { getCopilotHostData } from "@/contrib/automationanywhere/SetCopilotDataEffect"; // 19 strictNullCheck errors
import { reloadActivationEnhancements } from "@/contentScript/loadActivationEnhancementsCore"; // 187 strictNullCheck errors
import { getAttributeExamples } from "@/contentScript/pageEditor/elementInformation"; // 185 strictNullCheck errors
import { getCopilotHostData } from "@/contrib/automationanywhere/SetCopilotDataEffect"; // Depends on background/messenger to pass strictNullCheck
import { showBannerFromConfig } from "@/contentScript/integrations/deferredLoginController"; // Depends on background/messenger to pass strictNullCheck

expectContext("contentScript");
Expand Down
2 changes: 1 addition & 1 deletion src/contentScript/pageEditor/dynamic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import {
activateExtensionPanel,
showSidebar,
} from "@/contentScript/sidebarController";
import { type TourDefinition } from "@/starterBricks/tourExtension";
import { type TourDefinition } from "@/starterBricks/tour/types";
import { type JsonObject } from "type-fest";
import { type SelectorRoot } from "@/types/runtimeTypes";
import { type UUID } from "@/types/stringTypes";
Expand Down
10 changes: 5 additions & 5 deletions src/contentScript/pageEditor/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ import { type Except } from "type-fest";
import {
type PanelConfig,
type PanelDefinition,
} from "@/starterBricks/panelExtension";
} from "@/starterBricks/panel/types";
import {
type MenuDefinition,
type MenuItemDefinition,
type MenuItemStarterBrickConfig,
} from "@/starterBricks/menuItemExtension";
} from "@/starterBricks/menuItem/types";
import { type ElementInfo } from "@/utils/inference/selectorTypes";
import { type ModComponentBase } from "@/types/modComponentTypes";
import { type UUID } from "@/types/stringTypes";
Expand All @@ -53,12 +53,12 @@ export type PanelSelectionResult = {
containerInfo: ElementInfo;
};
export type ButtonDefinition = DynamicDefinition<
MenuDefinition,
MenuItemDefinition,
MenuItemStarterBrickConfig
>;
export type ButtonSelectionResult = {
uuid: UUID;
menu: Except<MenuDefinition, "defaultOptions" | "isAvailable" | "reader">;
menu: Except<MenuItemDefinition, "defaultOptions" | "isAvailable" | "reader">;
item: Pick<MenuItemStarterBrickConfig, "caption">;
containerInfo: ElementInfo;
};
Expand Down
3 changes: 2 additions & 1 deletion src/contentScript/partnerIntegrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ async function markPartnerIntegrations() {
const principal = principals.find(
(principal) => principal.hostname === location.hostname,
);
if (principal) {

if (principal?.principalId) {
document.documentElement.setAttribute(
INTEGRATION_ATTR,
principal.principalId,
Expand Down
2 changes: 1 addition & 1 deletion src/extensionPages/extensionPagePlatform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class ExtensionPagePlatform extends PlatformBase {
requestConfig: NetworkRequestConfig,
): Promise<RemoteResponse<TData>> {
const integration = await integrationRegistry.lookup(
integrationConfig.serviceId,
integrationConfig?.serviceId,
);

// Use the background messenger to perform 3rd party API calls that may require refreshing credentials so that
Expand Down
4 changes: 2 additions & 2 deletions src/pageEditor/panes/save/saveHelpers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import {
import { produce } from "immer";
import { makeInternalId } from "@/registry/internal";
import { cloneDeep, range, uniq } from "lodash";
import { type MenuDefinition } from "@/starterBricks/menuItemExtension";
import { type MenuItemDefinition } from "@/starterBricks/menuItem/types";
import extensionsSlice from "@/store/extensionsSlice";
import {
type StarterBrickConfig,
Expand Down Expand Up @@ -269,7 +269,7 @@ describe("replaceModComponent round trip", () => {
modDefinition.definitions.extensionPoint,
);
(
draft.definitions.extensionPoint2.definition as MenuDefinition
draft.definitions.extensionPoint2.definition as MenuItemDefinition
).template = newTemplate;
draft.extensionPoints[0].id = "extensionPoint2" as InnerDefinitionRef;
draft.extensionPoints[0].label = "New Label";
Expand Down
2 changes: 1 addition & 1 deletion src/pageEditor/slices/editorSlice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ import {
getInstalledExtensionPoints,
} from "@/contentScript/messenger/api";
import { resolveExtensionInnerDefinitions } from "@/registry/internal";
import { QuickBarStarterBrickABC } from "@/starterBricks/quickBarExtension";
import { QuickBarStarterBrickABC } from "@/starterBricks/quickBar/quickBarExtension";
import { testMatchPatterns } from "@/bricks/available";
import { BusinessError } from "@/errors/businessErrors";
import { serializeError } from "serialize-error";
Expand Down
14 changes: 7 additions & 7 deletions src/pageEditor/starterBricks/contextMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@ import {
selectIsAvailable,
} from "@/pageEditor/starterBricks/base";
import { type StarterBrickConfig } from "@/starterBricks/types";
import {
type ContextMenuConfig,
ContextMenuStarterBrickABC,
type MenuDefinition,
} from "@/starterBricks/contextMenu";
import { ContextMenuStarterBrickABC } from "@/starterBricks/contextMenu/contextMenu";
import { faBars } from "@fortawesome/free-solid-svg-icons";
import { type ElementConfig } from "@/pageEditor/starterBricks/elementConfig";
import ContextMenuConfiguration from "@/pageEditor/tabs/contextMenu/ContextMenuConfiguration";
import type { DynamicDefinition } from "@/contentScript/pageEditor/types";
import { type ContextMenuFormState } from "./formStateTypes";
import { omitEditorMetadata } from "./pipelineMapping";
import { type SingleLayerReaderConfig } from "@/pageEditor/baseFormStateTypes";
import {
type ContextMenuDefinition,
type ContextMenuConfig,
} from "@/starterBricks/contextMenu/types";

function fromNativeElement(
url: string,
Expand Down Expand Up @@ -81,7 +81,7 @@ function fromNativeElement(

function selectExtensionPointConfig(
formState: ContextMenuFormState,
): StarterBrickConfig<MenuDefinition> {
): StarterBrickConfig<ContextMenuDefinition> {
const { extensionPoint } = formState;
const {
definition: {
Expand Down Expand Up @@ -127,7 +127,7 @@ async function fromExtension(
config: ModComponentBase<ContextMenuConfig>,
): Promise<ContextMenuFormState> {
const extensionPoint = await lookupExtensionPoint<
MenuDefinition,
ContextMenuDefinition,
ContextMenuConfig,
"contextMenu"
>(config, "contextMenu");
Expand Down
Loading

0 comments on commit 90f8b48

Please sign in to comment.