---
id: addons
title: AddonsManager
sidebar_label: AddonsManager
---

## AddonsManager

The `AddonsManager` class provides a way to register, retrieve, and manage addons within the comty.js library.

**Class Overview:**

The `AddonsManager` class allows you to register addons, retrieve them by name, and find addons that implement specific operations. It uses a `Map` internally to store the registered addons.

### Properties

*   `addons`: A `Map` that stores the registered addons. The keys are the addon names, and the values are the addon instances.

### Methods

*   `register(name, addon)`
    *   Registers a new addon with the specified name.
    *   Parameters:
        *   `name`: *string* The name of the addon.
        *   `addon`: *object* The addon instance.
    *   Returns: void

*   `get(name)`
    *   Retrieves an addon by its name.
    *   Parameters:
        *   `name`: *string* The name of the addon to retrieve.
    *   Returns: *object | undefined* The addon instance if found, otherwise `undefined`.

*   `getByOperation(operation)`
    *   Searches all registered addons and returns an array of addons that have a function for the specified operation.
    *   Parameters:
        *   `operation`: *string* The name of the operation to search for.
    *   Returns: *Array[object]* An array of objects, where each object contains the addon's ID and the corresponding function for the specified operation. Each object has the following structure:
            *   `id`: *string* The ID of the addon (addon.constructor.id).
            *   `fn`: *function* The addon's function for the specified operation (addon[operation]).

### API Reference

*   `register(name: string, addon: object)`: void - Registers a new addon.
*   `get(name: string)`: object | undefined - Retrieves an addon by name.
*   `getByOperation(operation: string)`: Array[object] - Gets addons by operation.
