Skip to content

Commit cdaa2a8

Browse files
AndrewKushniralxhub
authored andcommittedJul 28, 2023
feat(core): support Provider type in Injector.create (#49587)
This commit updates the Injector.create function to accept the `Provider` type in addition to the `StaticProvider` type. This should make it easier to work with the Injector.create function and have less type casts if you have a list of `Provider`s available. PR Close #49587
1 parent 5061311 commit cdaa2a8

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed
 

‎goldens/public-api/core/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,7 @@ export abstract class Injector {
795795
// @deprecated (undocumented)
796796
static create(providers: StaticProvider[], parent?: Injector): Injector;
797797
static create(options: {
798-
providers: StaticProvider[];
798+
providers: Array<Provider | StaticProvider>;
799799
parent?: Injector;
800800
name?: string;
801801
}): Injector;

‎packages/core/src/di/create_injector.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {EMPTY_ARRAY} from '../util/empty';
1010
import {stringify} from '../util/stringify';
1111

1212
import {Injector} from './injector';
13-
import {StaticProvider} from './interface/provider';
13+
import {Provider, StaticProvider} from './interface/provider';
1414
import {importProvidersFrom} from './provider_collection';
1515
import {getNullInjector, R3Injector} from './r3_injector';
1616
import {InjectorScope} from './scope';
@@ -22,7 +22,7 @@ import {InjectorScope} from './scope';
2222
*/
2323
export function createInjector(
2424
defType: /* InjectorType<any> */ any, parent: Injector|null = null,
25-
additionalProviders: StaticProvider[]|null = null, name?: string): Injector {
25+
additionalProviders: Array<Provider|StaticProvider>|null = null, name?: string): Injector {
2626
const injector =
2727
createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);
2828
injector.resolveInjectorInitializers();
@@ -36,7 +36,7 @@ export function createInjector(
3636
*/
3737
export function createInjectorWithoutInjectorInstances(
3838
defType: /* InjectorType<any> */ any, parent: Injector|null = null,
39-
additionalProviders: StaticProvider[]|null = null, name?: string,
39+
additionalProviders: Array<Provider|StaticProvider>|null = null, name?: string,
4040
scopes = new Set<InjectorScope>()): R3Injector {
4141
const providers = [
4242
additionalProviders || EMPTY_ARRAY,

‎packages/core/src/di/injector.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {InjectorMarkers} from './injector_marker';
1313
import {INJECTOR} from './injector_token';
1414
import {ɵɵdefineInjectable} from './interface/defs';
1515
import {InjectFlags, InjectOptions} from './interface/injector';
16-
import {StaticProvider} from './interface/provider';
16+
import {Provider, StaticProvider} from './interface/provider';
1717
import {NullInjector} from './null_injector';
1818
import {ProviderToken} from './provider_token';
1919

@@ -104,11 +104,14 @@ export abstract class Injector {
104104
* @returns The new injector instance.
105105
*
106106
*/
107-
static create(options: {providers: StaticProvider[], parent?: Injector, name?: string}): Injector;
107+
static create(options:
108+
{providers: Array<Provider|StaticProvider>, parent?: Injector, name?: string}):
109+
Injector;
108110

109111

110112
static create(
111-
options: StaticProvider[]|{providers: StaticProvider[], parent?: Injector, name?: string},
113+
options: StaticProvider[]|
114+
{providers: Array<Provider|StaticProvider>, parent?: Injector, name?: string},
112115
parent?: Injector): Injector {
113116
if (Array.isArray(options)) {
114117
return createInjector({name: ''}, parent, options, '');

0 commit comments

Comments
 (0)
Please sign in to comment.