UNPKG

proxydi

Version:

A typed hierarchical DI container that resolves circular dependencies via Proxy

53 lines (34 loc) 1.63 kB
Refactoring plan for 0.4.x version: - ~~resolveAll() as container method~~ - ~~scope to resolve() and isKnown()~~ - Current+Parent by default - ~~remove allowRegisterAnything option~~ - allow register anything always - scope to @inject() - the same logic as in resolve() method - Split ResolveScope.Parent to ResolveScope.DirectParent and ResolveScope.FistAncestor - replace resolveInContainerContext option by contextResolve() method - polish baking: - remove public direct baking method - remember all baked instances to: - replace them by proxy after removing baked instance - replace baked instance in hierarchy if added new instance clother to client (depends on injected scope) - remove allowRewriteDependencies - register() always throws Error if dependency already exists - new replace() method as syntax sugar for remove()-register() chain - dependencies aliases: - strict separating between dependencyId and aliasId - aliases to @injectable() and register() - allow many dependencies by one aliasId - resolve first alias in @inject() and resolve() - remove container settings - add iniitialize() function to container constructor() const rootContainer = new ProxyDiContainer({initializer: (container) => { container.register(UserService); container.register(AuthService); }}) - rebranding aka rename: @inject() to @resolve() @injectAll to @resolveAll() (and remove current separaete resolveAll function) @injectable() to @resolvable() - make injectDependenciesTo() private?