static-injector 5.0.2 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/import/change_detection/scheduling/zoneless_scheduling.d.ts +37 -0
- package/import/change_detection/scheduling/zoneless_scheduling_impl.d.ts +16 -0
- package/import/core_reactivity_export_internal.d.ts +17 -0
- package/import/di/contextual.d.ts +36 -0
- package/{typings → import}/di/create_injector.d.ts +1 -1
- package/{typings → import}/di/forward_ref.d.ts +2 -2
- package/import/di/index.d.ts +3 -0
- package/{typings → import}/di/initializer_token.d.ts +8 -1
- package/{typings → import}/di/inject_switch.d.ts +2 -2
- package/{typings → import}/di/injectable.d.ts +2 -2
- package/{typings → import}/di/injection_token.d.ts +3 -4
- package/{typings → import}/di/injector.d.ts +1 -1
- package/{typings → import}/di/injector_compatibility.d.ts +1 -1
- package/{typings → import}/di/injector_marker.d.ts +1 -1
- package/{typings → import}/di/injector_token.d.ts +1 -1
- package/{typings → import}/di/interface/defs.d.ts +1 -1
- package/{typings → import}/di/interface/injector.d.ts +1 -1
- package/{typings → import}/di/interface/provider.d.ts +1 -1
- package/{typings → import}/di/internal_tokens.d.ts +1 -1
- package/{typings → import}/di/metadata.d.ts +5 -9
- package/{typings → import}/di/null_injector.d.ts +1 -1
- package/{typings → import}/di/provider_collection.d.ts +31 -3
- package/{typings → import}/di/provider_token.d.ts +1 -1
- package/{typings → import}/di/r3_injector.d.ts +2 -2
- package/{typings → import}/di/scope.d.ts +1 -1
- package/{typings → import}/di.d.ts +1 -1
- package/import/error_handler.d.ts +45 -0
- package/{typings → import}/errors.d.ts +9 -7
- package/import/index.d.ts +37 -0
- package/{typings → import}/interface/lifecycle_hooks.d.ts +1 -1
- package/{typings → import}/interface/type.d.ts +4 -9
- package/import/linker/destroy_ref.d.ts +44 -0
- package/import/pending_tasks.d.ts +78 -0
- package/{typings → import}/render3/definition_factory.d.ts +1 -1
- package/{typings → import}/render3/errors_di.d.ts +1 -1
- package/{typings → import}/render3/fields.d.ts +1 -1
- package/{typings → import}/render3/instructions/di.d.ts +1 -1
- package/import/render3/reactivity/api.d.ts +27 -0
- package/import/render3/reactivity/asserts.d.ts +16 -0
- package/import/render3/reactivity/computed.d.ts +25 -0
- package/import/render3/reactivity/effect.d.ts +121 -0
- package/import/render3/reactivity/linked_signal.d.ts +33 -0
- package/import/render3/reactivity/microtask_effect.d.ts +21 -0
- package/import/render3/reactivity/patch.d.ts +11 -0
- package/import/render3/reactivity/root_effect_scheduler.d.ts +54 -0
- package/import/render3/reactivity/signal.d.ts +61 -0
- package/import/render3/reactivity/untracked.d.ts +12 -0
- package/import/resource/api.d.ts +219 -0
- package/{es2022/di/injectable.js → import/resource/index.d.ts} +3 -2
- package/import/resource/resource.d.ts +89 -0
- package/import/util/callback_scheduler.d.ts +35 -0
- package/{typings → import}/util/closure.d.ts +1 -1
- package/{typings → import}/util/decorators.d.ts +3 -3
- package/{typings → import}/util/empty.d.ts +1 -1
- package/{es2022/di/provider_token.js → import/util/noop.d.ts} +2 -2
- package/{typings → import}/util/property.d.ts +1 -1
- package/{typings → import}/util/stringify.d.ts +1 -1
- package/index.js +2349 -0
- package/index.js.map +7 -0
- package/index.mjs +2258 -0
- package/index.mjs.map +7 -0
- package/package.json +22 -11
- package/primitives/signals/index.d.ts +15 -0
- package/primitives/signals/src/computed.d.ts +55 -0
- package/primitives/signals/src/equality.d.ts +15 -0
- package/primitives/signals/src/errors.d.ts +10 -0
- package/primitives/signals/src/graph.d.ts +182 -0
- package/primitives/signals/src/linked_signal.d.ts +72 -0
- package/primitives/signals/src/signal.d.ts +29 -0
- package/primitives/signals/src/watch.d.ts +43 -0
- package/{es2022/di/injector_marker.js → primitives/signals/src/weak_ref.d.ts} +2 -2
- package/readme.md +19 -15
- package/commonjs/index.js +0 -1586
- package/es2022/di/create_injector.js +0 -32
- package/es2022/di/forward_ref.js +0 -80
- package/es2022/di/index.js +0 -1
- package/es2022/di/initializer_token.js +0 -15
- package/es2022/di/inject_switch.js +0 -51
- package/es2022/di/injection_token.js +0 -93
- package/es2022/di/injector.js +0 -60
- package/es2022/di/injector_compatibility.js +0 -265
- package/es2022/di/injector_token.js +0 -20
- package/es2022/di/interface/defs.js +0 -110
- package/es2022/di/interface/injector.js +0 -26
- package/es2022/di/interface/provider.js +0 -10
- package/es2022/di/internal_tokens.js +0 -9
- package/es2022/di/metadata.js +0 -48
- package/es2022/di/null_injector.js +0 -19
- package/es2022/di/provider_collection.js +0 -104
- package/es2022/di/r3_injector.js +0 -449
- package/es2022/di/scope.js +0 -14
- package/es2022/di.js +0 -24
- package/es2022/errors.js +0 -44
- package/es2022/index.js +0 -19
- package/es2022/interface/lifecycle_hooks.js +0 -8
- package/es2022/interface/type.js +0 -21
- package/es2022/render3/definition_factory.js +0 -10
- package/es2022/render3/errors_di.js +0 -13
- package/es2022/render3/fields.js +0 -22
- package/es2022/render3/instructions/di.js +0 -23
- package/es2022/render3/util/stringify_utils.js +0 -38
- package/es2022/util/closure.js +0 -19
- package/es2022/util/decorators.js +0 -31
- package/es2022/util/empty.js +0 -18
- package/es2022/util/property.js +0 -15
- package/es2022/util/stringify.js +0 -45
- package/fesm2022/index.js +0 -1547
- package/typings/di/index.d.ts +0 -1
- package/typings/index.d.ts +0 -18
- package/typings/render3/util/stringify_utils.d.ts +0 -21
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { getClosureSafeProperty } from '../../util/property';
|
|
9
|
-
/**
|
|
10
|
-
* Construct an injectable definition which defines how a token will be constructed by the DI
|
|
11
|
-
* system, and in which injectors (if any) it will be available.
|
|
12
|
-
*
|
|
13
|
-
* This should be assigned to a static `ɵprov` field on a type, which will then be an
|
|
14
|
-
* `InjectableType`.
|
|
15
|
-
*
|
|
16
|
-
* Options:
|
|
17
|
-
* * `providedIn` determines which injectors will include the injectable, by either associating it
|
|
18
|
-
* with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be
|
|
19
|
-
* provided in the `'root'` injector, which will be the application-level injector in most apps.
|
|
20
|
-
* * `factory` gives the zero argument function which will create an instance of the injectable.
|
|
21
|
-
* The factory can call [`inject`](api/core/inject) to access the `Injector` and request injection
|
|
22
|
-
* of dependencies.
|
|
23
|
-
*
|
|
24
|
-
* @codeGenApi
|
|
25
|
-
* @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.
|
|
26
|
-
*/
|
|
27
|
-
export function ɵɵdefineInjectable(opts) {
|
|
28
|
-
return {
|
|
29
|
-
token: opts.token,
|
|
30
|
-
providedIn: opts.providedIn || null,
|
|
31
|
-
factory: opts.factory,
|
|
32
|
-
value: undefined,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Construct an `InjectorDef` which configures an injector.
|
|
37
|
-
*
|
|
38
|
-
* This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an
|
|
39
|
-
* `InjectorType`.
|
|
40
|
-
*
|
|
41
|
-
* Options:
|
|
42
|
-
*
|
|
43
|
-
* * `providers`: an optional array of providers to add to the injector. Each provider must
|
|
44
|
-
* either have a factory or point to a type which has a `ɵprov` static property (the
|
|
45
|
-
* type must be an `InjectableType`).
|
|
46
|
-
* * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s
|
|
47
|
-
* whose providers will also be added to the injector. Locally provided types will override
|
|
48
|
-
* providers from imports.
|
|
49
|
-
*
|
|
50
|
-
* @codeGenApi
|
|
51
|
-
*/
|
|
52
|
-
export function ɵɵdefineInjector(options) {
|
|
53
|
-
return { providers: options.providers || [], imports: options.imports || [] };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading
|
|
57
|
-
* inherited value.
|
|
58
|
-
*
|
|
59
|
-
* @param type A type which may have its own (non-inherited) `ɵprov`.
|
|
60
|
-
*/
|
|
61
|
-
export function getInjectableDef(type) {
|
|
62
|
-
return (getOwnDefinition(type, NG_PROV_DEF) || {
|
|
63
|
-
token: type,
|
|
64
|
-
factory: () => new type(),
|
|
65
|
-
...type.injectOptions,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
export function isInjectable(type) {
|
|
69
|
-
return getInjectableDef(type) !== null;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Return definition only if it is defined directly on `type` and is not inherited from a base
|
|
73
|
-
* class of `type`.
|
|
74
|
-
*/
|
|
75
|
-
function getOwnDefinition(type, field) {
|
|
76
|
-
return type.hasOwnProperty(field) ? type[field] : null;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.
|
|
80
|
-
*
|
|
81
|
-
* @param type A type which may have `ɵprov`, via inheritance.
|
|
82
|
-
*
|
|
83
|
-
* @deprecated Will be removed in a future version of Angular, where an error will occur in the
|
|
84
|
-
* scenario if we find the `ɵprov` on an ancestor only.
|
|
85
|
-
*/
|
|
86
|
-
export function getInheritedInjectableDef(type) {
|
|
87
|
-
const def = type && (type[NG_PROV_DEF] || null);
|
|
88
|
-
if (def) {
|
|
89
|
-
return def;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Read the injector def type in a way which is immune to accidentally reading inherited value.
|
|
97
|
-
*
|
|
98
|
-
* @param type type which may have an injector def (`ɵinj`)
|
|
99
|
-
*/
|
|
100
|
-
export function getInjectorDef(type) {
|
|
101
|
-
return type && (type.hasOwnProperty(NG_INJ_DEF) || false)
|
|
102
|
-
? type[NG_INJ_DEF]
|
|
103
|
-
: null;
|
|
104
|
-
}
|
|
105
|
-
export const NG_PROV_DEF = getClosureSafeProperty({
|
|
106
|
-
ɵprov: getClosureSafeProperty,
|
|
107
|
-
});
|
|
108
|
-
export const NG_INJ_DEF = getClosureSafeProperty({
|
|
109
|
-
ɵinj: getClosureSafeProperty,
|
|
110
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Injection flags for DI.
|
|
10
|
-
*
|
|
11
|
-
* @publicApi
|
|
12
|
-
* @deprecated use an options object for [`inject`](api/core/inject) instead.
|
|
13
|
-
*/
|
|
14
|
-
export var InjectFlags;
|
|
15
|
-
(function (InjectFlags) {
|
|
16
|
-
// TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer
|
|
17
|
-
// writes exports of it into ngfactory files.
|
|
18
|
-
/** Check self and check parent injector if needed */
|
|
19
|
-
InjectFlags[InjectFlags["Default"] = 0] = "Default";
|
|
20
|
-
/** Don't ascend to ancestors of the node requesting injection. */
|
|
21
|
-
InjectFlags[InjectFlags["Self"] = 2] = "Self";
|
|
22
|
-
/** Skip the node that is requesting injection. */
|
|
23
|
-
InjectFlags[InjectFlags["SkipSelf"] = 4] = "SkipSelf";
|
|
24
|
-
/** Inject `defaultValue` instead if token not found. */
|
|
25
|
-
InjectFlags[InjectFlags["Optional"] = 8] = "Optional";
|
|
26
|
-
})(InjectFlags || (InjectFlags = {}));
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
export function isEnvironmentProviders(value) {
|
|
9
|
-
return value && !!value.ɵproviders;
|
|
10
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { InjectionToken } from './injection_token';
|
|
9
|
-
export const INJECTOR_DEF_TYPES = new InjectionToken('');
|
package/es2022/di/metadata.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { makeParamDecorator } from '../util/decorators';
|
|
9
|
-
import { attachInjectFlag } from './injector_compatibility';
|
|
10
|
-
/**
|
|
11
|
-
* Inject decorator and metadata.
|
|
12
|
-
*
|
|
13
|
-
* @Annotation
|
|
14
|
-
* @publicApi
|
|
15
|
-
*/
|
|
16
|
-
export const Inject = attachInjectFlag(
|
|
17
|
-
// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.
|
|
18
|
-
makeParamDecorator('Inject', (token) => ({ token })), -1 /* DecoratorFlags.Inject */);
|
|
19
|
-
/**
|
|
20
|
-
* Optional decorator and metadata.
|
|
21
|
-
*
|
|
22
|
-
* @Annotation
|
|
23
|
-
* @publicApi
|
|
24
|
-
*/
|
|
25
|
-
export const Optional =
|
|
26
|
-
// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
|
|
27
|
-
// tslint:disable-next-line: no-toplevel-property-access
|
|
28
|
-
attachInjectFlag(makeParamDecorator('Optional'), 8 /* InternalInjectFlags.Optional */);
|
|
29
|
-
/**
|
|
30
|
-
* Self decorator and metadata.
|
|
31
|
-
*
|
|
32
|
-
* @Annotation
|
|
33
|
-
* @publicApi
|
|
34
|
-
*/
|
|
35
|
-
export const Self =
|
|
36
|
-
// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
|
|
37
|
-
// tslint:disable-next-line: no-toplevel-property-access
|
|
38
|
-
attachInjectFlag(makeParamDecorator('Self'), 2 /* InternalInjectFlags.Self */);
|
|
39
|
-
/**
|
|
40
|
-
* `SkipSelf` decorator and metadata.
|
|
41
|
-
*
|
|
42
|
-
* @Annotation
|
|
43
|
-
* @publicApi
|
|
44
|
-
*/
|
|
45
|
-
export const SkipSelf =
|
|
46
|
-
// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
|
|
47
|
-
// tslint:disable-next-line: no-toplevel-property-access
|
|
48
|
-
attachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* InternalInjectFlags.SkipSelf */);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { stringify } from '../util/stringify';
|
|
9
|
-
import { THROW_IF_NOT_FOUND } from './injector_compatibility';
|
|
10
|
-
export class NullInjector {
|
|
11
|
-
get(token, notFoundValue = THROW_IF_NOT_FOUND) {
|
|
12
|
-
if (notFoundValue === THROW_IF_NOT_FOUND) {
|
|
13
|
-
const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);
|
|
14
|
-
error.name = 'NullInjectorError';
|
|
15
|
-
throw error;
|
|
16
|
-
}
|
|
17
|
-
return notFoundValue;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { getClosureSafeProperty } from '../util/property';
|
|
9
|
-
/**
|
|
10
|
-
* Wrap an array of `Provider`s into `EnvironmentProviders`, preventing them from being accidentally
|
|
11
|
-
* referenced in `@Component` in a component injector.
|
|
12
|
-
*/
|
|
13
|
-
export function makeEnvironmentProviders(providers) {
|
|
14
|
-
return {
|
|
15
|
-
ɵproviders: providers,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Collects providers from all NgModules and standalone components, including transitively imported
|
|
20
|
-
* ones.
|
|
21
|
-
*
|
|
22
|
-
* Providers extracted via `importProvidersFrom` are only usable in an application injector or
|
|
23
|
-
* another environment injector (such as a route injector). They should not be used in component
|
|
24
|
-
* providers.
|
|
25
|
-
*
|
|
26
|
-
* More information about standalone components can be found in [this
|
|
27
|
-
* guide](guide/components/importing).
|
|
28
|
-
*
|
|
29
|
-
* @usageNotes
|
|
30
|
-
* The results of the `importProvidersFrom` call can be used in the `bootstrapApplication` call:
|
|
31
|
-
*
|
|
32
|
-
* ```typescript
|
|
33
|
-
* await bootstrapApplication(RootComponent, {
|
|
34
|
-
* providers: [
|
|
35
|
-
* importProvidersFrom(NgModuleOne, NgModuleTwo)
|
|
36
|
-
* ]
|
|
37
|
-
* });
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* You can also use the `importProvidersFrom` results in the `providers` field of a route, when a
|
|
41
|
-
* standalone component is used:
|
|
42
|
-
*
|
|
43
|
-
* ```typescript
|
|
44
|
-
* export const ROUTES: Route[] = [
|
|
45
|
-
* {
|
|
46
|
-
* path: 'foo',
|
|
47
|
-
* providers: [
|
|
48
|
-
* importProvidersFrom(NgModuleOne, NgModuleTwo)
|
|
49
|
-
* ],
|
|
50
|
-
* component: YourStandaloneComponent
|
|
51
|
-
* }
|
|
52
|
-
* ];
|
|
53
|
-
* ```
|
|
54
|
-
*
|
|
55
|
-
* @returns Collected providers from the specified list of types.
|
|
56
|
-
* @publicApi
|
|
57
|
-
*/
|
|
58
|
-
export function importProvidersFrom(...sources) {
|
|
59
|
-
return {
|
|
60
|
-
ɵproviders: internalImportProvidersFrom(true, sources),
|
|
61
|
-
ɵfromNgModule: true,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
export function internalImportProvidersFrom(checkForStandaloneCmp, ...sources) {
|
|
65
|
-
const providersOut = [];
|
|
66
|
-
const dedup = new Set(); // already seen types
|
|
67
|
-
let injectorTypesWithProviders;
|
|
68
|
-
const collectProviders = (provider) => {
|
|
69
|
-
providersOut.push(provider);
|
|
70
|
-
};
|
|
71
|
-
// Collect all providers from `ModuleWithProviders` types.
|
|
72
|
-
if (injectorTypesWithProviders !== undefined) {
|
|
73
|
-
processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders);
|
|
74
|
-
}
|
|
75
|
-
return providersOut;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Collects all providers from the list of `ModuleWithProviders` and appends them to the provided
|
|
79
|
-
* array.
|
|
80
|
-
*/
|
|
81
|
-
function processInjectorTypesWithProviders(typesWithProviders, visitor) {
|
|
82
|
-
for (let i = 0; i < typesWithProviders.length; i++) {
|
|
83
|
-
const { ngModule, providers } = typesWithProviders[i];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export const USE_VALUE = getClosureSafeProperty({
|
|
87
|
-
provide: String,
|
|
88
|
-
useValue: getClosureSafeProperty,
|
|
89
|
-
});
|
|
90
|
-
export function isValueProvider(value) {
|
|
91
|
-
return value !== null && typeof value == 'object' && USE_VALUE in value;
|
|
92
|
-
}
|
|
93
|
-
export function isExistingProvider(value) {
|
|
94
|
-
return !!(value && value.useExisting);
|
|
95
|
-
}
|
|
96
|
-
export function isFactoryProvider(value) {
|
|
97
|
-
return !!(value && value.useFactory);
|
|
98
|
-
}
|
|
99
|
-
export function isTypeProvider(value) {
|
|
100
|
-
return typeof value === 'function';
|
|
101
|
-
}
|
|
102
|
-
export function isClassProvider(value) {
|
|
103
|
-
return !!value.useClass;
|
|
104
|
-
}
|