@brainstack/inject
TypeScript icon, indicating that this package has built-in type declarations

1.2.142 • Public • Published

@brainstack/inject

A lightweight dependency injection library for JavaScript and TypeScript, designed to facilitate dependency management and injection in your projects.

Installation

You can install the package using npm:

npm install @brainstack/inject

Usage

Import the inject function and use it to create a dependency container. You can then register, get, and search for dependencies in the container.

Importing

import { inject, Dependency } from '@brainstack/inject';

Creating a Dependency Container

const container = inject();

Registering a Dependency

const dependency: Dependency = {
  id: 'testDependency',
  name: 'Test Dependency',
  description: 'A test dependency',
  instance: {
    /* your instantiated object */
  },
};

const unregister = container.register(dependency);

Getting a Dependency

const retrievedDependency = container.get('testDependency');

Searching for Dependencies

const searchResults = container.search('Test');

Complete Example

import { inject, Dependency } from '@brainstack/inject';

const container = inject();

const dependency: Dependency = {
  id: 'testDependency',
  name: 'Test Dependency',
  description: 'A test dependency',
  instance: {
    /* your instantiated object */
  },
};

const unregister = container.register(dependency);

const retrievedDependency = container.get('testDependency');

const searchResults = container.search('Test');

API

inject()

Creates a new dependency container.

Returns: Dependency container object with methods.

register(dependency: Dependency): () => void

Registers a new dependency in the container.

  • dependency: An object containing the dependency details (id, name, description, instance).

Returns: A function to unregister the dependency.

get(id: string): Dependency | undefined

Gets a dependency from the container by its ID.

  • id: The ID of the dependency.

Returns: The retrieved dependency or undefined if not found.

search(term: string): Dependency[]

Searches for dependencies by name or description containing the search term.

  • term: The search term.

Returns: An array of matching dependencies.

Contributing

Contributions are welcome! If you would like to contribute to this module, please follow these guidelines:

Fork the repository
Create a new branch for your changes
Make your changes and commit them with descriptive commit messages
Push your changes to your fork
Submit a pull request

License

This module is released under the MIT License.

Package Sidebar

Install

npm i @brainstack/inject

Weekly Downloads

133

Version

1.2.142

License

MIT

Unpacked Size

15.6 kB

Total Files

21

Last publish

Collaborators

  • amitbasunia
  • hgharbi
  • bincharkey
  • infinisoft-world