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
@ -16,7 +16,7 @@ import {getLView} from '@angular/core/src/render3/state';
|
||||
import {stringifyElement} from '@angular/platform-browser/testing/src/browser_util';
|
||||
|
||||
import {SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__ as R3_CHANGE_DETECTOR_REF_FACTORY} from '../../src/change_detection/change_detector_ref';
|
||||
import {Injector, SWITCH_INJECTOR_FACTORY__POST_R3__ as R3_INJECTOR_FACTORY} from '../../src/di/injector';
|
||||
import {Injector} from '../../src/di/injector';
|
||||
import {Type} from '../../src/interface/type';
|
||||
import {SWITCH_ELEMENT_REF_FACTORY__POST_R3__ as R3_ELEMENT_REF_FACTORY} from '../../src/linker/element_ref';
|
||||
import {SWITCH_TEMPLATE_REF_FACTORY__POST_R3__ as R3_TEMPLATE_REF_FACTORY} from '../../src/linker/template_ref';
|
||||
@ -368,7 +368,6 @@ export function enableIvyInjectableFactories() {
|
||||
R3_VIEW_CONTAINER_REF_FACTORY(ViewContainerRef, ElementRef);
|
||||
(ChangeDetectorRef as any)[NG_ELEMENT_ID] = () => R3_CHANGE_DETECTOR_REF_FACTORY();
|
||||
(Renderer2 as any)[NG_ELEMENT_ID] = () => R3_RENDERER2_FACTORY();
|
||||
(Injector as any)[NG_ELEMENT_ID] = () => R3_INJECTOR_FACTORY();
|
||||
}
|
||||
|
||||
export class MockRendererFactory implements RendererFactory3 {
|
||||
|
Reference in New Issue
Block a user