@flowscripter/dynamic-plugin-framework
    Preparing search index...

    Interface MarketplacePluginManager

    Extends PluginManager with marketplace-level search, install, uninstall, and update checking capabilities.

    A MarketplacePluginManager combines one or more remote MarketplacePluginRepository instances (for discovery) with a local VersionedPluginRepository (for loading and installation). The standard PluginManager methods delegate to an internal DefaultPluginManager backed by the local repository.

    interface MarketplacePluginManager {
        checkForUpdates(
            remote?: VersionedPluginRepository,
        ): AsyncIterable<
            {
                availableVersion: string;
                descriptor: Readonly<VersionedPluginDescriptor>;
            },
        >;
        getRegisteredExtensions(
            extensionPoint: string,
        ): Promise<readonly ExtensionInfo[]>;
        install(
            descriptor: Readonly<VersionedPluginDescriptor>,
            options?: { includeDependencies?: boolean },
        ): Promise<void>;
        instantiate(
            extensionHandle: string,
            hostData?: Map<string, string>,
        ): Promise<unknown>;
        listInstalled(): AsyncIterable<Readonly<VersionedPluginDescriptor>>;
        registerExtensions(extensionPoint: string): Promise<void>;
        search(
            query: Readonly<SearchQuery>,
        ): AsyncIterable<Readonly<VersionedPluginDescriptor>>;
        uninstall(pluginId: string): Promise<void>;
    }

    Hierarchy (View Summary)

    Implemented by

    Index

    Methods

    • Instantiate a specific Extension.

      Parameters

      • extensionHandle: string

        the opaque handle for the Extension provided by this Extension Manager instance via ExtensionInfo.extensionHandle.

      • OptionalhostData: Map<string, string>

        optional data to be passed in to the Extension when instantiating it.

      Returns Promise<unknown>

      an Extension instance implementing an Extension Point.

    • Scan for Plugins and register their Extensions which implement the specified Extension Point.

      Parameters

      • extensionPoint: string

        the Extension Point for which to register Extensions

      Returns Promise<void>

    • Remove a plugin from the local repository.

      Throws if another installed plugin declares a dependency on the plugin being removed.

      Parameters

      • pluginId: string

        the ID of the plugin to remove.

      Returns Promise<void>