A lightweight dependency injection library for JavaScript and TypeScript, designed to facilitate dependency management and injection in your projects.
You can install the package using npm:
npm install @brainstack/inject
Import the inject
function and use it to create a dependency container. You can then register, get, and search for dependencies in the container.
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');
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');
Creates a new dependency container.
Returns: Dependency container object with methods.
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.
Gets a dependency from the container by its ID.
-
id
: The ID of the dependency.
Returns: The retrieved dependency or undefined
if not found.
Searches for dependencies by name or description containing the search term.
-
term
: The search term.
Returns: An array of matching dependencies.
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
This module is released under the MIT License.