refactor(ivy): create Injector interface; remove dependency on Ivy (#28066)
This change is a prerequasity for a later change which will turn the 'di' into its own bazel package. In order to do that we have to: - have `Injector` type be importable by Ivy. This means that we need to create `Injector` as a pure type in `interface` folder which is already a bazel package which Ivy can depend on. - Remove the dependency of `class Injector` on Ivy so that it can be compiled in isolation. We do that by using `-1` as special value for `__NG_ELEMENT_ID__` which tells the Ivy `NodeInjector` than `Injector` is being requested. PR Close #28066
This commit is contained in:

committed by
Andrew Kushnir

parent
e082fc24b2
commit
fca185e191
@ -7,20 +7,20 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @module
|
||||
* @description
|
||||
* The `di` module provides dependency injection container services.
|
||||
* This file should not be necessary because node resolution should just default to `./di/index`!
|
||||
*
|
||||
* However it does not seem to work and it breaks:
|
||||
* - //packages/animations/browser/test:test_web_chromium-local
|
||||
* - //packages/compiler-cli/test:extract_i18n
|
||||
* - //packages/compiler-cli/test:ngc
|
||||
* - //packages/compiler-cli/test:perform_watch
|
||||
* - //packages/compiler-cli/test/diagnostics:check_types
|
||||
* - //packages/compiler-cli/test/transformers:test
|
||||
* - //packages/compiler/test:test
|
||||
* - //tools/public_api_guard:core_api
|
||||
*
|
||||
* Remove this file once the above is solved or wait until `ngc` is deleted and then it should be
|
||||
* safe to delete this file.
|
||||
*/
|
||||
|
||||
export * from './di/metadata';
|
||||
export {InjectableType, InjectorType, defineInjectable, defineInjector} from './di/interface/defs';
|
||||
export {forwardRef, resolveForwardRef, ForwardRefFn} from './di/forward_ref';
|
||||
export {Injectable, InjectableDecorator, InjectableProvider} from './di/injectable';
|
||||
export {INJECTOR, Injector} from './di/injector';
|
||||
export {inject, InjectFlags} from './di/injector_compatibility';
|
||||
export {ReflectiveInjector} from './di/reflective_injector';
|
||||
export {StaticProvider, ValueProvider, ConstructorSansProvider, ExistingProvider, FactoryProvider, Provider, TypeProvider, ClassProvider} from './di/interface/provider';
|
||||
export {createInjector} from './di/r3_injector';
|
||||
export {ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './di/reflective_provider';
|
||||
export {ReflectiveKey} from './di/reflective_key';
|
||||
export {InjectionToken} from './di/injection_token';
|
||||
export * from './di/index';
|
||||
|
Reference in New Issue
Block a user