ditox-react
Version:
Dependency injection container for React.js
30 lines (29 loc) • 841 B
TypeScript
import type { Module, ModuleDeclaration } from 'ditox';
import { ReactElement, ReactNode } from 'react';
/**
* Binds the module to a new dependency container.
*
* If a parent container is exist, it is connected to the current one by default.
*
* @param params.module - Module declaration for binding
* @param params.scope - Optional scope for binding: `singleton` (default) or `scoped`.
*
* @example
*
* ```tsx
* const LOGGER_MODULE: ModuleDeclaration<LoggerModule> = {
*
* function App() {
* return (
* <DependencyModule module={LOGGER_MODULE}>
* <NestedComponent />
* </DependencyModule>
* );
* }
* ```
*/
export declare function DependencyModule(params: {
children: ReactNode;
module: ModuleDeclaration<Module<Record<string, unknown>>>;
scope?: 'scoped' | 'singleton';
}): ReactElement;