@dipscope/type-manager 7.1.1 → 7.2.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +34 -0
  3. package/dist/es2015/index.js +4 -0
  4. package/dist/es2015/index.js.map +1 -1
  5. package/dist/es2015/inject-decorator.js +2 -0
  6. package/dist/es2015/inject-decorator.js.map +1 -0
  7. package/dist/es2015/inject.js.map +1 -1
  8. package/dist/es2015/property-decorator.js +2 -0
  9. package/dist/es2015/property-decorator.js.map +1 -0
  10. package/dist/es2015/property.js +36 -12
  11. package/dist/es2015/property.js.map +1 -1
  12. package/dist/es2015/type-decorator.js +2 -0
  13. package/dist/es2015/type-decorator.js.map +1 -0
  14. package/dist/es2015/type-manager.js +4 -1
  15. package/dist/es2015/type-manager.js.map +1 -1
  16. package/dist/es2015/type-metadata.js +41 -9
  17. package/dist/es2015/type-metadata.js.map +1 -1
  18. package/dist/es2015/type-scope.js +59 -0
  19. package/dist/es2015/type-scope.js.map +1 -0
  20. package/dist/es2015/type.js +3 -1
  21. package/dist/es2015/type.js.map +1 -1
  22. package/dist/es5/index.js +4 -0
  23. package/dist/es5/index.js.map +1 -1
  24. package/dist/es5/inject-decorator.js +2 -0
  25. package/dist/es5/inject-decorator.js.map +1 -0
  26. package/dist/es5/inject.js.map +1 -1
  27. package/dist/es5/property-decorator.js +2 -0
  28. package/dist/es5/property-decorator.js.map +1 -0
  29. package/dist/es5/property.js +36 -12
  30. package/dist/es5/property.js.map +1 -1
  31. package/dist/es5/type-decorator.js +2 -0
  32. package/dist/es5/type-decorator.js.map +1 -0
  33. package/dist/es5/type-manager.js +4 -1
  34. package/dist/es5/type-manager.js.map +1 -1
  35. package/dist/es5/type-metadata.js +94 -18
  36. package/dist/es5/type-metadata.js.map +1 -1
  37. package/dist/es5/type-scope.js +103 -0
  38. package/dist/es5/type-scope.js.map +1 -0
  39. package/dist/es5/type.js +3 -1
  40. package/dist/es5/type.js.map +1 -1
  41. package/dist/types/index.d.ts +4 -0
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/inject-decorator.d.ts +7 -0
  44. package/dist/types/inject-decorator.d.ts.map +1 -0
  45. package/dist/types/inject.d.ts +3 -2
  46. package/dist/types/inject.d.ts.map +1 -1
  47. package/dist/types/property-decorator.d.ts +7 -0
  48. package/dist/types/property-decorator.d.ts.map +1 -0
  49. package/dist/types/property.d.ts +1 -0
  50. package/dist/types/property.d.ts.map +1 -1
  51. package/dist/types/type-decorator.d.ts +7 -0
  52. package/dist/types/type-decorator.d.ts.map +1 -0
  53. package/dist/types/type-manager.d.ts +7 -0
  54. package/dist/types/type-manager.d.ts.map +1 -1
  55. package/dist/types/type-metadata.d.ts +25 -5
  56. package/dist/types/type-metadata.d.ts.map +1 -1
  57. package/dist/types/type-options.d.ts +8 -0
  58. package/dist/types/type-options.d.ts.map +1 -1
  59. package/dist/types/type-scope.d.ts +68 -0
  60. package/dist/types/type-scope.d.ts.map +1 -0
  61. package/dist/types/type.d.ts +3 -2
  62. package/dist/types/type.d.ts.map +1 -1
  63. package/dist/umd/index.js +1 -1
  64. package/dist/umd/index.js.map +1 -1
  65. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [7.2.1] - 2024-02-18
9
+
10
+ ### Fixed
11
+
12
+ - TypeScript 5 decorators do not work.
13
+ - Circular loop when using multiple inheritance through the decorator type options.
14
+
15
+ ## [7.2.0] - 2023-10-18
16
+
17
+ ### Added
18
+
19
+ - Support for polymorphic serialization based on interface types.
20
+
8
21
  ## [7.1.1] - 2023-08-19
9
22
 
10
23
  ### Fixed
package/README.md CHANGED
@@ -39,6 +39,7 @@ If you like or are using this project please give it a star. Thanks!
39
39
  * [Serializer option](#serializer-option)
40
40
  * [Use default value option](#use-default-value-option)
41
41
  * [Use implicit conversion option](#use-implicit-conversion-option)
42
+ * [Parent type functions option](#parent-type-functions-option)
42
43
  * [Defining configuration manually](#defining-configuration-manually)
43
44
  * [Configuring global options](#configuring-global-options)
44
45
  * [Configuring options per type](#configuring-options-per-type)
@@ -182,6 +183,8 @@ TypeScript needs to run with the `experimentalDecorators` and `emitDecoratorMeta
182
183
 
183
184
  _If you want additional type-safety and reduced syntax you may wish to install [reflect-metadata](https://github.com/rbuckton/reflect-metadata). This step is on your choice and fully optional. When installed it must be available globally to work. This can usually be done with `import 'reflect-metadata';` in your main index file._
184
185
 
186
+ Starting from TypeScript 5 we also support modern decorator syntax. However because parameter decorations with the modern syntax at the time of this writing are not supported - you will not be able to use `Inject` decorator provided by the library as well as `reflect-metadata` package when decide to use modern syntax. We are going to add support as soon as it will be provided to us by the TypeScript. If you need `Inject` decorator and enabling legacy decorators support is not an option - you can use declarative configuration.
187
+
185
188
  ## How it works?
186
189
 
187
190
  It defines configuration for each object which you are going to serialize or deserialize and uses this configuration to process data of your choice. There are two possible ways to define a configuration:
@@ -999,6 +1002,37 @@ export class User
999
1002
 
1000
1003
  With this any value which can be converted to `String` will be converted properly. Such behaviour works for other built in serializers and supported for custom ones. By default implicit conversion is turned off. You can enable it using `useImplicitConversion` option per type and property or enable globally using `TypeManager` configure method.
1001
1004
 
1005
+ ### Parent type functions option
1006
+
1007
+ When type implements interfaces which represent other classes this information got lost during `TypeScript` compilation process and there is no way to extract it. This option can be used to provide such information for a `TypeManager` to be used during serialization and deserialization.
1008
+
1009
+ ```typescript
1010
+ import { Type, Property } from '@dipscope/type-manager';
1011
+
1012
+ @Type()
1013
+ export abstract class Entity
1014
+ {
1015
+ @Property(String) public id?: string;
1016
+ }
1017
+
1018
+ @Type()
1019
+ export abstract class UserStatus extends Entity
1020
+ {
1021
+ @Property(String) public title?: string;
1022
+ }
1023
+
1024
+ @Type({
1025
+ parentTypeFns: [UserStatus]
1026
+ })
1027
+ export class ActiveUserStatus extends Entity implements UserStatus
1028
+ {
1029
+ @Property(String) public title?: string;
1030
+ @Property(Boolean) public active?: boolean;
1031
+ }
1032
+ ```
1033
+
1034
+ Note that usually only implemented classes should be specified as direct parents are already known to a `TypeManager`. However even if we specify both - it will work properly.
1035
+
1002
1036
  ## Defining configuration manually
1003
1037
 
1004
1038
  There are circumstances when decorators cannot be used or you don't want to. For example you are using a 3rd party package and cannot decorate classes from it. Another use case when you want to configure some options globally. In such scenarios you can define the complete configuration through special configure methods.
@@ -22,6 +22,7 @@ export * from './generic-argument';
22
22
  export * from './generic-metadata-resolver';
23
23
  export * from './generic-metadata';
24
24
  export * from './generic-structure';
25
+ export * from './inject-decorator';
25
26
  export * from './inject-index';
26
27
  export * from './inject-internals';
27
28
  export * from './inject-metadata';
@@ -33,6 +34,7 @@ export * from './log-level';
33
34
  export * from './log';
34
35
  export * from './metadata';
35
36
  export * from './naming-convention';
37
+ export * from './property-decorator';
36
38
  export * from './property-extension-metadata-ctor-set-key';
37
39
  export * from './property-extension-metadata-ctor';
38
40
  export * from './property-extension-metadata';
@@ -58,6 +60,7 @@ export * from './type-configuration';
58
60
  export * from './type-context-entry';
59
61
  export * from './type-context';
60
62
  export * from './type-ctor';
63
+ export * from './type-decorator';
61
64
  export * from './type-extension-metadata-ctor-set-key';
62
65
  export * from './type-extension-metadata-ctor';
63
66
  export * from './type-extension-metadata';
@@ -74,6 +77,7 @@ export * from './type-name';
74
77
  export * from './type-options-base';
75
78
  export * from './type-options';
76
79
  export * from './type-resolver';
80
+ export * from './type-scope';
77
81
  export * from './type';
78
82
  export * from './unknown';
79
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inject-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-decorator.js","sourceRoot":"","sources":["../../src/inject-decorator.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,MAAM,UAAU,MAAM,CAAQ,CAAgD;IAE1E,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAyB,CAAC;IAErE,IAAI,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EACjD;QACI,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;KACzB;IAED,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EACtD;QACI,aAAa,CAAC,MAAM,GAAG,CAAkB,CAAC;KAC7C;IAED,OAAO,UAAU,MAAW,EAAE,YAA6B,EAAE,WAAmB;QAE5E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAC3B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,mDAAmD,CAAC,CAAC;SAC7H;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC1B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;SACnH;QAED,MAAM,MAAM,GAAG,MAAqB,CAAC;QAErC,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE9F,OAAO;IACX,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,MAAM,UAAU,MAAM,CAAQ,CAAgD;IAE1E,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAyB,CAAC;IAErE,IAAI,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EACjD;QACI,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;KACzB;IAED,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EACtD;QACI,aAAa,CAAC,MAAM,GAAG,CAAkB,CAAC;KAC7C;IAED,OAAO,UAAU,MAAW,EAAE,YAAyC,EAAE,WAAmB;QAExF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAC3B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,mDAAmD,CAAC,CAAC;SAC7H;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC1B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;SACnH;QAED,MAAM,MAAM,GAAG,MAAqB,CAAC;QAErC,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE9F,OAAO;IACX,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=property-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-decorator.js","sourceRoot":"","sources":["../../src/property-decorator.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { isArray, isFunction, isObject, isString, isSymbol, merge } from 'lodash';
1
+ import { isArray, isFunction, isObject, isString, isSymbol, isUndefined, merge } from 'lodash';
2
2
  import { isCtorFunction } from './functions/is-ctor-function';
3
3
  import { nameOf } from './functions/name-of';
4
4
  import { TypeManager } from './type-manager';
@@ -22,19 +22,43 @@ export function Property(x, y, z) {
22
22
  if (isString(x) || isFunction(x) || isCtorFunction(x)) {
23
23
  propertyOptions.typeArgument = x;
24
24
  }
25
- return function (target, propertyName) {
26
- if (isCtorFunction(target)) {
27
- throw new Error(`${nameOf(target)}.${String(propertyName)}: property decorator cannot be applied to a static member.`);
25
+ return function (target, context) {
26
+ if (isObject(context) && context.hasOwnProperty('kind')) {
27
+ const decoratorContext = context;
28
+ const kind = decoratorContext.kind;
29
+ const propertyName = decoratorContext.name;
30
+ if (kind === 'method' || kind === 'class') {
31
+ throw new Error(`${String(propertyName)}: property decorator cannot be applied to a method or a class.`);
32
+ }
33
+ if (isUndefined(propertyName)) {
34
+ throw new Error(`${String(propertyName)}: property decorator cannot be applied to undefined values.`);
35
+ }
36
+ if (isSymbol(propertyName)) {
37
+ throw new Error(`${String(propertyName)}: property decorator cannot be applied to a symbol.`);
38
+ }
39
+ TypeManager.typeScope.addPropertyOptions(propertyName, propertyOptions);
40
+ return;
28
41
  }
29
- if (isSymbol(propertyName)) {
30
- throw new Error(`${nameOf(target.constructor)}.${String(propertyName)}: property decorator cannot be applied to a symbol.`);
42
+ if (isObject(target) && (isString(context) || isSymbol(context))) {
43
+ const legacyTarget = target;
44
+ const propertyName = context;
45
+ if (isCtorFunction(legacyTarget)) {
46
+ throw new Error(`${nameOf(legacyTarget)}.${String(propertyName)}: property decorator cannot be applied to a static member.`);
47
+ }
48
+ if (isUndefined(propertyName)) {
49
+ throw new Error(`${nameOf(legacyTarget)}.${String(propertyName)}: property decorator cannot be applied to undefined values.`);
50
+ }
51
+ if (isSymbol(propertyName)) {
52
+ throw new Error(`${nameOf(legacyTarget.constructor)}.${String(propertyName)}: property decorator cannot be applied to a symbol.`);
53
+ }
54
+ if (isFunction(legacyTarget[propertyName])) {
55
+ throw new Error(`${nameOf(legacyTarget.constructor)}.${String(propertyName)}: property decorator cannot be applied to a method.`);
56
+ }
57
+ const typeFn = legacyTarget.constructor;
58
+ TypeManager.configureTypeMetadata(typeFn).configurePropertyMetadata(propertyName, propertyOptions);
59
+ return;
31
60
  }
32
- if (isFunction(target[propertyName])) {
33
- throw new Error(`${nameOf(target.constructor)}.${String(propertyName)}: property decorator cannot be applied to a method.`);
34
- }
35
- const typeFn = target.constructor;
36
- TypeManager.configureTypeMetadata(typeFn).configurePropertyMetadata(propertyName, propertyOptions);
37
- return;
61
+ throw new Error(`Property decorator was not able to detect correct resolver for the following target [${target}] and context [${context}].`);
38
62
  };
39
63
  }
40
64
  //# sourceMappingURL=property.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"property.js","sourceRoot":"","sources":["../../src/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAK7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C,MAAM,UAAU,QAAQ,CACpB,CAA8E,EAC9E,CAAwD,EACxD,CAA0B;IAG1B,MAAM,eAAe,GAAG,EAA4B,CAAC;IAErD,IAAI,QAAQ,CAAC,CAAC,CAAC,EACf;QACI,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC7B;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9B;QACI,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC7B;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9B;QACI,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC7B;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,EACd;QACI,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC;KACxC;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,EACd;QACI,eAAe,CAAC,gBAAgB,GAAG,CAAC,CAAC;KACxC;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EACrD;QACI,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;KACpC;IAED,OAAO,UAAU,MAAW,EAAE,YAA6B;QAEvD,IAAI,cAAc,CAAC,MAAM,CAAC,EAC1B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,4DAA4D,CAAC,CAAC;SAC1H;QAED,IAAI,QAAQ,CAAC,YAAY,CAAC,EAC1B;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;SAC/H;QAED,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EACpC;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,qDAAqD,CAAC,CAAC;SAC/H;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,WAA0B,CAAC;QAEjD,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAEnG,OAAO;IACX,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"property.js","sourceRoot":"","sources":["../../src/property.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-decorator.js","sourceRoot":"","sources":["../../src/type-decorator.ts"],"names":[],"mappings":""}
@@ -32,6 +32,7 @@ import { Uint8ClampedArraySerializer } from './serializers/uint-8-clamped-array-
32
32
  import { UnknownSerializer } from './serializers/unknown-serializer';
33
33
  import { TypeMetadata } from './type-metadata';
34
34
  import { typeMetadataSymbol } from './type-metadata-symbol';
35
+ import { TypeScope } from './type-scope';
35
36
  import { Unknown } from './unknown';
36
37
  export class TypeManager {
37
38
  constructor(typeManagerOptions = {}) {
@@ -162,7 +163,8 @@ export class TypeManager {
162
163
  const symbol = this.symbol;
163
164
  const parentPrototype = (_a = Object.getPrototypeOf(typeFn.prototype)) !== null && _a !== void 0 ? _a : {};
164
165
  const parentTypeMetadata = parentPrototype[symbol];
165
- const typeMetadata = new TypeMetadata(this, typeFn, mapTypeOptions, parentTypeMetadata);
166
+ const parentTypeMetadatas = isNil(parentTypeMetadata) ? [] : [parentTypeMetadata];
167
+ const typeMetadata = new TypeMetadata(this, typeFn, mapTypeOptions, parentTypeMetadatas);
166
168
  return typeMetadata;
167
169
  }
168
170
  static extractTypeMetadata(typeFn) {
@@ -317,4 +319,5 @@ TypeManager.defaultTypeOptionsMap = new Map([
317
319
  [Unknown, { serializer: new UnknownSerializer(), serializedDefaultValue: undefined, deserializedDefaultValue: undefined }]
318
320
  ]);
319
321
  TypeManager.staticTypeManager = new TypeManager();
322
+ TypeManager.typeScope = new TypeScope();
320
323
  //# sourceMappingURL=type-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-manager.js","sourceRoot":"","sources":["../../src/type-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-manager.js","sourceRoot":"","sources":["../../src/type-manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isFunction, isNil, isUndefined } from 'lodash';
1
+ import { first, isEmpty, isFunction, isNil, isUndefined } from 'lodash';
2
2
  import { CustomContext } from './custom-context';
3
3
  import { getOwnReflectMetadata } from './functions/get-own-reflect-metadata';
4
4
  import { nameOf } from './functions/name-of';
@@ -7,7 +7,7 @@ import { Metadata } from './metadata';
7
7
  import { PropertyMetadata } from './property-metadata';
8
8
  import { typeExtensionMetadataCtorSetKey } from './type-extension-metadata-ctor-set-key';
9
9
  export class TypeMetadata extends Metadata {
10
- constructor(typeManager, typeFn, typeOptions, parentTypeMetadata) {
10
+ constructor(typeManager, typeFn, typeOptions, parentTypeMetadatas) {
11
11
  super(typeManager);
12
12
  this.childrenTypeMetadataMap = new Map();
13
13
  this.discriminantMap = new Map();
@@ -18,12 +18,15 @@ export class TypeMetadata extends Metadata {
18
18
  this.typeOptionsBase = typeManager.typeOptionsBase;
19
19
  this.typeOptions = this.constructTypeOptions(typeOptions);
20
20
  this.typeInternals = this.constructTypeInternals();
21
- this.parentTypeMetadata = parentTypeMetadata;
21
+ this.parentTypeMetadatas = parentTypeMetadatas;
22
22
  this.deriveParentTypeMetadataProperties();
23
23
  this.hasDiscriminant(this.discriminant);
24
24
  this.configure(typeOptions);
25
25
  return;
26
26
  }
27
+ get parentTypeMetadata() {
28
+ return first(this.parentTypeMetadatas);
29
+ }
27
30
  get alias() {
28
31
  return this.typeOptions.alias;
29
32
  }
@@ -169,6 +172,9 @@ export class TypeMetadata extends Metadata {
169
172
  }
170
173
  return injectOptionsMap;
171
174
  }
175
+ get parentTypeFns() {
176
+ return this.typeOptions.parentTypeFns;
177
+ }
172
178
  constructTypeOptions(typeOptions) {
173
179
  return typeOptions;
174
180
  }
@@ -179,13 +185,17 @@ export class TypeMetadata extends Metadata {
179
185
  return typeInternals;
180
186
  }
181
187
  deriveParentTypeMetadataProperties() {
182
- if (isNil(this.parentTypeMetadata)) {
188
+ if (isEmpty(this.parentTypeMetadatas)) {
183
189
  return this;
184
190
  }
185
- for (const [propertyName, propertyMetadata] of this.parentTypeMetadata.propertyMetadataMap) {
186
- this.propertyMetadataMap.set(propertyName, propertyMetadata);
191
+ for (const parentTypeMetadata of this.parentTypeMetadatas) {
192
+ for (const [propertyName, propertyMetadata] of parentTypeMetadata.propertyMetadataMap) {
193
+ if (!this.propertyMetadataMap.has(propertyName)) {
194
+ this.propertyMetadataMap.set(propertyName, propertyMetadata);
195
+ }
196
+ }
197
+ parentTypeMetadata.childrenTypeMetadataMap.set(this.typeFn, this);
187
198
  }
188
- this.parentTypeMetadata.childrenTypeMetadataMap.set(this.typeFn, this);
189
199
  return this;
190
200
  }
191
201
  reflectInjectMetadata() {
@@ -254,8 +264,10 @@ export class TypeMetadata extends Metadata {
254
264
  }
255
265
  provideDiscriminant(typeFn, discriminant) {
256
266
  this.discriminantMap.set(typeFn, discriminant);
257
- if (!isNil(this.parentTypeMetadata)) {
258
- this.parentTypeMetadata.provideDiscriminant(typeFn, discriminant);
267
+ if (!isEmpty(this.parentTypeMetadatas)) {
268
+ for (const parentTypeMetadata of this.parentTypeMetadatas) {
269
+ parentTypeMetadata.provideDiscriminant(typeFn, discriminant);
270
+ }
259
271
  }
260
272
  return this;
261
273
  }
@@ -367,7 +379,27 @@ export class TypeMetadata extends Metadata {
367
379
  const typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
368
380
  return typeExtensionMetadata;
369
381
  }
382
+ hasParentTypeFns(parentTypeFns) {
383
+ if (isNil(this.typeOptions.parentTypeFns)) {
384
+ this.typeOptions.parentTypeFns = new Array();
385
+ }
386
+ for (const parentTypeFn of parentTypeFns) {
387
+ const parentTypeMetadata = this.typeManager.extractTypeMetadata(parentTypeFn);
388
+ if (!this.parentTypeMetadatas.some(ptm => ptm === parentTypeMetadata)) {
389
+ this.parentTypeMetadatas.push(parentTypeMetadata);
390
+ }
391
+ if (!this.typeOptions.parentTypeFns.some(ptf => ptf === parentTypeFn)) {
392
+ this.typeOptions.parentTypeFns.push(parentTypeFn);
393
+ }
394
+ }
395
+ this.deriveParentTypeMetadataProperties();
396
+ this.hasDiscriminant(this.discriminant);
397
+ return this;
398
+ }
370
399
  configure(typeOptions) {
400
+ if (!isUndefined(typeOptions.parentTypeFns)) {
401
+ this.hasParentTypeFns(typeOptions.parentTypeFns);
402
+ }
371
403
  if (!isUndefined(typeOptions.alias)) {
372
404
  this.hasAlias(typeOptions.alias);
373
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type-metadata.js","sourceRoot":"","sources":["../../src/type-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-metadata.js","sourceRoot":"","sources":["../../src/type-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { isNil } from 'lodash';
2
+ export class TypeScope {
3
+ constructor() {
4
+ this.opened = false;
5
+ this.propertyOptionsArrayMap = new Map();
6
+ this.injectOptionsArrayMap = new Map();
7
+ return;
8
+ }
9
+ open() {
10
+ this.opened = true;
11
+ this.propertyOptionsArrayMap.clear();
12
+ this.injectOptionsArrayMap.clear();
13
+ return this;
14
+ }
15
+ addPropertyOptions(propertyName, propertyOptions) {
16
+ if (!this.opened) {
17
+ return this;
18
+ }
19
+ let propertyOptionsArray = this.propertyOptionsArrayMap.get(propertyName);
20
+ if (isNil(propertyOptionsArray)) {
21
+ propertyOptionsArray = new Array();
22
+ this.propertyOptionsArrayMap.set(propertyName, propertyOptionsArray);
23
+ }
24
+ propertyOptionsArray.push(propertyOptions);
25
+ return this;
26
+ }
27
+ addInjectOptions(injectIndex, injectOptions) {
28
+ if (!this.opened) {
29
+ return this;
30
+ }
31
+ let injectOptionsArray = this.injectOptionsArrayMap.get(injectIndex);
32
+ if (isNil(injectOptionsArray)) {
33
+ injectOptionsArray = new Array();
34
+ this.injectOptionsArrayMap.set(injectIndex, injectOptionsArray);
35
+ }
36
+ injectOptionsArray.push(injectOptions);
37
+ return this;
38
+ }
39
+ close(typeMetadata) {
40
+ if (!this.opened) {
41
+ return this;
42
+ }
43
+ for (const [propertyName, propertyOptionsArray] of this.propertyOptionsArrayMap) {
44
+ for (const propertyOptions of propertyOptionsArray) {
45
+ typeMetadata.configurePropertyMetadata(propertyName, propertyOptions);
46
+ }
47
+ }
48
+ for (const [injectIndex, injectOptionsArray] of this.injectOptionsArrayMap) {
49
+ for (const injectOptions of injectOptionsArray) {
50
+ typeMetadata.configureInjectMetadata(injectIndex, injectOptions);
51
+ }
52
+ }
53
+ this.injectOptionsArrayMap.clear();
54
+ this.propertyOptionsArrayMap.clear();
55
+ this.opened = false;
56
+ return this;
57
+ }
58
+ }
59
+ //# sourceMappingURL=type-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-scope.js","sourceRoot":"","sources":["../../src/type-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAa/B,MAAM,OAAO,SAAS;IA0BlB;QAEI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAA6C,CAAC;QACpF,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAA0C,CAAC;QAE/E,OAAO;IACX,CAAC;IAOM,IAAI;QAEP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAUM,kBAAkB,CAAC,YAA0B,EAAE,eAAqC;QAEvF,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB;YACI,OAAO,IAAI,CAAC;SACf;QAED,IAAI,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE1E,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAC/B;YACI,oBAAoB,GAAG,IAAI,KAAK,EAAwB,CAAC;YAEzD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;SACxE;QAED,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAUM,gBAAgB,CAAC,WAAwB,EAAE,aAAiC;QAE/E,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB;YACI,OAAO,IAAI,CAAC;SACf;QAED,IAAI,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAC7B;YACI,kBAAkB,GAAG,IAAI,KAAK,EAAsB,CAAC;YAErD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;SACnE;QAED,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC;IAChB,CAAC;IASM,KAAK,CAAC,YAA+B;QAExC,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB;YACI,OAAO,IAAI,CAAC;SACf;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAC/E;YACI,KAAK,MAAM,eAAe,IAAI,oBAAoB,EAClD;gBACI,YAAY,CAAC,yBAAyB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;aACzE;SACJ;QAED,KAAK,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAC1E;YACI,KAAK,MAAM,aAAa,IAAI,kBAAkB,EAC9C;gBACI,YAAY,CAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;aACpE;SACJ;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1,8 +1,10 @@
1
1
  import { TypeManager } from './type-manager';
2
2
  export function Type(typeOptions) {
3
+ TypeManager.typeScope.open();
3
4
  return function (target) {
4
5
  const typeFn = target;
5
- TypeManager.configureTypeMetadata(typeFn, typeOptions).reflectInjectMetadata();
6
+ const typeMetadata = TypeManager.configureTypeMetadata(typeFn, typeOptions).reflectInjectMetadata();
7
+ TypeManager.typeScope.close(typeMetadata);
6
8
  return target;
7
9
  };
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C,MAAM,UAAU,IAAI,CAAQ,WAAgC;IAExD,OAAO,UAAU,MAAW;QAExB,MAAM,MAAM,GAAG,MAAuB,CAAC;QAEvC,WAAW,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAE/E,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C,MAAM,UAAU,IAAI,CAAQ,WAAgC;IAExD,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAE7B,OAAO,UAAU,MAAW;QAExB,MAAM,MAAM,GAAG,MAAuB,CAAC;QACvC,MAAM,YAAY,GAAG,WAAW,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAEpG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
package/dist/es5/index.js CHANGED
@@ -22,6 +22,7 @@ export * from './generic-argument';
22
22
  export * from './generic-metadata-resolver';
23
23
  export * from './generic-metadata';
24
24
  export * from './generic-structure';
25
+ export * from './inject-decorator';
25
26
  export * from './inject-index';
26
27
  export * from './inject-internals';
27
28
  export * from './inject-metadata';
@@ -33,6 +34,7 @@ export * from './log-level';
33
34
  export * from './log';
34
35
  export * from './metadata';
35
36
  export * from './naming-convention';
37
+ export * from './property-decorator';
36
38
  export * from './property-extension-metadata-ctor-set-key';
37
39
  export * from './property-extension-metadata-ctor';
38
40
  export * from './property-extension-metadata';
@@ -58,6 +60,7 @@ export * from './type-configuration';
58
60
  export * from './type-context-entry';
59
61
  export * from './type-context';
60
62
  export * from './type-ctor';
63
+ export * from './type-decorator';
61
64
  export * from './type-extension-metadata-ctor-set-key';
62
65
  export * from './type-extension-metadata-ctor';
63
66
  export * from './type-extension-metadata';
@@ -74,6 +77,7 @@ export * from './type-name';
74
77
  export * from './type-options-base';
75
78
  export * from './type-options';
76
79
  export * from './type-resolver';
80
+ export * from './type-scope';
77
81
  export * from './type';
78
82
  export * from './unknown';
79
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inject-decorator.js.map