UNPKG

ditox-react

Version:

Dependency injection container for React.js

30 lines (29 loc) 841 B
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;