@loopback/metadata 2.2.5 → 3.0.2

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/CHANGELOG.md CHANGED
@@ -3,6 +3,54 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.0.2](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@3.0.1...@loopback/metadata@3.0.2) (2020-10-07)
7
+
8
+ **Note:** Version bump only for package @loopback/metadata
9
+
10
+
11
+
12
+
13
+
14
+ ## [3.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@3.0.0...@loopback/metadata@3.0.1) (2020-09-17)
15
+
16
+ **Note:** Version bump only for package @loopback/metadata
17
+
18
+
19
+
20
+
21
+
22
+ # [3.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@2.2.6...@loopback/metadata@3.0.0) (2020-09-15)
23
+
24
+
25
+ ### Features
26
+
27
+ * **metadata:** improve handling of missing design-time type metadata ([4816cae](https://github.com/strongloop/loopback-next/commit/4816caee73fe8f4b99b246bc8544f90037791b6f))
28
+
29
+
30
+ ### BREAKING CHANGES
31
+
32
+ * **metadata:** If you are consuming `@loopback/metadata` directly,
33
+ then you may need to update your code to handle the case when
34
+ design-time type metadata is not available. (The compiler will tell you
35
+ what places to fix.)
36
+
37
+ Regular LoopBack users should not be affected as long as they update
38
+ all LB packages together.
39
+
40
+ Signed-off-by: Miroslav Bajtoš <mbajtoss@gmail.com>
41
+
42
+
43
+
44
+
45
+
46
+ ## [2.2.6](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@2.2.5...@loopback/metadata@2.2.6) (2020-08-27)
47
+
48
+ **Note:** Version bump only for package @loopback/metadata
49
+
50
+
51
+
52
+
53
+
6
54
  ## [2.2.5](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@2.2.4...@loopback/metadata@2.2.5) (2020-08-19)
7
55
 
8
56
  **Note:** Version bump only for package @loopback/metadata
@@ -73,17 +73,21 @@ D extends DecoratorType> {
73
73
  */
74
74
  protected inherit(inheritedMetadata: T | undefined | null): T;
75
75
  /**
76
- * Get the qualified name of a decoration target. For example:
77
- * ```
78
- * class MyClass
79
- * MyClass.constructor[0] // First parameter of the constructor
80
- * MyClass.myStaticProperty
81
- * MyClass.myStaticMethod()
82
- * MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
83
- * MyClass.prototype.myProperty
84
- * MyClass.prototype.myMethod()
85
- * MyClass.prototype.myMethod[1] // Second parameter of myMethod
86
- * ```
76
+ * Get the qualified name of a decoration target.
77
+ *
78
+ * @remarks
79
+ *
80
+ * Example of target names:
81
+ *
82
+ * - class MyClass
83
+ * - MyClass.constructor[0] // First parameter of the constructor
84
+ * - MyClass.myStaticProperty
85
+ * - MyClass.myStaticMethod()
86
+ * - MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
87
+ * - MyClass.prototype.myProperty
88
+ * - MyClass.prototype.myMethod()
89
+ * - MyClass.prototype.myMethod[1] // Second parameter of myMethod
90
+ *
87
91
  * @param target - Class or prototype of a class
88
92
  * @param member - Optional property/method name
89
93
  * @param descriptorOrIndex - Optional method descriptor or parameter index
@@ -162,7 +166,7 @@ D extends DecoratorType> {
162
166
  * @param spec - Metadata object from the decorator function
163
167
  * @param options - Options for the decorator
164
168
  */
165
- protected static _createDecorator<T, M extends T | MetadataMap<T> | MetadataMap<T[]>, D extends DecoratorType>(key: MetadataKey<T, D>, spec: T, options?: DecoratorOptions): D;
169
+ protected static _createDecorator<S, MT extends S | MetadataMap<S> | MetadataMap<S[]>, DT extends DecoratorType>(key: MetadataKey<S, DT>, spec: S, options?: DecoratorOptions): DT;
166
170
  private static _cloneableTypes;
167
171
  static cloneDeep<V>(val: Readonly<V>): V;
168
172
  }
@@ -179,7 +183,7 @@ export declare class ClassDecoratorFactory<T> extends DecoratorFactory<T, T, Cla
179
183
  * @param spec - Metadata object from the decorator function
180
184
  * @param options - Options for the decorator
181
185
  */
182
- static createDecorator<T>(key: MetadataKey<T, ClassDecorator>, spec: T, options?: DecoratorOptions): ClassDecorator;
186
+ static createDecorator<S>(key: MetadataKey<S, ClassDecorator>, spec: S, options?: DecoratorOptions): ClassDecorator;
183
187
  }
184
188
  /**
185
189
  * Factory for property decorators
@@ -194,7 +198,7 @@ export declare class PropertyDecoratorFactory<T> extends DecoratorFactory<T, Met
194
198
  * @param spec - Metadata object from the decorator function
195
199
  * @param options - Options for the decorator
196
200
  */
197
- static createDecorator<T>(key: MetadataKey<T, PropertyDecorator>, spec: T, options?: DecoratorOptions): PropertyDecorator;
201
+ static createDecorator<S>(key: MetadataKey<S, PropertyDecorator>, spec: S, options?: DecoratorOptions): PropertyDecorator;
198
202
  }
199
203
  /**
200
204
  * Factory for method decorators
@@ -209,7 +213,7 @@ export declare class MethodDecoratorFactory<T> extends DecoratorFactory<T, Metad
209
213
  * @param spec - Metadata object from the decorator function
210
214
  * @param options - Options for the decorator
211
215
  */
212
- static createDecorator<T>(key: MetadataKey<T, MethodDecorator>, spec: T, options?: DecoratorOptions): MethodDecorator;
216
+ static createDecorator<S>(key: MetadataKey<S, MethodDecorator>, spec: S, options?: DecoratorOptions): MethodDecorator;
213
217
  }
214
218
  /**
215
219
  * Factory for parameter decorators
@@ -225,7 +229,7 @@ export declare class ParameterDecoratorFactory<T> extends DecoratorFactory<T, Me
225
229
  * @param spec - Metadata object from the decorator function
226
230
  * @param options - Options for the decorator
227
231
  */
228
- static createDecorator<T>(key: MetadataKey<T, ParameterDecorator>, spec: T, options?: DecoratorOptions): ParameterDecorator;
232
+ static createDecorator<S>(key: MetadataKey<S, ParameterDecorator>, spec: S, options?: DecoratorOptions): ParameterDecorator;
229
233
  }
230
234
  /**
231
235
  * Factory for method level parameter decorator.
@@ -258,7 +262,7 @@ export declare class MethodParameterDecoratorFactory<T> extends DecoratorFactory
258
262
  * @param spec - Metadata object from the decorator function
259
263
  * @param options - Options for the decorator
260
264
  */
261
- static createDecorator<T>(key: MetadataKey<T, MethodDecorator>, spec: T, options?: DecoratorOptions): MethodDecorator;
265
+ static createDecorator<S>(key: MetadataKey<S, MethodDecorator>, spec: S, options?: DecoratorOptions): MethodDecorator;
262
266
  }
263
267
  /**
264
268
  * Factory for an append-array of method-level decorators
@@ -82,17 +82,21 @@ class DecoratorFactory {
82
82
  return Object.assign(inheritedMetadata, this.spec);
83
83
  }
84
84
  /**
85
- * Get the qualified name of a decoration target. For example:
86
- * ```
87
- * class MyClass
88
- * MyClass.constructor[0] // First parameter of the constructor
89
- * MyClass.myStaticProperty
90
- * MyClass.myStaticMethod()
91
- * MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
92
- * MyClass.prototype.myProperty
93
- * MyClass.prototype.myMethod()
94
- * MyClass.prototype.myMethod[1] // Second parameter of myMethod
95
- * ```
85
+ * Get the qualified name of a decoration target.
86
+ *
87
+ * @remarks
88
+ *
89
+ * Example of target names:
90
+ *
91
+ * - class MyClass
92
+ * - MyClass.constructor[0] // First parameter of the constructor
93
+ * - MyClass.myStaticProperty
94
+ * - MyClass.myStaticMethod()
95
+ * - MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
96
+ * - MyClass.prototype.myProperty
97
+ * - MyClass.prototype.myMethod()
98
+ * - MyClass.prototype.myMethod[1] // Second parameter of myMethod
99
+ *
96
100
  * @param target - Class or prototype of a class
97
101
  * @param member - Optional property/method name
98
102
  * @param descriptorOrIndex - Optional method descriptor or parameter index
@@ -1 +1 @@
1
- {"version":3,"file":"decorator-factory.js","sourceRoot":"","sources":["../src/decorator-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorator-factory.js","sourceRoot":"","sources":["../src/decorator-factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,kCAAkC;AAClC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAgC;AAChC,4DAAuB;AACvB,uCAAoC;AAEpC,MAAM,KAAK,GAAG,eAAW,CAAC,6BAA6B,CAAC,CAAC;AA8BzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,gBAAgB;IAY3B;;;;;;OAMG;IACH,YACY,GAAW,EACX,IAAO,EACP,UAA4B,EAAE;;QAF9B,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAG;QACP,YAAO,GAAP,OAAO,CAAuB;QAExC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC1B;YACE,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB,EACD,OAAO,CACR,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,SAAG,IAAI,CAAC,OAAO,CAAC,aAAa,mCAAI,oBAAoB,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC9C;IACH,CAAC;IAES,gBAAgB;;QACxB,OAAO,CAAC,QAAC,IAAI,CAAC,OAAO,0CAAE,gBAAgB,CAAA,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACO,OAAO,CAAC,iBAAuC;QACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAC/C,IAAI,iBAAiB,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,OAAO,iBAAiB,CAAC;QAChD,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChE,6BAA6B;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,aAAa,CAClB,MAAc,EACd,MAAwB,EACxB,iBAAyD;QAEzD,IAAI,IAAI,GACN,MAAM,YAAY,QAAQ;YACxB,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC;QAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE;YAC/C,OAAO,SAAS,IAAI,EAAE,CAAC;SACxB;QACD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;QAE5D,MAAM,cAAc,GAClB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;QAE5E,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;YACzC,YAAY;YACZ,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,IAAI,iBAAiB,GAAG,CAAC;SACzD;aAAM,IAAI,iBAAiB,IAAI,IAAI,EAAE;YACpC,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,IAAI,CAAC;SACrC;aAAM;YACL,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAc,EAAE,MAAe;QAC1D,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,EAAE;YAC3C,cAAc;YACd,OAAO,MAAM,CAAC,MAAM,CAAC;SACtB;aAAM;YACL,+BAA+B;YAC/B,MAAM,MAAM,GAAsC,MAAO,CAAC,MAAO,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,MAAM,CAAC;SACtB;IACH,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,IAAO,EAAE,MAAc;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;YAC5C,yCAAyC;YACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;gBACnD,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE,KAAK;gBACjB,qDAAqD;gBACrD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAO;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;YAC5C,MAAM,cAAc,GAAG,IAA6B,CAAC;YACrD,OAAO,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAChD;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,kBAAkB,CAC1B,iBAAoB,EACpB,MAAc,EACd,MAAwB,EACxB,iBAAyD;QAEzD,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,aAAa,EAAE,CACpE,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,YAAY,CACpB,WAAc,EACd,MAAc,EACd,MAAwB,EACxB,iBAAyD;QAEzD,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,aAAa,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,wBAAwB,CAChC,MAAc,EACd,MAAwB,EACxB,iBAAyD;QAEzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAC/C,MAAM,EACN,MAAM,EACN,iBAAiB,CAClB,CAAC;QACF,OAAO,IAAI,KAAK,CACd,GAAG,IAAI,CAAC,aAAa,wCAAwC,UAAU,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAChB,MAAc,EACd,MAAwB,EACxB,iBAAyD;QAEzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAC/C,MAAM,EACN,MAAM,EACN,iBAAiB,CAClB,CAAC;QACF,IAAI,IAAI,GAAM,mBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3C,2DAA2D;YAC3D,yBAAyB;YACzB,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAC/B,mBAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CACxC,CAAC;YACF,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACxE,yBAAyB;YACzB,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACnC;YACD,mBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAClD;aAAM;YACL,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAClE,yBAAyB;YACzB,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACnC;YACD,mBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAClD;IACH,CAAC;IAED;;;;;OAKG;IACO,MAAM,CAAC,gBAAgB,CAI/B,GAAuB,EAAE,IAAO,EAAE,OAA0B;QAC5D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAY,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAuBD,MAAM,CAAC,SAAS,CAAI,GAAgB;QAClC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,OAAO,gBAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;YAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;YACxB,IACE,CAAC,CAAC,WAAW,IAAI,IAAI;gBACrB,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EACzD;gBACA,+DAA+D;gBAC/D,OAAO,CAAC,CAAC;aACV;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;;AArUH,4CAsUC;AA/TC;;GAEG;AACI,uBAAM,GAAG,mBAAmB,CAAC;AAwRpC,0EAA0E;AAC3D,gCAAe,GAAG;IAC/B,MAAM;IACN,KAAK;IACL,GAAG;IACH,GAAG;IACH,MAAM;IACN,IAAI;IACJ,MAAM;IACN,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,WAAW;CACZ,CAAC;AAmBJ;;GAEG;AACH,MAAa,qBAAyB,SAAQ,gBAI7C;IACW,kBAAkB,CAC1B,iBAAoB,EACpB,MAAc,EACd,MAAe,EACf,iBAAyD;QAEzD,OAAO,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAES,YAAY,CACpB,WAAc,EACd,MAAc,EACd,MAAe,EACf,iBAAyD;QAEzD,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,MAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,GAAmC,EACnC,IAAO,EACP,OAA0B;QAE1B,OAAO,KAAK,CAAC,gBAAgB,CAAuB,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;CACF;AA3CD,sDA2CC;AAED;;GAEG;AACH,MAAa,wBAA4B,SAAQ,gBAIhD;IACW,kBAAkB,CAC1B,iBAAiC,EACjC,MAAc,EACd,YAAqB,EACrB,iBAAyD;QAEzD,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAM,IAAI,CAAC,UAAU,CAClC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAa,CAAC,CAAC,EACjD,MAAM,CACP,CAAC;QACF,iBAAiB,CAAC,YAAa,CAAC,GAAG,YAAY,CAAC;QAChD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,YAAY,CACpB,WAA2B,EAC3B,MAAc,EACd,YAAqB,EACrB,0BAAkE;QAElE,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,YAAa,CAAC,IAAI,IAAI,EAAE;YACtC,MAAM,IAAI,CAAC,wBAAwB,CACjC,MAAM,EACN,YAAY,EACZ,0BAA0B,CAC3B,CAAC;SACH;QACD,WAAW,CAAC,YAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,MAAc,EAAE,YAA6B,EAAE,EAAE,CACvD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,GAAsC,EACtC,IAAO,EACP,OAA0B;QAE1B,OAAO,KAAK,CAAC,gBAAgB,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA5DD,4DA4DC;AAED;;GAEG;AACH,MAAa,sBAA0B,SAAQ,gBAI9C;IACW,kBAAkB,CAC1B,iBAAiC,EACjC,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAC7B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAW,CAAC,CAAC,EAC/C,MAAM,CACP,CAAC;QACF,iBAAiB,CAAC,UAAW,CAAC,GAAG,UAAU,CAAC;QAC5C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,YAAY,CACpB,WAA2B,EAC3B,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAW,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE;YACzC,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;SAC3E;QACD,0BAA0B;QAC1B,WAAW,CAAC,UAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,MAAc,EACd,UAA2B,EAC3B,UAAwC,EACxC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,GAAoC,EACpC,IAAO,EACP,OAA0B;QAE1B,OAAO,KAAK,CAAC,gBAAgB,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AA7DD,wDA6DC;AAED;;GAEG;AACH,MAAa,yBAA6B,SAAQ,gBAIjD;IACS,iBAAiB,CACvB,IAAsB,EACtB,MAAc,EACd,UAAmB;QAEnB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,iCAAiC;YACjC,UAAU,GAAG,IAAI,KAAK,CACpB,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAC3D,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;SAC3B;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,kBAAkB,CAC1B,iBAAmC,EACnC,MAAc,EACd,UAAmB,EACnB,cAAsD;QAEtD,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CACvC,iBAAiB,EACjB,MAAM,EACN,UAAU,CACX,CAAC;QACF,MAAM,KAAK,GAAG,cAAwB,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAClC,MAAM,CACP,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,YAAY,CACpB,WAA6B,EAC7B,MAAc,EACd,UAAmB,EACnB,cAAsD;QAEtD,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,2BAA2B;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,cAAwB,CAAC;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,EAAE;YAChD,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;SACzE;QACD,6BAA6B;QAC7B,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAClC,MAAM,CACP,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,MAAc,EACd,UAA2B,EAC3B,cAAsB,EACtB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,GAAuC,EACvC,IAAO,EACP,OAA0B;QAE1B,OAAO,KAAK,CAAC,gBAAgB,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAxFD,8DAwFC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,+BAAmC,SAAQ,gBAIvD;IACC;;;;;OAKG;IACK,iBAAiB,CACvB,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CACxD,MAAM,EACN,UAAU,CACX,CAAC;QACF,mCAAmC;QACnC,IAAI,KAAK,GAAG,mBAAS,CAAC,cAAc,CAClC,GAAG,IAAI,CAAC,GAAG,QAAQ,EACnB,MAAM,EACN,UAAU,CACX,CAAC;QACF,gCAAgC;QAChC,IAAI,KAAK,IAAI,IAAI;YAAE,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,+DAA+D;YAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAC3C,MAAM,EACN,UAAU,EACV,gBAAgB,CACjB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,aAAa,sBAAsB,WAAW,eAAe,MAAM,EAAE,CAC9E,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,kBAAkB,CAC1B,iBAAmC,EACnC,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAE3E,MAAM,eAAe,GACnB,iBAAiB,CAAC,UAAW,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,eAAe,CAAC,MAAM,EAAE;YAC1B,2EAA2E;YAC3E,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CACnC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EACvC,MAAM,CACP,CAAC;SACH;QACD,yDAAyD;QACzD,mBAAS,CAAC,cAAc,CACtB,GAAG,IAAI,CAAC,GAAG,QAAQ,EACnB,KAAK,GAAG,CAAC,EACT,MAAM,EACN,UAAU,CACX,CAAC;QACF,iBAAiB,CAAC,UAAW,CAAC,GAAG,eAAe,CAAC;QACjD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,YAAY,CACpB,WAA6B,EAC7B,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAE3E,MAAM,MAAM,GACV,WAAW,CAAC,UAAW,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,WAAW,CAAC,UAAW,CAAC,GAAG,MAAM,CAAC;QAClC,yDAAyD;QACzD,mBAAS,CAAC,cAAc,CACtB,GAAG,IAAI,CAAC,GAAG,QAAQ,EACnB,KAAK,GAAG,CAAC,EACT,MAAM,EACN,UAAU,CACX,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,MAAc,EACd,UAA2B,EAC3B,UAAwC,EACxC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CACpB,GAAoC,EACpC,IAAO,EACP,OAA0B;QAE1B,OAAO,KAAK,CAAC,gBAAgB,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAvHD,0EAuHC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,2BAA+B,SAAQ,sBAEnD;IACW,kBAAkB,CAC1B,iBAAmC,EACnC,MAAc,EACd,UAAmB;QAEnB,iBAAiB,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAE5C,iBAAiB,CAAC,UAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAC/C,iBAAiB,CAAC,UAAW,CAAC,EAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CACnC,CAAC;QAEF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,YAAY,CACpB,WAA6B,EAC7B,MAAc,EACd,UAAmB,EACnB,gBAAwD;QAExD,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,WAAW,CAAC,UAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CACzC,WAAW,CAAC,UAAW,CAAC,EACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CACnC,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,WAAW,CAAC,MAAW,EAAE,UAAmB;QAClD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC7B,MAAM,GAAG,UAAU,CAAC;aACrB;iBAAM;gBACL,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;aACvB;SACF;aAAM;YACL,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;aAC5B;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACzB;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjDD,kEAiDC"}
@@ -102,12 +102,20 @@ export declare class MetadataInspector {
102
102
  * Get TypeScript design time type for a property
103
103
  * @param target - Class or prototype
104
104
  * @param propertyName - Property name
105
+ * @returns Design time metadata. The return value is `undefined` when:
106
+ * - The property has type `undefined`, `null` or a complex type like
107
+ * `Partial<MyModel>`, `string | number`, `string[]`.
108
+ * - The TypeScript project has not enabled the compiler option `emitDecoratorMetadata`.
109
+ * - The code is written in vanilla JavaScript.
105
110
  */
106
- static getDesignTypeForProperty(target: Object, propertyName: string): Function;
111
+ static getDesignTypeForProperty(target: Object, propertyName: string): Function | undefined;
107
112
  /**
108
- * Get TypeScript design time type for a method
113
+ * Get TypeScript design time type for a method.
109
114
  * @param target - Class or prototype
110
115
  * @param methodName - Method name
116
+ * @returns Design time metadata. The return value is `undefined`
117
+ * in projects that do not enable `emitDecoratorMetadata`
118
+ * in TypeScript compiler options or are written in vanilla JavaScript.
111
119
  */
112
- static getDesignTypeForMethod(target: Object, methodName: string): DesignTimeMethodMetadata;
120
+ static getDesignTypeForMethod(target: Object, methodName: string): DesignTimeMethodMetadata | undefined;
113
121
  }
package/dist/inspector.js CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataInspector = void 0;
4
+ const tslib_1 = require("tslib");
2
5
  // Copyright IBM Corp. 2017,2019. All Rights Reserved.
3
6
  // Node module: @loopback/metadata
4
7
  // This file is licensed under the MIT License.
5
8
  // License text available at https://opensource.org/licenses/MIT
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.MetadataInspector = void 0;
9
+ const debug_1 = tslib_1.__importDefault(require("debug"));
10
+ const decorator_factory_1 = require("./decorator-factory");
8
11
  const reflect_1 = require("./reflect");
12
+ const debug = debug_1.default('loopback:metadata:inspector');
9
13
  /**
10
14
  * TypeScript reflector without a namespace. The TypeScript compiler can be
11
15
  * configured to add design time metadata.
@@ -124,19 +128,38 @@ class MetadataInspector {
124
128
  * Get TypeScript design time type for a property
125
129
  * @param target - Class or prototype
126
130
  * @param propertyName - Property name
131
+ * @returns Design time metadata. The return value is `undefined` when:
132
+ * - The property has type `undefined`, `null` or a complex type like
133
+ * `Partial<MyModel>`, `string | number`, `string[]`.
134
+ * - The TypeScript project has not enabled the compiler option `emitDecoratorMetadata`.
135
+ * - The code is written in vanilla JavaScript.
127
136
  */
128
137
  static getDesignTypeForProperty(target, propertyName) {
129
138
  return TSReflector.getMetadata('design:type', target, propertyName);
130
139
  }
131
140
  /**
132
- * Get TypeScript design time type for a method
141
+ * Get TypeScript design time type for a method.
133
142
  * @param target - Class or prototype
134
143
  * @param methodName - Method name
144
+ * @returns Design time metadata. The return value is `undefined`
145
+ * in projects that do not enable `emitDecoratorMetadata`
146
+ * in TypeScript compiler options or are written in vanilla JavaScript.
135
147
  */
136
148
  static getDesignTypeForMethod(target, methodName) {
137
149
  const type = TSReflector.getMetadata('design:type', target, methodName);
138
150
  const parameterTypes = TSReflector.getMetadata('design:paramtypes', target, methodName);
139
151
  const returnType = TSReflector.getMetadata('design:returntype', target, methodName);
152
+ if (type === undefined &&
153
+ parameterTypes === undefined &&
154
+ returnType === undefined) {
155
+ /* istanbul ignore next */
156
+ if (debug.enabled) {
157
+ const targetName = decorator_factory_1.DecoratorFactory.getTargetName(target, methodName);
158
+ debug('No design-time type metadata found while inspecting %s. ' +
159
+ 'Did you forget to enable TypeScript compiler option `emitDecoratorMetadata`?', targetName);
160
+ }
161
+ return undefined;
162
+ }
140
163
  return {
141
164
  type,
142
165
  parameterTypes,
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -14,10 +14,10 @@ export declare class MetadataAccessor<T, D extends DecoratorType = DecoratorType
14
14
  /**
15
15
  * Create a strongly-typed metadata accessor
16
16
  * @param key - The metadata key
17
- * @typeParam T - Type of the metadata value
18
- * @typeParam D - Type of the decorator
17
+ * @typeParam V - Type of the metadata value
18
+ * @typeParam DT - Type of the decorator
19
19
  */
20
- static create<T, D extends DecoratorType>(key: string): MetadataAccessor<T, D>;
20
+ static create<V, DT extends DecoratorType>(key: string): MetadataAccessor<V, DT>;
21
21
  }
22
22
  /**
23
23
  * Key for metadata access via reflection
@@ -56,15 +56,15 @@ export interface MetadataMap<T> {
56
56
  */
57
57
  export interface DesignTimeMethodMetadata {
58
58
  /**
59
- * Type of the method itself. It is `Function`
59
+ * Type of the method itself. It is `Function` for methods, `undefined` for the constructor.
60
60
  */
61
- type: Function;
61
+ type: Function | undefined;
62
62
  /**
63
- * An array of parameter types
63
+ * An array of parameter types.
64
64
  */
65
65
  parameterTypes: Function[];
66
66
  /**
67
- * Return type
67
+ * Return type, may be `undefined` (e.g. for constructors).
68
68
  */
69
- returnType: Function;
69
+ returnType: Function | undefined;
70
70
  }
package/dist/types.js CHANGED
@@ -10,6 +10,7 @@ exports.MetadataAccessor = void 0;
10
10
  * @typeParam T - Type of the metadata value
11
11
  * @typeParam D - Type of the decorator
12
12
  */
13
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
14
  class MetadataAccessor {
14
15
  constructor(key) {
15
16
  this.key = key;
@@ -20,8 +21,8 @@ class MetadataAccessor {
20
21
  /**
21
22
  * Create a strongly-typed metadata accessor
22
23
  * @param key - The metadata key
23
- * @typeParam T - Type of the metadata value
24
- * @typeParam D - Type of the decorator
24
+ * @typeParam V - Type of the metadata value
25
+ * @typeParam DT - Type of the decorator
25
26
  */
26
27
  static create(key) {
27
28
  return new MetadataAccessor(key);
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,kCAAkC;AAClC,+CAA+C;AAC/C,gEAAgE;;;AAWhE;;;;GAIG;AACH,MAAa,gBAAgB;IAC3B,YAAoC,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAA6B,GAAW;QACnD,OAAO,IAAI,gBAAgB,CAAO,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAhBD,4CAgBC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,kCAAkC;AAClC,+CAA+C;AAC/C,gEAAgE;;;AAWhE;;;;GAIG;AACH,6DAA6D;AAC7D,MAAa,gBAAgB;IAC3B,YAAoC,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAA8B,GAAW;QACpD,OAAO,IAAI,gBAAgB,CAAQ,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF;AAhBD,4CAgBC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@loopback/metadata",
3
- "version": "2.2.5",
3
+ "version": "3.0.2",
4
4
  "description": "Utilities to help developers implement TypeScript decorators, define/merge metadata, and inspect metadata",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "engines": {
8
- "node": ">=10.16"
8
+ "node": "^10.16 || 12 || 14"
9
9
  },
10
10
  "scripts": {
11
11
  "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
@@ -23,18 +23,18 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "debug": "^4.1.1",
26
+ "debug": "^4.2.0",
27
27
  "lodash": "^4.17.20",
28
28
  "reflect-metadata": "^0.1.13",
29
- "tslib": "^2.0.1"
29
+ "tslib": "^2.0.2"
30
30
  },
31
31
  "devDependencies": {
32
- "@loopback/build": "^6.2.1",
33
- "@loopback/eslint-config": "^9.0.1",
34
- "@loopback/testlab": "^3.2.3",
32
+ "@loopback/build": "^6.2.5",
33
+ "@loopback/eslint-config": "^10.0.1",
34
+ "@loopback/testlab": "^3.2.7",
35
35
  "@types/debug": "^4.1.5",
36
- "@types/lodash": "^4.14.159",
37
- "@types/node": "^10.17.28"
36
+ "@types/lodash": "^4.14.161",
37
+ "@types/node": "^10.17.35"
38
38
  },
39
39
  "keywords": [
40
40
  "LoopBack",
@@ -52,5 +52,5 @@
52
52
  "url": "https://github.com/strongloop/loopback-next.git",
53
53
  "directory": "packages/metadata"
54
54
  },
55
- "gitHead": "a056555744367da9caccb6be64095e27d2fe2e28"
55
+ "gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
56
56
  }
@@ -121,17 +121,21 @@ export class DecoratorFactory<
121
121
  }
122
122
 
123
123
  /**
124
- * Get the qualified name of a decoration target. For example:
125
- * ```
126
- * class MyClass
127
- * MyClass.constructor[0] // First parameter of the constructor
128
- * MyClass.myStaticProperty
129
- * MyClass.myStaticMethod()
130
- * MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
131
- * MyClass.prototype.myProperty
132
- * MyClass.prototype.myMethod()
133
- * MyClass.prototype.myMethod[1] // Second parameter of myMethod
134
- * ```
124
+ * Get the qualified name of a decoration target.
125
+ *
126
+ * @remarks
127
+ *
128
+ * Example of target names:
129
+ *
130
+ * - class MyClass
131
+ * - MyClass.constructor[0] // First parameter of the constructor
132
+ * - MyClass.myStaticProperty
133
+ * - MyClass.myStaticMethod()
134
+ * - MyClass.myStaticMethod[0] // First parameter of the myStaticMethod
135
+ * - MyClass.prototype.myProperty
136
+ * - MyClass.prototype.myMethod()
137
+ * - MyClass.prototype.myMethod[1] // Second parameter of myMethod
138
+ *
135
139
  * @param target - Class or prototype of a class
136
140
  * @param member - Optional property/method name
137
141
  * @param descriptorOrIndex - Optional method descriptor or parameter index
@@ -337,11 +341,11 @@ export class DecoratorFactory<
337
341
  * @param options - Options for the decorator
338
342
  */
339
343
  protected static _createDecorator<
340
- T,
341
- M extends T | MetadataMap<T> | MetadataMap<T[]>,
342
- D extends DecoratorType
343
- >(key: MetadataKey<T, D>, spec: T, options?: DecoratorOptions): D {
344
- const inst = new this<T, M, D>(key.toString(), spec, options);
344
+ S,
345
+ MT extends S | MetadataMap<S> | MetadataMap<S[]>,
346
+ DT extends DecoratorType
347
+ >(key: MetadataKey<S, DT>, spec: S, options?: DecoratorOptions): DT {
348
+ const inst = new this<S, MT, DT>(key.toString(), spec, options);
345
349
  return inst.create();
346
350
  }
347
351
 
@@ -422,12 +426,12 @@ export class ClassDecoratorFactory<T> extends DecoratorFactory<
422
426
  * @param spec - Metadata object from the decorator function
423
427
  * @param options - Options for the decorator
424
428
  */
425
- static createDecorator<T>(
426
- key: MetadataKey<T, ClassDecorator>,
427
- spec: T,
429
+ static createDecorator<S>(
430
+ key: MetadataKey<S, ClassDecorator>,
431
+ spec: S,
428
432
  options?: DecoratorOptions,
429
433
  ) {
430
- return super._createDecorator<T, T, ClassDecorator>(key, spec, options);
434
+ return super._createDecorator<S, S, ClassDecorator>(key, spec, options);
431
435
  }
432
436
  }
433
437
 
@@ -483,12 +487,12 @@ export class PropertyDecoratorFactory<T> extends DecoratorFactory<
483
487
  * @param spec - Metadata object from the decorator function
484
488
  * @param options - Options for the decorator
485
489
  */
486
- static createDecorator<T>(
487
- key: MetadataKey<T, PropertyDecorator>,
488
- spec: T,
490
+ static createDecorator<S>(
491
+ key: MetadataKey<S, PropertyDecorator>,
492
+ spec: S,
489
493
  options?: DecoratorOptions,
490
494
  ) {
491
- return super._createDecorator<T, MetadataMap<T>, PropertyDecorator>(
495
+ return super._createDecorator<S, MetadataMap<S>, PropertyDecorator>(
492
496
  key,
493
497
  spec,
494
498
  options,
@@ -549,12 +553,12 @@ export class MethodDecoratorFactory<T> extends DecoratorFactory<
549
553
  * @param spec - Metadata object from the decorator function
550
554
  * @param options - Options for the decorator
551
555
  */
552
- static createDecorator<T>(
553
- key: MetadataKey<T, MethodDecorator>,
554
- spec: T,
556
+ static createDecorator<S>(
557
+ key: MetadataKey<S, MethodDecorator>,
558
+ spec: S,
555
559
  options?: DecoratorOptions,
556
560
  ) {
557
- return super._createDecorator<T, MetadataMap<T>, MethodDecorator>(
561
+ return super._createDecorator<S, MetadataMap<S>, MethodDecorator>(
558
562
  key,
559
563
  spec,
560
564
  options,
@@ -642,12 +646,12 @@ export class ParameterDecoratorFactory<T> extends DecoratorFactory<
642
646
  * @param spec - Metadata object from the decorator function
643
647
  * @param options - Options for the decorator
644
648
  */
645
- static createDecorator<T>(
646
- key: MetadataKey<T, ParameterDecorator>,
647
- spec: T,
649
+ static createDecorator<S>(
650
+ key: MetadataKey<S, ParameterDecorator>,
651
+ spec: S,
648
652
  options?: DecoratorOptions,
649
653
  ) {
650
- return super._createDecorator<T, MetadataMap<T[]>, ParameterDecorator>(
654
+ return super._createDecorator<S, MetadataMap<S[]>, ParameterDecorator>(
651
655
  key,
652
656
  spec,
653
657
  options,
@@ -777,12 +781,12 @@ export class MethodParameterDecoratorFactory<T> extends DecoratorFactory<
777
781
  * @param spec - Metadata object from the decorator function
778
782
  * @param options - Options for the decorator
779
783
  */
780
- static createDecorator<T>(
781
- key: MetadataKey<T, MethodDecorator>,
782
- spec: T,
784
+ static createDecorator<S>(
785
+ key: MetadataKey<S, MethodDecorator>,
786
+ spec: S,
783
787
  options?: DecoratorOptions,
784
788
  ) {
785
- return super._createDecorator<T, MetadataMap<T[]>, MethodDecorator>(
789
+ return super._createDecorator<S, MetadataMap<S[]>, MethodDecorator>(
786
790
  key,
787
791
  spec,
788
792
  options,
package/src/inspector.ts CHANGED
@@ -2,7 +2,8 @@
2
2
  // Node module: @loopback/metadata
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
5
-
5
+ import debugModule from 'debug';
6
+ import {DecoratorFactory} from './decorator-factory';
6
7
  import {NamespacedReflect, Reflector} from './reflect';
7
8
  import {
8
9
  DecoratorType,
@@ -11,6 +12,8 @@ import {
11
12
  MetadataMap,
12
13
  } from './types';
13
14
 
15
+ const debug = debugModule('loopback:metadata:inspector');
16
+
14
17
  /**
15
18
  * TypeScript reflector without a namespace. The TypeScript compiler can be
16
19
  * configured to add design time metadata.
@@ -207,23 +210,31 @@ export class MetadataInspector {
207
210
  * Get TypeScript design time type for a property
208
211
  * @param target - Class or prototype
209
212
  * @param propertyName - Property name
213
+ * @returns Design time metadata. The return value is `undefined` when:
214
+ * - The property has type `undefined`, `null` or a complex type like
215
+ * `Partial<MyModel>`, `string | number`, `string[]`.
216
+ * - The TypeScript project has not enabled the compiler option `emitDecoratorMetadata`.
217
+ * - The code is written in vanilla JavaScript.
210
218
  */
211
219
  static getDesignTypeForProperty(
212
220
  target: Object,
213
221
  propertyName: string,
214
- ): Function {
222
+ ): Function | undefined {
215
223
  return TSReflector.getMetadata('design:type', target, propertyName);
216
224
  }
217
225
 
218
226
  /**
219
- * Get TypeScript design time type for a method
227
+ * Get TypeScript design time type for a method.
220
228
  * @param target - Class or prototype
221
229
  * @param methodName - Method name
230
+ * @returns Design time metadata. The return value is `undefined`
231
+ * in projects that do not enable `emitDecoratorMetadata`
232
+ * in TypeScript compiler options or are written in vanilla JavaScript.
222
233
  */
223
234
  static getDesignTypeForMethod(
224
235
  target: Object,
225
236
  methodName: string,
226
- ): DesignTimeMethodMetadata {
237
+ ): DesignTimeMethodMetadata | undefined {
227
238
  const type = TSReflector.getMetadata('design:type', target, methodName);
228
239
  const parameterTypes = TSReflector.getMetadata(
229
240
  'design:paramtypes',
@@ -235,6 +246,25 @@ export class MetadataInspector {
235
246
  target,
236
247
  methodName,
237
248
  );
249
+
250
+ if (
251
+ type === undefined &&
252
+ parameterTypes === undefined &&
253
+ returnType === undefined
254
+ ) {
255
+ /* istanbul ignore next */
256
+ if (debug.enabled) {
257
+ const targetName = DecoratorFactory.getTargetName(target, methodName);
258
+ debug(
259
+ 'No design-time type metadata found while inspecting %s. ' +
260
+ 'Did you forget to enable TypeScript compiler option `emitDecoratorMetadata`?',
261
+ targetName,
262
+ );
263
+ }
264
+
265
+ return undefined;
266
+ }
267
+
238
268
  return {
239
269
  type,
240
270
  parameterTypes,
package/src/types.ts CHANGED
@@ -17,6 +17,7 @@ export type DecoratorType =
17
17
  * @typeParam T - Type of the metadata value
18
18
  * @typeParam D - Type of the decorator
19
19
  */
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
21
  export class MetadataAccessor<T, D extends DecoratorType = DecoratorType> {
21
22
  private constructor(public readonly key: string) {}
22
23
 
@@ -27,11 +28,11 @@ export class MetadataAccessor<T, D extends DecoratorType = DecoratorType> {
27
28
  /**
28
29
  * Create a strongly-typed metadata accessor
29
30
  * @param key - The metadata key
30
- * @typeParam T - Type of the metadata value
31
- * @typeParam D - Type of the decorator
31
+ * @typeParam V - Type of the metadata value
32
+ * @typeParam DT - Type of the decorator
32
33
  */
33
- static create<T, D extends DecoratorType>(key: string) {
34
- return new MetadataAccessor<T, D>(key);
34
+ static create<V, DT extends DecoratorType>(key: string) {
35
+ return new MetadataAccessor<V, DT>(key);
35
36
  }
36
37
  }
37
38
 
@@ -76,15 +77,18 @@ export interface MetadataMap<T> {
76
77
  */
77
78
  export interface DesignTimeMethodMetadata {
78
79
  /**
79
- * Type of the method itself. It is `Function`
80
+ * Type of the method itself. It is `Function` for methods, `undefined` for the constructor.
80
81
  */
81
- type: Function;
82
+ type: Function | undefined;
83
+
82
84
  /**
83
- * An array of parameter types
85
+ * An array of parameter types.
84
86
  */
87
+
85
88
  parameterTypes: Function[];
89
+
86
90
  /**
87
- * Return type
91
+ * Return type, may be `undefined` (e.g. for constructors).
88
92
  */
89
- returnType: Function;
93
+ returnType: Function | undefined;
90
94
  }