@alterior/di 3.0.0-rc.5 → 3.0.0
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/dist/index.js +1 -1
- package/dist/injection/facade/errors.js +4 -9
- package/dist/injection/facade/errors.js.map +1 -1
- package/dist/injection/facade/lang.js +8 -11
- package/dist/injection/facade/lang.js.map +1 -1
- package/dist/injection/forward_ref.js +1 -1
- package/dist/injection/forward_ref.js.map +1 -1
- package/dist/injection/forward_ref.test.js.map +1 -1
- package/dist/injection/index.js +1 -1
- package/dist/injection/injection_token.js +13 -17
- package/dist/injection/injection_token.js.map +1 -1
- package/dist/injection/injector.js +11 -18
- package/dist/injection/injector.js.map +1 -1
- package/dist/injection/injector.test.js.map +1 -1
- package/dist/injection/metadata/annotations.js +38 -65
- package/dist/injection/metadata/annotations.js.map +1 -1
- package/dist/injection/metadata/decorators.js +1 -1
- package/dist/injection/metadata/decorators.js.map +1 -1
- package/dist/injection/metadata/index.js +1 -1
- package/dist/injection/reflection/reflection.js +2 -2
- package/dist/injection/reflection/reflection.js.map +1 -1
- package/dist/injection/reflection/reflection_capabilities.js +68 -75
- package/dist/injection/reflection/reflection_capabilities.js.map +1 -1
- package/dist/injection/reflection/reflector.js +32 -36
- package/dist/injection/reflection/reflector.js.map +1 -1
- package/dist/injection/reflection/reflector_reader.js +2 -5
- package/dist/injection/reflection/reflector_reader.js.map +1 -1
- package/dist/injection/reflective_errors.js +19 -19
- package/dist/injection/reflective_errors.js.map +1 -1
- package/dist/injection/reflective_injector.js +95 -110
- package/dist/injection/reflective_injector.js.map +1 -1
- package/dist/injection/reflective_injector.test.js.map +1 -1
- package/dist/injection/reflective_key.js +30 -44
- package/dist/injection/reflective_key.js.map +1 -1
- package/dist/injection/reflective_key.test.js.map +1 -1
- package/dist/injection/reflective_provider.js +48 -55
- package/dist/injection/reflective_provider.js.map +1 -1
- package/dist/modules.js +11 -13
- package/dist/modules.js.map +1 -1
- package/dist/test.js.map +1 -1
- package/package.json +4 -4
|
@@ -9,40 +9,33 @@
|
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.ReflectionCapabilities = exports.DELEGATE_CTOR = void 0;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var annotations_1 = require("@alterior/annotations");
|
|
12
|
+
const lang_1 = require("../facade/lang");
|
|
13
|
+
const type_1 = require("../facade/type");
|
|
14
|
+
const annotations_1 = require("@alterior/annotations");
|
|
16
15
|
/**
|
|
17
16
|
* Attention: This regex has to hold even if the code is minified!
|
|
18
17
|
*/
|
|
19
18
|
exports.DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/;
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
class ReflectionCapabilities {
|
|
20
|
+
constructor(reflect) {
|
|
22
21
|
this._reflect = reflect || lang_1.global['Reflect'];
|
|
23
22
|
}
|
|
24
|
-
|
|
23
|
+
isReflectionEnabled() {
|
|
25
24
|
return true;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
31
|
-
args[_i] = arguments[_i];
|
|
32
|
-
}
|
|
33
|
-
return new (t.bind.apply(t, (0, tslib_1.__spreadArray)([void 0], (0, tslib_1.__read)(args), false)))();
|
|
34
|
-
};
|
|
35
|
-
};
|
|
25
|
+
}
|
|
26
|
+
factory(t) {
|
|
27
|
+
return (...args) => new t(...args);
|
|
28
|
+
}
|
|
36
29
|
/** @internal */
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
_zipTypesAndAnnotations(paramTypes, paramAnnotations) {
|
|
31
|
+
let result;
|
|
39
32
|
if (typeof paramTypes === 'undefined') {
|
|
40
33
|
result = new Array(paramAnnotations.length);
|
|
41
34
|
}
|
|
42
35
|
else {
|
|
43
36
|
result = new Array(paramTypes.length);
|
|
44
37
|
}
|
|
45
|
-
for (
|
|
38
|
+
for (let i = 0; i < result.length; i++) {
|
|
46
39
|
// TS outputs Object for parameters without types, while Traceur omits
|
|
47
40
|
// the annotations. For now we preserve the Traceur behavior to aid
|
|
48
41
|
// migration, but this can be revisited.
|
|
@@ -61,10 +54,10 @@ var ReflectionCapabilities = /** @class */ (function () {
|
|
|
61
54
|
}
|
|
62
55
|
}
|
|
63
56
|
return result;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
}
|
|
58
|
+
parameters(type) {
|
|
59
|
+
const paramAnnotations = annotations_1.Annotation.getAllForConstructorParameters(type);
|
|
60
|
+
const paramTypes = Reflect.getOwnMetadata('design:paramtypes', type);
|
|
68
61
|
if (paramTypes || paramAnnotations) {
|
|
69
62
|
return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);
|
|
70
63
|
}
|
|
@@ -73,14 +66,14 @@ var ReflectionCapabilities = /** @class */ (function () {
|
|
|
73
66
|
// Note: We know that this is a real constructor as we checked
|
|
74
67
|
// the content of the constructor above.
|
|
75
68
|
return new Array(type.length).fill(undefined);
|
|
76
|
-
}
|
|
77
|
-
|
|
69
|
+
}
|
|
70
|
+
annotations(typeOrFunc) {
|
|
78
71
|
return annotations_1.Annotation.getAllForClass(typeOrFunc);
|
|
79
|
-
}
|
|
80
|
-
|
|
72
|
+
}
|
|
73
|
+
_ownPropMetadata(typeOrFunc, parentCtor) {
|
|
81
74
|
// Prefer the direct API.
|
|
82
75
|
if (typeOrFunc.propMetadata && typeOrFunc.propMetadata !== parentCtor.propMetadata) {
|
|
83
|
-
|
|
76
|
+
let propMetadata = typeOrFunc.propMetadata;
|
|
84
77
|
if (typeof propMetadata === 'function' && propMetadata.propMetadata) {
|
|
85
78
|
propMetadata = propMetadata.propMetadata;
|
|
86
79
|
}
|
|
@@ -88,93 +81,93 @@ var ReflectionCapabilities = /** @class */ (function () {
|
|
|
88
81
|
}
|
|
89
82
|
// API of tsickle for lowering decorators to properties on the class.
|
|
90
83
|
if (typeOrFunc.propDecorators && typeOrFunc.propDecorators !== parentCtor.propDecorators) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Object.keys(
|
|
94
|
-
|
|
84
|
+
const propDecorators = typeOrFunc.propDecorators;
|
|
85
|
+
const propMetadata = {};
|
|
86
|
+
Object.keys(propDecorators).forEach(prop => {
|
|
87
|
+
propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);
|
|
95
88
|
});
|
|
96
|
-
return
|
|
89
|
+
return propMetadata;
|
|
97
90
|
}
|
|
98
91
|
// API for metadata created by invoking the decorators.
|
|
99
92
|
if (this._reflect && this._reflect.getOwnMetadata) {
|
|
100
93
|
return this._reflect.getOwnMetadata('propMetadata', typeOrFunc);
|
|
101
94
|
}
|
|
102
95
|
return null;
|
|
103
|
-
}
|
|
104
|
-
|
|
96
|
+
}
|
|
97
|
+
propMetadata(typeOrFunc) {
|
|
105
98
|
if (!(0, type_1.isType)(typeOrFunc)) {
|
|
106
99
|
return {};
|
|
107
100
|
}
|
|
108
101
|
return annotations_1.Annotations.getMapForClassProperties(typeOrFunc.prototype);
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
const parentCtor = getParentCtor(typeOrFunc);
|
|
103
|
+
const propMetadata = {};
|
|
111
104
|
if (parentCtor !== Object) {
|
|
112
|
-
|
|
113
|
-
Object.keys(
|
|
114
|
-
propMetadata[propName] =
|
|
105
|
+
const parentPropMetadata = this.propMetadata(parentCtor);
|
|
106
|
+
Object.keys(parentPropMetadata).forEach(propName => {
|
|
107
|
+
propMetadata[propName] = parentPropMetadata[propName];
|
|
115
108
|
});
|
|
116
109
|
}
|
|
117
|
-
|
|
110
|
+
const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);
|
|
118
111
|
if (ownPropMetadata) {
|
|
119
|
-
Object.keys(ownPropMetadata).forEach(
|
|
120
|
-
|
|
112
|
+
Object.keys(ownPropMetadata).forEach(propName => {
|
|
113
|
+
const decorators = [];
|
|
121
114
|
if (propMetadata.hasOwnProperty(propName)) {
|
|
122
|
-
decorators.push
|
|
115
|
+
decorators.push(...propMetadata[propName]);
|
|
123
116
|
}
|
|
124
|
-
decorators.push
|
|
117
|
+
decorators.push(...ownPropMetadata[propName]);
|
|
125
118
|
propMetadata[propName] = decorators;
|
|
126
119
|
});
|
|
127
120
|
}
|
|
128
121
|
return propMetadata;
|
|
129
|
-
}
|
|
130
|
-
|
|
122
|
+
}
|
|
123
|
+
hasLifecycleHook(type, lcProperty) {
|
|
131
124
|
return type instanceof type_1.Type && lcProperty in type.prototype;
|
|
132
|
-
}
|
|
133
|
-
|
|
125
|
+
}
|
|
126
|
+
getter(name) {
|
|
134
127
|
return new Function('o', 'return o.' + name + ';');
|
|
135
|
-
}
|
|
136
|
-
|
|
128
|
+
}
|
|
129
|
+
setter(name) {
|
|
137
130
|
return new Function('o', 'v', 'return o.' + name + ' = v;');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
131
|
+
}
|
|
132
|
+
method(name) {
|
|
133
|
+
const functionBody = `if (!o.${name}) throw new Error('"${name}" is undefined');
|
|
134
|
+
return o.${name}.apply(o, args);`;
|
|
141
135
|
return new Function('o', 'args', functionBody);
|
|
142
|
-
}
|
|
136
|
+
}
|
|
143
137
|
// There is not a concept of import uri in Js, but this is useful in developing Dart applications.
|
|
144
|
-
|
|
138
|
+
importUri(type) {
|
|
145
139
|
// StaticSymbol
|
|
146
140
|
if (typeof type === 'object' && type['filePath']) {
|
|
147
141
|
return type['filePath'];
|
|
148
142
|
}
|
|
149
143
|
// Runtime type
|
|
150
|
-
return
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return
|
|
154
|
-
}
|
|
155
|
-
|
|
144
|
+
return `./${(0, lang_1.stringify)(type)}`;
|
|
145
|
+
}
|
|
146
|
+
resourceUri(type) {
|
|
147
|
+
return `./${(0, lang_1.stringify)(type)}`;
|
|
148
|
+
}
|
|
149
|
+
resolveIdentifier(name, moduleUrl, members, runtime) {
|
|
156
150
|
return runtime;
|
|
157
|
-
}
|
|
158
|
-
|
|
151
|
+
}
|
|
152
|
+
resolveEnum(enumIdentifier, name) {
|
|
159
153
|
return enumIdentifier[name];
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
}());
|
|
154
|
+
}
|
|
155
|
+
}
|
|
163
156
|
exports.ReflectionCapabilities = ReflectionCapabilities;
|
|
164
157
|
function convertTsickleDecoratorIntoMetadata(decoratorInvocations) {
|
|
165
158
|
if (!decoratorInvocations) {
|
|
166
159
|
return [];
|
|
167
160
|
}
|
|
168
|
-
return decoratorInvocations.map(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
return new
|
|
161
|
+
return decoratorInvocations.map(decoratorInvocation => {
|
|
162
|
+
const decoratorType = decoratorInvocation.type;
|
|
163
|
+
const annotationCls = decoratorType.annotationCls;
|
|
164
|
+
const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];
|
|
165
|
+
return new annotationCls(...annotationArgs);
|
|
173
166
|
});
|
|
174
167
|
}
|
|
175
168
|
function getParentCtor(ctor) {
|
|
176
|
-
|
|
177
|
-
|
|
169
|
+
const parentProto = Object.getPrototypeOf(ctor.prototype);
|
|
170
|
+
const parentCtor = parentProto ? parentProto.constructor : null;
|
|
178
171
|
// Note: We always use `Object` as the null value
|
|
179
172
|
// to simplify checking later on.
|
|
180
173
|
return parentCtor || Object;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflection_capabilities.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflection_capabilities.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"reflection_capabilities.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflection_capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,59 +8,55 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.Reflector = void 0;
|
|
11
|
-
|
|
12
|
-
var reflector_reader_1 = require("./reflector_reader");
|
|
11
|
+
const reflector_reader_1 = require("./reflector_reader");
|
|
13
12
|
/**
|
|
14
13
|
* Provides access to reflection data about symbols. Used internally by Angular
|
|
15
14
|
* to power dependency injection and compilation.
|
|
16
15
|
*/
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_this.reflectionCapabilities = reflectionCapabilities;
|
|
22
|
-
return _this;
|
|
16
|
+
class Reflector extends reflector_reader_1.ReflectorReader {
|
|
17
|
+
constructor(reflectionCapabilities) {
|
|
18
|
+
super();
|
|
19
|
+
this.reflectionCapabilities = reflectionCapabilities;
|
|
23
20
|
}
|
|
24
|
-
|
|
21
|
+
updateCapabilities(caps) {
|
|
25
22
|
this.reflectionCapabilities = caps;
|
|
26
|
-
}
|
|
27
|
-
|
|
23
|
+
}
|
|
24
|
+
factory(type) {
|
|
28
25
|
return this.reflectionCapabilities.factory(type);
|
|
29
|
-
}
|
|
30
|
-
|
|
26
|
+
}
|
|
27
|
+
parameters(typeOrFunc) {
|
|
31
28
|
return this.reflectionCapabilities.parameters(typeOrFunc);
|
|
32
|
-
}
|
|
33
|
-
|
|
29
|
+
}
|
|
30
|
+
annotations(typeOrFunc) {
|
|
34
31
|
return this.reflectionCapabilities.annotations(typeOrFunc);
|
|
35
|
-
}
|
|
36
|
-
|
|
32
|
+
}
|
|
33
|
+
propMetadata(typeOrFunc) {
|
|
37
34
|
return this.reflectionCapabilities.propMetadata(typeOrFunc);
|
|
38
|
-
}
|
|
39
|
-
|
|
35
|
+
}
|
|
36
|
+
hasLifecycleHook(type, lcProperty) {
|
|
40
37
|
return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty);
|
|
41
|
-
}
|
|
42
|
-
|
|
38
|
+
}
|
|
39
|
+
getter(name) {
|
|
43
40
|
return this.reflectionCapabilities.getter(name);
|
|
44
|
-
}
|
|
45
|
-
|
|
41
|
+
}
|
|
42
|
+
setter(name) {
|
|
46
43
|
return this.reflectionCapabilities.setter(name);
|
|
47
|
-
}
|
|
48
|
-
|
|
44
|
+
}
|
|
45
|
+
method(name) {
|
|
49
46
|
return this.reflectionCapabilities.method(name);
|
|
50
|
-
}
|
|
51
|
-
|
|
47
|
+
}
|
|
48
|
+
importUri(type) {
|
|
52
49
|
return this.reflectionCapabilities.importUri(type);
|
|
53
|
-
}
|
|
54
|
-
|
|
50
|
+
}
|
|
51
|
+
resourceUri(type) {
|
|
55
52
|
return this.reflectionCapabilities.resourceUri(type);
|
|
56
|
-
}
|
|
57
|
-
|
|
53
|
+
}
|
|
54
|
+
resolveIdentifier(name, moduleUrl, members, runtime) {
|
|
58
55
|
return this.reflectionCapabilities.resolveIdentifier(name, moduleUrl, members, runtime);
|
|
59
|
-
}
|
|
60
|
-
|
|
56
|
+
}
|
|
57
|
+
resolveEnum(identifier, name) {
|
|
61
58
|
return this.reflectionCapabilities.resolveEnum(identifier, name);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
}(reflector_reader_1.ReflectorReader));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
65
61
|
exports.Reflector = Reflector;
|
|
66
62
|
//# sourceMappingURL=reflector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflector.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflector.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"reflector.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflector.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,yDAAqD;AAMrD;;;GAGG;AACH,MAAa,SAAU,SAAQ,kCAAe;IAC5C,YAAmB,sBAAsD;QACvE,KAAK,EAAE,CAAC;QADS,2BAAsB,GAAtB,sBAAsB,CAAgC;IAEzE,CAAC;IAED,kBAAkB,CAAC,IAAoC;QACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU,CAAC,UAAqB;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,UAAqB;QAC/B,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,UAAqB;QAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB,CAAC,IAAS,EAAE,UAAkB;QAC5C,OAAO,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,IAAS;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,IAAS;QACnB,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB,CAAC,IAAY,EAAE,SAAiB,EAAE,OAAwB,EAAE,OAAY;QACvF,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,WAAW,CAAC,UAAe,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAxDD,8BAwDC"}
|
|
@@ -12,10 +12,7 @@ exports.ReflectorReader = void 0;
|
|
|
12
12
|
* Provides read-only access to reflection data about symbols. Used internally by Angular
|
|
13
13
|
* to power dependency injection and compilation.
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
return ReflectorReader;
|
|
19
|
-
}());
|
|
15
|
+
class ReflectorReader {
|
|
16
|
+
}
|
|
20
17
|
exports.ReflectorReader = ReflectorReader;
|
|
21
18
|
//# sourceMappingURL=reflector_reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflector_reader.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflector_reader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;;GAGG;AACH
|
|
1
|
+
{"version":3,"file":"reflector_reader.js","sourceRoot":"","sources":["../../../src/injection/reflection/reflector_reader.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;;GAGG;AACH,MAAsB,eAAe;CAQpC;AARD,0CAQC"}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.mixingMultiProvidersWithRegularProvidersError = exports.outOfBoundsError = exports.noAnnotationError = exports.invalidProviderError = exports.instantiationError = exports.cyclicDependencyError = exports.noProviderError = void 0;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const errors_1 = require("./facade/errors");
|
|
12
|
+
const errors_2 = require("./facade/errors");
|
|
13
|
+
const lang_1 = require("./facade/lang");
|
|
14
14
|
function findFirstClosedCycle(keys) {
|
|
15
|
-
|
|
16
|
-
for (
|
|
15
|
+
const res = [];
|
|
16
|
+
for (let i = 0; i < keys.length; ++i) {
|
|
17
17
|
if (res.indexOf(keys[i]) > -1) {
|
|
18
18
|
res.push(keys[i]);
|
|
19
19
|
return res;
|
|
@@ -24,14 +24,14 @@ function findFirstClosedCycle(keys) {
|
|
|
24
24
|
}
|
|
25
25
|
function constructResolvingPath(keys) {
|
|
26
26
|
if (keys.length > 1) {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const reversed = findFirstClosedCycle(keys.slice().reverse());
|
|
28
|
+
const tokenStrs = reversed.map(k => (0, lang_1.stringify)(k.token));
|
|
29
29
|
return ' (' + tokenStrs.join(' -> ') + ')';
|
|
30
30
|
}
|
|
31
31
|
return '';
|
|
32
32
|
}
|
|
33
33
|
function injectionError(injector, key, constructResolvingMessage, originalError) {
|
|
34
|
-
|
|
34
|
+
const error = (originalError ? (0, errors_1.wrappedError)('', originalError) : Error());
|
|
35
35
|
error.addKey = addKey;
|
|
36
36
|
error.keys = [key];
|
|
37
37
|
error.injectors = [injector];
|
|
@@ -61,8 +61,8 @@ function addKey(injector, key) {
|
|
|
61
61
|
*/
|
|
62
62
|
function noProviderError(injector, key) {
|
|
63
63
|
return injectionError(injector, key, function () {
|
|
64
|
-
|
|
65
|
-
return
|
|
64
|
+
const first = (0, lang_1.stringify)(this.keys[0].token);
|
|
65
|
+
return `No provider for ${first}!${constructResolvingPath(this.keys)}`;
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
exports.noProviderError = noProviderError;
|
|
@@ -84,7 +84,7 @@ exports.noProviderError = noProviderError;
|
|
|
84
84
|
*/
|
|
85
85
|
function cyclicDependencyError(injector, key) {
|
|
86
86
|
return injectionError(injector, key, function () {
|
|
87
|
-
return
|
|
87
|
+
return `Cannot instantiate cyclic dependency!${constructResolvingPath(this.keys)}`;
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
exports.cyclicDependencyError = cyclicDependencyError;
|
|
@@ -116,8 +116,8 @@ exports.cyclicDependencyError = cyclicDependencyError;
|
|
|
116
116
|
*/
|
|
117
117
|
function instantiationError(injector, originalException, originalStack, key) {
|
|
118
118
|
return injectionError(injector, key, function () {
|
|
119
|
-
|
|
120
|
-
return (0, errors_2.getOriginalError)(this).message
|
|
119
|
+
const first = (0, lang_1.stringify)(this.keys[0].token);
|
|
120
|
+
return `${(0, errors_2.getOriginalError)(this).message}: Error during instantiation of ${first}!${constructResolvingPath(this.keys)}.`;
|
|
121
121
|
}, originalException);
|
|
122
122
|
}
|
|
123
123
|
exports.instantiationError = instantiationError;
|
|
@@ -132,7 +132,7 @@ exports.instantiationError = instantiationError;
|
|
|
132
132
|
* ```
|
|
133
133
|
*/
|
|
134
134
|
function invalidProviderError(provider) {
|
|
135
|
-
return Error(
|
|
135
|
+
return Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${provider}`);
|
|
136
136
|
}
|
|
137
137
|
exports.invalidProviderError = invalidProviderError;
|
|
138
138
|
/**
|
|
@@ -165,9 +165,9 @@ exports.invalidProviderError = invalidProviderError;
|
|
|
165
165
|
* @stable
|
|
166
166
|
*/
|
|
167
167
|
function noAnnotationError(typeOrFunc, params) {
|
|
168
|
-
|
|
169
|
-
for (
|
|
170
|
-
|
|
168
|
+
const signature = [];
|
|
169
|
+
for (let i = 0, ii = params.length; i < ii; i++) {
|
|
170
|
+
const parameter = params[i];
|
|
171
171
|
if (!parameter || parameter.length === 0) {
|
|
172
172
|
signature.push('?');
|
|
173
173
|
}
|
|
@@ -200,7 +200,7 @@ exports.noAnnotationError = noAnnotationError;
|
|
|
200
200
|
* @stable
|
|
201
201
|
*/
|
|
202
202
|
function outOfBoundsError(index) {
|
|
203
|
-
return Error(
|
|
203
|
+
return Error(`Index ${index} is out-of-bounds.`);
|
|
204
204
|
}
|
|
205
205
|
exports.outOfBoundsError = outOfBoundsError;
|
|
206
206
|
// TODO: add a working example after alpha38 is released
|
|
@@ -217,7 +217,7 @@ exports.outOfBoundsError = outOfBoundsError;
|
|
|
217
217
|
* ```
|
|
218
218
|
*/
|
|
219
219
|
function mixingMultiProvidersWithRegularProvidersError(provider1, provider2) {
|
|
220
|
-
return Error(
|
|
220
|
+
return Error(`Cannot mix multi providers and regular providers, got: ${provider1} ${provider2}`);
|
|
221
221
|
}
|
|
222
222
|
exports.mixingMultiProvidersWithRegularProvidersError = mixingMultiProvidersWithRegularProvidersError;
|
|
223
223
|
//# sourceMappingURL=reflective_errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflective_errors.js","sourceRoot":"","sources":["../../src/injection/reflective_errors.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"reflective_errors.js","sourceRoot":"","sources":["../../src/injection/reflective_errors.ts"],"names":[],"mappings":"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"}
|