react-obsidian
Version:
Dependency injection framework for React and React Native applications
15 lines (12 loc) • 500 B
text/typescript
import { Graph } from '../../graph/Graph';
import providedPropertiesStore from '../../ProvidedPropertiesStore';
import { memoizeDescriptor } from './MemoizeDescriptor';
interface ProvidesParams {
name: string;
}
export function Provides({ name }: Partial<ProvidesParams> = {}) {
return function provide(graph: Graph, propertyKey: string, descriptor: PropertyDescriptor) {
providedPropertiesStore.set(graph, propertyKey, name!);
return memoizeDescriptor(propertyKey, descriptor);
};
}