@dipscope/type-manager 7.0.0-beta.0 → 7.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.
Files changed (387) hide show
  1. package/CHANGELOG.md +262 -262
  2. package/CONTRIBUTING.md +58 -58
  3. package/LICENSE.md +201 -201
  4. package/README.md +1901 -1901
  5. package/dist/es2015/alias.js +1 -1
  6. package/dist/es2015/any.js +2 -2
  7. package/dist/es2015/custom-context.js +57 -57
  8. package/dist/es2015/custom-key.js +7 -7
  9. package/dist/es2015/custom-option.js +1 -1
  10. package/dist/es2015/custom-value-resolver.js +1 -1
  11. package/dist/es2015/custom-value.js +1 -1
  12. package/dist/es2015/default-value-resolver.js +1 -1
  13. package/dist/es2015/default-value.js +1 -1
  14. package/dist/es2015/discriminant.js +1 -1
  15. package/dist/es2015/discriminator.js +1 -1
  16. package/dist/es2015/factories/index.js +1 -1
  17. package/dist/es2015/factories/type-factory.js +33 -33
  18. package/dist/es2015/factory.js +1 -1
  19. package/dist/es2015/functions/get-own-reflect-metadata.js +7 -7
  20. package/dist/es2015/functions/get-reflect-metadata.js +7 -7
  21. package/dist/es2015/functions/get-words.js +4 -4
  22. package/dist/es2015/functions/index.js +18 -18
  23. package/dist/es2015/functions/is-arrow-function.js +4 -4
  24. package/dist/es2015/functions/is-ctor-function.js +4 -4
  25. package/dist/es2015/functions/is-data-view.js +3 -3
  26. package/dist/es2015/functions/is-float-32-array.js +3 -3
  27. package/dist/es2015/functions/is-float-64-array.js +3 -3
  28. package/dist/es2015/functions/is-int-16-array.js +3 -3
  29. package/dist/es2015/functions/is-int-32-array.js +3 -3
  30. package/dist/es2015/functions/is-int-8-array.js +3 -3
  31. package/dist/es2015/functions/is-uint-16-array.js +3 -3
  32. package/dist/es2015/functions/is-uint-32-array.js +3 -3
  33. package/dist/es2015/functions/is-uint-8-array.js +3 -3
  34. package/dist/es2015/functions/is-uint-8-clamped-array.js +3 -3
  35. package/dist/es2015/functions/json-parse.js +3 -3
  36. package/dist/es2015/functions/json-stringify.js +66 -66
  37. package/dist/es2015/functions/name-of.js +7 -7
  38. package/dist/es2015/generic-argument.js +1 -1
  39. package/dist/es2015/generic-metadata-resolver.js +1 -1
  40. package/dist/es2015/generic-metadata.js +1 -1
  41. package/dist/es2015/generic-structure.js +1 -1
  42. package/dist/es2015/index.js +70 -70
  43. package/dist/es2015/inject-index.js +1 -1
  44. package/dist/es2015/inject-internals.js +1 -1
  45. package/dist/es2015/inject-metadata.js +62 -62
  46. package/dist/es2015/inject-options.js +1 -1
  47. package/dist/es2015/inject-sorter.js +1 -1
  48. package/dist/es2015/inject-sorters/asc-inject-sorter.js +13 -13
  49. package/dist/es2015/inject-sorters/desc-inject-sorter.js +13 -13
  50. package/dist/es2015/inject-sorters/index.js +2 -2
  51. package/dist/es2015/inject.js +23 -23
  52. package/dist/es2015/injector.js +1 -1
  53. package/dist/es2015/injectors/index.js +1 -1
  54. package/dist/es2015/injectors/singleton-injector.js +30 -30
  55. package/dist/es2015/log-level.js +7 -7
  56. package/dist/es2015/log.js +49 -49
  57. package/dist/es2015/metadata.js +80 -80
  58. package/dist/es2015/naming-convention.js +1 -1
  59. package/dist/es2015/naming-conventions/camel-case-naming-convention.js +16 -16
  60. package/dist/es2015/naming-conventions/flat-case-naming-convention.js +12 -12
  61. package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js +12 -12
  62. package/dist/es2015/naming-conventions/index.js +8 -8
  63. package/dist/es2015/naming-conventions/kebab-case-naming-convention.js +16 -16
  64. package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js +16 -16
  65. package/dist/es2015/naming-conventions/pascal-case-naming-convention.js +17 -17
  66. package/dist/es2015/naming-conventions/snake-case-naming-convention.js +16 -16
  67. package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js +16 -16
  68. package/dist/es2015/property-internals.js +1 -1
  69. package/dist/es2015/property-metadata.js +268 -268
  70. package/dist/es2015/property-name.js +1 -1
  71. package/dist/es2015/property-options.js +1 -1
  72. package/dist/es2015/property-sorter.js +1 -1
  73. package/dist/es2015/property-sorters/asc-property-sorter.js +13 -13
  74. package/dist/es2015/property-sorters/desc-property-sorter.js +13 -13
  75. package/dist/es2015/property-sorters/index.js +2 -2
  76. package/dist/es2015/property.js +38 -38
  77. package/dist/es2015/reference-callback.js +1 -1
  78. package/dist/es2015/reference-handler.js +1 -1
  79. package/dist/es2015/reference-handlers/circular-reference-handler.js +35 -35
  80. package/dist/es2015/reference-handlers/index.js +3 -3
  81. package/dist/es2015/reference-handlers/json-path-reference-handler.js +68 -68
  82. package/dist/es2015/reference-handlers/plain-reference-handler.js +31 -31
  83. package/dist/es2015/reference-key.js +1 -1
  84. package/dist/es2015/reference-value-getter.js +1 -1
  85. package/dist/es2015/reference-value-setter.js +1 -1
  86. package/dist/es2015/reference-value.js +1 -1
  87. package/dist/es2015/serializer-context-options.js +1 -1
  88. package/dist/es2015/serializer-context.js +281 -281
  89. package/dist/es2015/serializer.js +1 -1
  90. package/dist/es2015/serializers/any-serializer.js +21 -21
  91. package/dist/es2015/serializers/array-buffer-serializer.js +40 -40
  92. package/dist/es2015/serializers/array-serializer.js +59 -59
  93. package/dist/es2015/serializers/boolean-serializer.js +54 -54
  94. package/dist/es2015/serializers/data-view-serializer.js +41 -41
  95. package/dist/es2015/serializers/date-serializer.js +33 -33
  96. package/dist/es2015/serializers/float-32-array-serializer.js +34 -34
  97. package/dist/es2015/serializers/float-64-array-serializer.js +34 -34
  98. package/dist/es2015/serializers/index.js +21 -21
  99. package/dist/es2015/serializers/int-16-array-serializer.js +34 -34
  100. package/dist/es2015/serializers/int-32-array-serializer.js +34 -34
  101. package/dist/es2015/serializers/int-8-array-serializer.js +34 -34
  102. package/dist/es2015/serializers/map-serializer.js +95 -95
  103. package/dist/es2015/serializers/number-serializer.js +48 -48
  104. package/dist/es2015/serializers/set-serializer.js +61 -61
  105. package/dist/es2015/serializers/string-serializer.js +54 -54
  106. package/dist/es2015/serializers/type-serializer.js +120 -120
  107. package/dist/es2015/serializers/uint-16-array-serializer.js +34 -34
  108. package/dist/es2015/serializers/uint-32-array-serializer.js +34 -34
  109. package/dist/es2015/serializers/uint-8-array-serializer.js +34 -34
  110. package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +34 -34
  111. package/dist/es2015/serializers/unknown-serializer.js +21 -21
  112. package/dist/es2015/type-abstraction.js +1 -1
  113. package/dist/es2015/type-argument.js +1 -1
  114. package/dist/es2015/type-configuration.js +1 -1
  115. package/dist/es2015/type-context-entry.js +8 -8
  116. package/dist/es2015/type-context.js +30 -30
  117. package/dist/es2015/type-ctor.js +1 -1
  118. package/dist/es2015/type-fn.js +1 -1
  119. package/dist/es2015/type-internals.js +1 -1
  120. package/dist/es2015/type-like.js +1 -1
  121. package/dist/es2015/type-manager-options.js +1 -1
  122. package/dist/es2015/type-manager.js +319 -319
  123. package/dist/es2015/type-metadata-resolver.js +1 -1
  124. package/dist/es2015/type-metadata-symbol.js +1 -1
  125. package/dist/es2015/type-metadata.js +413 -413
  126. package/dist/es2015/type-name.js +1 -1
  127. package/dist/es2015/type-options-base.js +1 -1
  128. package/dist/es2015/type-options.js +1 -1
  129. package/dist/es2015/type-resolver.js +1 -1
  130. package/dist/es2015/type.js +7 -7
  131. package/dist/es2015/unknown.js +2 -2
  132. package/dist/es5/alias.js +1 -1
  133. package/dist/es5/any.js +6 -6
  134. package/dist/es5/custom-context.js +93 -93
  135. package/dist/es5/custom-key.js +9 -9
  136. package/dist/es5/custom-option.js +1 -1
  137. package/dist/es5/custom-value-resolver.js +1 -1
  138. package/dist/es5/custom-value.js +1 -1
  139. package/dist/es5/default-value-resolver.js +1 -1
  140. package/dist/es5/default-value.js +1 -1
  141. package/dist/es5/discriminant.js +1 -1
  142. package/dist/es5/discriminator.js +1 -1
  143. package/dist/es5/factories/index.js +1 -1
  144. package/dist/es5/factories/type-factory.js +59 -59
  145. package/dist/es5/factory.js +1 -1
  146. package/dist/es5/functions/get-own-reflect-metadata.js +7 -7
  147. package/dist/es5/functions/get-reflect-metadata.js +7 -7
  148. package/dist/es5/functions/get-words.js +4 -4
  149. package/dist/es5/functions/index.js +18 -18
  150. package/dist/es5/functions/is-arrow-function.js +4 -4
  151. package/dist/es5/functions/is-ctor-function.js +4 -4
  152. package/dist/es5/functions/is-data-view.js +3 -3
  153. package/dist/es5/functions/is-float-32-array.js +3 -3
  154. package/dist/es5/functions/is-float-64-array.js +3 -3
  155. package/dist/es5/functions/is-int-16-array.js +3 -3
  156. package/dist/es5/functions/is-int-32-array.js +3 -3
  157. package/dist/es5/functions/is-int-8-array.js +3 -3
  158. package/dist/es5/functions/is-uint-16-array.js +3 -3
  159. package/dist/es5/functions/is-uint-32-array.js +3 -3
  160. package/dist/es5/functions/is-uint-8-array.js +3 -3
  161. package/dist/es5/functions/is-uint-8-clamped-array.js +3 -3
  162. package/dist/es5/functions/json-parse.js +3 -3
  163. package/dist/es5/functions/json-stringify.js +66 -66
  164. package/dist/es5/functions/name-of.js +7 -7
  165. package/dist/es5/generic-argument.js +1 -1
  166. package/dist/es5/generic-metadata-resolver.js +1 -1
  167. package/dist/es5/generic-metadata.js +1 -1
  168. package/dist/es5/generic-structure.js +1 -1
  169. package/dist/es5/index.js +70 -70
  170. package/dist/es5/inject-index.js +1 -1
  171. package/dist/es5/inject-internals.js +1 -1
  172. package/dist/es5/inject-metadata.js +83 -83
  173. package/dist/es5/inject-options.js +1 -1
  174. package/dist/es5/inject-sorter.js +1 -1
  175. package/dist/es5/inject-sorters/asc-inject-sorter.js +17 -17
  176. package/dist/es5/inject-sorters/desc-inject-sorter.js +17 -17
  177. package/dist/es5/inject-sorters/index.js +2 -2
  178. package/dist/es5/inject.js +23 -23
  179. package/dist/es5/injector.js +1 -1
  180. package/dist/es5/injectors/index.js +1 -1
  181. package/dist/es5/injectors/singleton-injector.js +44 -44
  182. package/dist/es5/log-level.js +7 -7
  183. package/dist/es5/log.js +64 -64
  184. package/dist/es5/metadata.js +105 -105
  185. package/dist/es5/naming-convention.js +1 -1
  186. package/dist/es5/naming-conventions/camel-case-naming-convention.js +20 -20
  187. package/dist/es5/naming-conventions/flat-case-naming-convention.js +16 -16
  188. package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js +16 -16
  189. package/dist/es5/naming-conventions/index.js +8 -8
  190. package/dist/es5/naming-conventions/kebab-case-naming-convention.js +20 -20
  191. package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js +20 -20
  192. package/dist/es5/naming-conventions/pascal-case-naming-convention.js +21 -21
  193. package/dist/es5/naming-conventions/snake-case-naming-convention.js +20 -20
  194. package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js +20 -20
  195. package/dist/es5/property-internals.js +1 -1
  196. package/dist/es5/property-metadata.js +377 -377
  197. package/dist/es5/property-name.js +1 -1
  198. package/dist/es5/property-options.js +1 -1
  199. package/dist/es5/property-sorter.js +1 -1
  200. package/dist/es5/property-sorters/asc-property-sorter.js +17 -17
  201. package/dist/es5/property-sorters/desc-property-sorter.js +17 -17
  202. package/dist/es5/property-sorters/index.js +2 -2
  203. package/dist/es5/property.js +38 -38
  204. package/dist/es5/reference-callback.js +1 -1
  205. package/dist/es5/reference-handler.js +1 -1
  206. package/dist/es5/reference-handlers/circular-reference-handler.js +39 -39
  207. package/dist/es5/reference-handlers/index.js +3 -3
  208. package/dist/es5/reference-handlers/json-path-reference-handler.js +92 -92
  209. package/dist/es5/reference-handlers/plain-reference-handler.js +35 -35
  210. package/dist/es5/reference-key.js +1 -1
  211. package/dist/es5/reference-value-getter.js +1 -1
  212. package/dist/es5/reference-value-setter.js +1 -1
  213. package/dist/es5/reference-value.js +1 -1
  214. package/dist/es5/serializer-context-options.js +1 -1
  215. package/dist/es5/serializer-context.js +416 -416
  216. package/dist/es5/serializer.js +1 -1
  217. package/dist/es5/serializers/any-serializer.js +25 -25
  218. package/dist/es5/serializers/array-buffer-serializer.js +44 -44
  219. package/dist/es5/serializers/array-serializer.js +69 -69
  220. package/dist/es5/serializers/boolean-serializer.js +58 -58
  221. package/dist/es5/serializers/data-view-serializer.js +45 -45
  222. package/dist/es5/serializers/date-serializer.js +37 -37
  223. package/dist/es5/serializers/float-32-array-serializer.js +38 -38
  224. package/dist/es5/serializers/float-64-array-serializer.js +38 -38
  225. package/dist/es5/serializers/index.js +21 -21
  226. package/dist/es5/serializers/int-16-array-serializer.js +38 -38
  227. package/dist/es5/serializers/int-32-array-serializer.js +38 -38
  228. package/dist/es5/serializers/int-8-array-serializer.js +38 -38
  229. package/dist/es5/serializers/map-serializer.js +114 -114
  230. package/dist/es5/serializers/number-serializer.js +52 -52
  231. package/dist/es5/serializers/set-serializer.js +77 -77
  232. package/dist/es5/serializers/string-serializer.js +58 -58
  233. package/dist/es5/serializers/type-serializer.js +153 -153
  234. package/dist/es5/serializers/uint-16-array-serializer.js +38 -38
  235. package/dist/es5/serializers/uint-32-array-serializer.js +38 -38
  236. package/dist/es5/serializers/uint-8-array-serializer.js +38 -38
  237. package/dist/es5/serializers/uint-8-clamped-array-serializer.js +38 -38
  238. package/dist/es5/serializers/unknown-serializer.js +25 -25
  239. package/dist/es5/type-abstraction.js +1 -1
  240. package/dist/es5/type-argument.js +1 -1
  241. package/dist/es5/type-configuration.js +1 -1
  242. package/dist/es5/type-context-entry.js +10 -10
  243. package/dist/es5/type-context.js +32 -32
  244. package/dist/es5/type-ctor.js +1 -1
  245. package/dist/es5/type-fn.js +1 -1
  246. package/dist/es5/type-internals.js +1 -1
  247. package/dist/es5/type-like.js +1 -1
  248. package/dist/es5/type-manager-options.js +1 -1
  249. package/dist/es5/type-manager.js +412 -412
  250. package/dist/es5/type-metadata-resolver.js +1 -1
  251. package/dist/es5/type-metadata-symbol.js +1 -1
  252. package/dist/es5/type-metadata.js +563 -563
  253. package/dist/es5/type-name.js +1 -1
  254. package/dist/es5/type-options-base.js +1 -1
  255. package/dist/es5/type-options.js +1 -1
  256. package/dist/es5/type-resolver.js +1 -1
  257. package/dist/es5/type.js +7 -7
  258. package/dist/es5/unknown.js +6 -6
  259. package/dist/types/alias.d.ts +6 -6
  260. package/dist/types/any.d.ts +9 -9
  261. package/dist/types/custom-context.d.ts +88 -88
  262. package/dist/types/custom-key.d.ts +28 -28
  263. package/dist/types/custom-option.d.ts +10 -10
  264. package/dist/types/custom-value-resolver.d.ts +6 -6
  265. package/dist/types/custom-value.d.ts +6 -6
  266. package/dist/types/default-value-resolver.d.ts +7 -7
  267. package/dist/types/default-value.d.ts +7 -7
  268. package/dist/types/discriminant.d.ts +8 -8
  269. package/dist/types/discriminator.d.ts +6 -6
  270. package/dist/types/factories/index.d.ts +1 -1
  271. package/dist/types/factories/type-factory.d.ts +19 -19
  272. package/dist/types/factory.d.ts +18 -18
  273. package/dist/types/functions/get-own-reflect-metadata.d.ts +9 -9
  274. package/dist/types/functions/get-reflect-metadata.d.ts +10 -10
  275. package/dist/types/functions/get-words.d.ts +8 -8
  276. package/dist/types/functions/index.d.ts +18 -18
  277. package/dist/types/functions/is-arrow-function.d.ts +8 -8
  278. package/dist/types/functions/is-ctor-function.d.ts +8 -8
  279. package/dist/types/functions/is-data-view.d.ts +8 -8
  280. package/dist/types/functions/is-float-32-array.d.ts +8 -8
  281. package/dist/types/functions/is-float-64-array.d.ts +8 -8
  282. package/dist/types/functions/is-int-16-array.d.ts +8 -8
  283. package/dist/types/functions/is-int-32-array.d.ts +8 -8
  284. package/dist/types/functions/is-int-8-array.d.ts +8 -8
  285. package/dist/types/functions/is-uint-16-array.d.ts +8 -8
  286. package/dist/types/functions/is-uint-32-array.d.ts +8 -8
  287. package/dist/types/functions/is-uint-8-array.d.ts +8 -8
  288. package/dist/types/functions/is-uint-8-clamped-array.d.ts +8 -8
  289. package/dist/types/functions/json-parse.d.ts +9 -9
  290. package/dist/types/functions/json-stringify.d.ts +10 -10
  291. package/dist/types/functions/name-of.d.ts +8 -8
  292. package/dist/types/generic-argument.d.ts +7 -7
  293. package/dist/types/generic-metadata-resolver.d.ts +7 -7
  294. package/dist/types/generic-metadata.d.ts +7 -7
  295. package/dist/types/generic-structure.d.ts +7 -7
  296. package/dist/types/index.d.ts +70 -70
  297. package/dist/types/inject-index.d.ts +6 -6
  298. package/dist/types/inject-internals.d.ts +14 -14
  299. package/dist/types/inject-metadata.d.ts +117 -117
  300. package/dist/types/inject-options.d.ts +22 -22
  301. package/dist/types/inject-sorter.d.ts +19 -19
  302. package/dist/types/inject-sorters/asc-inject-sorter.d.ts +20 -20
  303. package/dist/types/inject-sorters/desc-inject-sorter.d.ts +20 -20
  304. package/dist/types/inject-sorters/index.d.ts +2 -2
  305. package/dist/types/inject.d.ts +10 -10
  306. package/dist/types/injector.d.ts +16 -16
  307. package/dist/types/injectors/index.d.ts +1 -1
  308. package/dist/types/injectors/singleton-injector.d.ts +31 -31
  309. package/dist/types/log-level.d.ts +11 -11
  310. package/dist/types/log.d.ts +95 -95
  311. package/dist/types/metadata.d.ts +99 -99
  312. package/dist/types/naming-convention.d.ts +15 -15
  313. package/dist/types/naming-conventions/camel-case-naming-convention.d.ts +26 -26
  314. package/dist/types/naming-conventions/flat-case-naming-convention.d.ts +25 -25
  315. package/dist/types/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
  316. package/dist/types/naming-conventions/index.d.ts +8 -8
  317. package/dist/types/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
  318. package/dist/types/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
  319. package/dist/types/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
  320. package/dist/types/naming-conventions/snake-case-naming-convention.d.ts +26 -26
  321. package/dist/types/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
  322. package/dist/types/property-internals.d.ts +35 -35
  323. package/dist/types/property-metadata.d.ts +359 -359
  324. package/dist/types/property-name.d.ts +6 -6
  325. package/dist/types/property-options.d.ts +116 -116
  326. package/dist/types/property-sorter.d.ts +19 -19
  327. package/dist/types/property-sorters/asc-property-sorter.d.ts +20 -20
  328. package/dist/types/property-sorters/desc-property-sorter.d.ts +20 -20
  329. package/dist/types/property-sorters/index.d.ts +2 -2
  330. package/dist/types/property.d.ts +13 -13
  331. package/dist/types/reference-callback.d.ts +7 -7
  332. package/dist/types/reference-handler.d.ts +31 -31
  333. package/dist/types/reference-handlers/circular-reference-handler.d.ts +32 -32
  334. package/dist/types/reference-handlers/index.d.ts +3 -3
  335. package/dist/types/reference-handlers/json-path-reference-handler.d.ts +55 -55
  336. package/dist/types/reference-handlers/plain-reference-handler.d.ts +33 -33
  337. package/dist/types/reference-key.d.ts +6 -6
  338. package/dist/types/reference-value-getter.d.ts +7 -7
  339. package/dist/types/reference-value-setter.d.ts +7 -7
  340. package/dist/types/reference-value.d.ts +6 -6
  341. package/dist/types/serializer-context-options.d.ts +50 -50
  342. package/dist/types/serializer-context.d.ts +418 -418
  343. package/dist/types/serializer.d.ts +27 -27
  344. package/dist/types/serializers/any-serializer.d.ts +28 -28
  345. package/dist/types/serializers/array-buffer-serializer.d.ts +28 -28
  346. package/dist/types/serializers/array-serializer.d.ts +28 -28
  347. package/dist/types/serializers/boolean-serializer.d.ts +37 -37
  348. package/dist/types/serializers/data-view-serializer.d.ts +28 -28
  349. package/dist/types/serializers/date-serializer.d.ts +28 -28
  350. package/dist/types/serializers/float-32-array-serializer.d.ts +28 -28
  351. package/dist/types/serializers/float-64-array-serializer.d.ts +28 -28
  352. package/dist/types/serializers/index.d.ts +21 -21
  353. package/dist/types/serializers/int-16-array-serializer.d.ts +28 -28
  354. package/dist/types/serializers/int-32-array-serializer.d.ts +28 -28
  355. package/dist/types/serializers/int-8-array-serializer.d.ts +28 -28
  356. package/dist/types/serializers/map-serializer.d.ts +28 -28
  357. package/dist/types/serializers/number-serializer.d.ts +37 -37
  358. package/dist/types/serializers/set-serializer.d.ts +28 -28
  359. package/dist/types/serializers/string-serializer.d.ts +37 -37
  360. package/dist/types/serializers/type-serializer.d.ts +28 -28
  361. package/dist/types/serializers/uint-16-array-serializer.d.ts +28 -28
  362. package/dist/types/serializers/uint-32-array-serializer.d.ts +28 -28
  363. package/dist/types/serializers/uint-8-array-serializer.d.ts +28 -28
  364. package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
  365. package/dist/types/serializers/unknown-serializer.d.ts +28 -28
  366. package/dist/types/type-abstraction.d.ts +6 -6
  367. package/dist/types/type-argument.d.ts +9 -9
  368. package/dist/types/type-configuration.d.ts +16 -16
  369. package/dist/types/type-context-entry.d.ts +36 -36
  370. package/dist/types/type-context.d.ts +70 -70
  371. package/dist/types/type-ctor.d.ts +6 -6
  372. package/dist/types/type-fn.d.ts +8 -8
  373. package/dist/types/type-internals.d.ts +14 -14
  374. package/dist/types/type-like.d.ts +7 -7
  375. package/dist/types/type-manager-options.d.ts +33 -33
  376. package/dist/types/type-manager.d.ts +413 -413
  377. package/dist/types/type-metadata-resolver.d.ts +8 -8
  378. package/dist/types/type-metadata-symbol.d.ts +6 -6
  379. package/dist/types/type-metadata.d.ts +513 -513
  380. package/dist/types/type-name.d.ts +6 -6
  381. package/dist/types/type-options-base.d.ts +106 -106
  382. package/dist/types/type-options.d.ts +72 -72
  383. package/dist/types/type-resolver.d.ts +7 -7
  384. package/dist/types/type.d.ts +9 -9
  385. package/dist/types/unknown.d.ts +9 -9
  386. package/dist/umd/index.js.map +1 -1
  387. package/package.json +63 -63
@@ -1,378 +1,378 @@
1
- import { __extends } from "tslib";
2
- import { isFunction, isNil, isUndefined } from 'lodash';
3
- import { CustomContext } from './custom-context';
4
- import { getReflectMetadata } from './functions/get-reflect-metadata';
5
- import { Metadata } from './metadata';
6
- var PropertyMetadata = (function (_super) {
7
- __extends(PropertyMetadata, _super);
8
- function PropertyMetadata(declaringTypeMetadata, propertyName, propertyOptions) {
9
- var _this = _super.call(this, declaringTypeMetadata.typeManager) || this;
10
- _this.declaringTypeMetadata = declaringTypeMetadata;
11
- _this.propertyName = propertyName;
12
- _this.reflectTypeFn = getReflectMetadata('design:type', declaringTypeMetadata.typeFn.prototype, propertyName);
13
- _this.propertyOptions = _this.constructPropertyOptions(propertyOptions);
14
- _this.propertyInternals = _this.constructPropertyInternals();
15
- _this.configure(propertyOptions);
16
- return _this;
17
- }
18
- Object.defineProperty(PropertyMetadata.prototype, "alias", {
19
- get: function () {
20
- return this.propertyOptions.alias;
21
- },
22
- enumerable: false,
23
- configurable: true
24
- });
25
- Object.defineProperty(PropertyMetadata.prototype, "customOptions", {
26
- get: function () {
27
- return this.propertyOptions.customOptions;
28
- },
29
- enumerable: false,
30
- configurable: true
31
- });
32
- Object.defineProperty(PropertyMetadata.prototype, "customContext", {
33
- get: function () {
34
- var customContext = this.propertyInternals.customContext;
35
- if (isNil(customContext)) {
36
- this.propertyOptions.customOptions = new Array();
37
- this.propertyInternals.customContext = new CustomContext(this.propertyOptions.customOptions);
38
- customContext = this.propertyInternals.customContext;
39
- }
40
- return customContext;
41
- },
42
- enumerable: false,
43
- configurable: true
44
- });
45
- Object.defineProperty(PropertyMetadata.prototype, "serializedNullValue", {
46
- get: function () {
47
- if (this.preserveNull) {
48
- return null;
49
- }
50
- return this.serializedDefaultValue;
51
- },
52
- enumerable: false,
53
- configurable: true
54
- });
55
- Object.defineProperty(PropertyMetadata.prototype, "serializedDefaultValue", {
56
- get: function () {
57
- var _a, _b;
58
- if (this.useDefaultValue) {
59
- var serializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.serializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.serializedDefaultValue;
60
- var defaultValue = isFunction(serializedDefaultValue)
61
- ? serializedDefaultValue()
62
- : serializedDefaultValue;
63
- return defaultValue;
64
- }
65
- return undefined;
66
- },
67
- enumerable: false,
68
- configurable: true
69
- });
70
- Object.defineProperty(PropertyMetadata.prototype, "deserializedNullValue", {
71
- get: function () {
72
- if (this.preserveNull) {
73
- return null;
74
- }
75
- return this.deserializedDefaultValue;
76
- },
77
- enumerable: false,
78
- configurable: true
79
- });
80
- Object.defineProperty(PropertyMetadata.prototype, "deserializedDefaultValue", {
81
- get: function () {
82
- var _a, _b;
83
- if (this.useDefaultValue) {
84
- var deserializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.deserializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.deserializedDefaultValue;
85
- var defaultValue = isFunction(deserializedDefaultValue)
86
- ? deserializedDefaultValue()
87
- : deserializedDefaultValue;
88
- return defaultValue;
89
- }
90
- return undefined;
91
- },
92
- enumerable: false,
93
- configurable: true
94
- });
95
- Object.defineProperty(PropertyMetadata.prototype, "serializedPropertyName", {
96
- get: function () {
97
- var _a;
98
- var alias = this.alias;
99
- if (isNil(alias)) {
100
- var namingConvention = (_a = this.namingConvention) !== null && _a !== void 0 ? _a : this.declaringTypeMetadata.namingConvention;
101
- var propertyName = namingConvention ? namingConvention.convert(this.propertyName) : this.propertyName;
102
- return propertyName;
103
- }
104
- return alias;
105
- },
106
- enumerable: false,
107
- configurable: true
108
- });
109
- Object.defineProperty(PropertyMetadata.prototype, "deserializedPropertyName", {
110
- get: function () {
111
- return this.propertyName;
112
- },
113
- enumerable: false,
114
- configurable: true
115
- });
116
- Object.defineProperty(PropertyMetadata.prototype, "deserializable", {
117
- get: function () {
118
- return this.propertyOptions.deserializable;
119
- },
120
- enumerable: false,
121
- configurable: true
122
- });
123
- Object.defineProperty(PropertyMetadata.prototype, "genericArguments", {
124
- get: function () {
125
- return this.propertyOptions.genericArguments;
126
- },
127
- enumerable: false,
128
- configurable: true
129
- });
130
- Object.defineProperty(PropertyMetadata.prototype, "genericStructures", {
131
- get: function () {
132
- return this.propertyInternals.genericStructures;
133
- },
134
- enumerable: false,
135
- configurable: true
136
- });
137
- Object.defineProperty(PropertyMetadata.prototype, "genericMetadataResolvers", {
138
- get: function () {
139
- return this.propertyInternals.genericMetadataResolvers;
140
- },
141
- enumerable: false,
142
- configurable: true
143
- });
144
- Object.defineProperty(PropertyMetadata.prototype, "genericMetadatas", {
145
- get: function () {
146
- var genericStructures = this.genericStructures;
147
- var genericMetadataResolvers = this.genericMetadataResolvers;
148
- if (isNil(genericStructures) || isNil(genericMetadataResolvers)) {
149
- return undefined;
150
- }
151
- return this.defineGenericMetadatas(genericStructures, genericMetadataResolvers);
152
- },
153
- enumerable: false,
154
- configurable: true
155
- });
156
- Object.defineProperty(PropertyMetadata.prototype, "namingConvention", {
157
- get: function () {
158
- var _a;
159
- return (_a = this.propertyOptions.namingConvention) !== null && _a !== void 0 ? _a : this.typeMetadata.namingConvention;
160
- },
161
- enumerable: false,
162
- configurable: true
163
- });
164
- Object.defineProperty(PropertyMetadata.prototype, "referenceHandler", {
165
- get: function () {
166
- var _a;
167
- return (_a = this.propertyOptions.referenceHandler) !== null && _a !== void 0 ? _a : this.typeMetadata.referenceHandler;
168
- },
169
- enumerable: false,
170
- configurable: true
171
- });
172
- Object.defineProperty(PropertyMetadata.prototype, "serializable", {
173
- get: function () {
174
- return this.propertyOptions.serializable;
175
- },
176
- enumerable: false,
177
- configurable: true
178
- });
179
- Object.defineProperty(PropertyMetadata.prototype, "serializationConfigured", {
180
- get: function () {
181
- return !isNil(this.serializable) || !isNil(this.deserializable);
182
- },
183
- enumerable: false,
184
- configurable: true
185
- });
186
- Object.defineProperty(PropertyMetadata.prototype, "serializer", {
187
- get: function () {
188
- var _a;
189
- return (_a = this.propertyOptions.serializer) !== null && _a !== void 0 ? _a : this.typeMetadata.serializer;
190
- },
191
- enumerable: false,
192
- configurable: true
193
- });
194
- Object.defineProperty(PropertyMetadata.prototype, "typeArgument", {
195
- get: function () {
196
- return this.propertyOptions.typeArgument;
197
- },
198
- enumerable: false,
199
- configurable: true
200
- });
201
- Object.defineProperty(PropertyMetadata.prototype, "typeMetadataResolver", {
202
- get: function () {
203
- return this.propertyInternals.typeMetadataResolver;
204
- },
205
- enumerable: false,
206
- configurable: true
207
- });
208
- Object.defineProperty(PropertyMetadata.prototype, "typeMetadata", {
209
- get: function () {
210
- return this.typeMetadataResolver(this.typeArgument);
211
- },
212
- enumerable: false,
213
- configurable: true
214
- });
215
- Object.defineProperty(PropertyMetadata.prototype, "preserveNull", {
216
- get: function () {
217
- var _a;
218
- return (_a = this.propertyOptions.preserveNull) !== null && _a !== void 0 ? _a : this.typeMetadata.preserveNull;
219
- },
220
- enumerable: false,
221
- configurable: true
222
- });
223
- Object.defineProperty(PropertyMetadata.prototype, "useDefaultValue", {
224
- get: function () {
225
- var _a;
226
- return (_a = this.propertyOptions.useDefaultValue) !== null && _a !== void 0 ? _a : this.typeMetadata.useDefaultValue;
227
- },
228
- enumerable: false,
229
- configurable: true
230
- });
231
- Object.defineProperty(PropertyMetadata.prototype, "useImplicitConversion", {
232
- get: function () {
233
- var _a;
234
- return (_a = this.propertyOptions.useImplicitConversion) !== null && _a !== void 0 ? _a : this.typeMetadata.useImplicitConversion;
235
- },
236
- enumerable: false,
237
- configurable: true
238
- });
239
- PropertyMetadata.prototype.constructPropertyOptions = function (propertyOptions) {
240
- var _a;
241
- propertyOptions.typeArgument = (_a = propertyOptions.typeArgument) !== null && _a !== void 0 ? _a : this.reflectTypeFn;
242
- return propertyOptions;
243
- };
244
- PropertyMetadata.prototype.constructPropertyInternals = function () {
245
- var typeMetadataResolver = this.defineTypeMetadataResolver(this.propertyOptions.typeArgument);
246
- var customOptions = this.propertyOptions.customOptions;
247
- var customContext = isNil(customOptions) ? undefined : new CustomContext(customOptions);
248
- var propertyInternals = { typeMetadataResolver: typeMetadataResolver, customContext: customContext };
249
- return propertyInternals;
250
- };
251
- PropertyMetadata.prototype.hasAlias = function (alias) {
252
- this.propertyOptions.alias = alias;
253
- return this;
254
- };
255
- PropertyMetadata.prototype.hasCustomOptions = function (customOptions) {
256
- if (!isNil(customOptions)) {
257
- this.customContext.configure(customOptions);
258
- }
259
- return this;
260
- };
261
- PropertyMetadata.prototype.hasDefaultValue = function (defaultValue) {
262
- this.propertyOptions.defaultValue = defaultValue;
263
- return this;
264
- };
265
- PropertyMetadata.prototype.hasSerializedDefaultValue = function (serializedDefaultValue) {
266
- this.propertyOptions.serializedDefaultValue = serializedDefaultValue;
267
- return this;
268
- };
269
- PropertyMetadata.prototype.hasDeserializedDefaultValue = function (deserializedDefaultValue) {
270
- this.propertyOptions.deserializedDefaultValue = deserializedDefaultValue;
271
- return this;
272
- };
273
- PropertyMetadata.prototype.isDeserializable = function (deserializable) {
274
- if (deserializable === void 0) { deserializable = true; }
275
- this.propertyOptions.deserializable = deserializable;
276
- return this;
277
- };
278
- PropertyMetadata.prototype.isSerializable = function (serializable) {
279
- if (serializable === void 0) { serializable = true; }
280
- this.propertyOptions.serializable = serializable;
281
- return this;
282
- };
283
- PropertyMetadata.prototype.hasGenericArguments = function (genericArguments) {
284
- this.propertyOptions.genericArguments = genericArguments;
285
- if (isNil(genericArguments)) {
286
- this.propertyInternals.genericStructures = undefined;
287
- this.propertyInternals.genericMetadataResolvers = undefined;
288
- return this;
289
- }
290
- var genericStructures = this.defineGenericStructures(genericArguments);
291
- this.propertyInternals.genericStructures = genericStructures;
292
- this.propertyInternals.genericMetadataResolvers = this.defineGenericMetadataResolvers(genericStructures);
293
- return this;
294
- };
295
- PropertyMetadata.prototype.hasNamingConvention = function (namingConvention) {
296
- this.propertyOptions.namingConvention = namingConvention;
297
- return this;
298
- };
299
- PropertyMetadata.prototype.hasReferenceHandler = function (referenceHandler) {
300
- this.propertyOptions.referenceHandler = referenceHandler;
301
- return this;
302
- };
303
- PropertyMetadata.prototype.hasSerializer = function (serializer) {
304
- this.propertyOptions.serializer = serializer;
305
- return this;
306
- };
307
- PropertyMetadata.prototype.hasTypeArgument = function (typeArgument) {
308
- this.propertyOptions.typeArgument = typeArgument !== null && typeArgument !== void 0 ? typeArgument : this.reflectTypeFn;
309
- this.propertyInternals.typeMetadataResolver = this.defineTypeMetadataResolver(this.propertyOptions.typeArgument);
310
- return this;
311
- };
312
- PropertyMetadata.prototype.shouldPreserveNull = function (preserveNull) {
313
- if (preserveNull === void 0) { preserveNull = true; }
314
- this.propertyOptions.preserveNull = preserveNull;
315
- return this;
316
- };
317
- PropertyMetadata.prototype.shouldUseDefaultValue = function (useDefaultValue) {
318
- if (useDefaultValue === void 0) { useDefaultValue = true; }
319
- this.propertyOptions.useDefaultValue = useDefaultValue;
320
- return this;
321
- };
322
- PropertyMetadata.prototype.shouldUseImplicitConversion = function (useImplicitConversion) {
323
- if (useImplicitConversion === void 0) { useImplicitConversion = true; }
324
- this.propertyOptions.useImplicitConversion = useImplicitConversion;
325
- return this;
326
- };
327
- PropertyMetadata.prototype.configure = function (propertyOptions) {
328
- if (!isUndefined(propertyOptions.alias)) {
329
- this.hasAlias(propertyOptions.alias);
330
- }
331
- if (!isUndefined(propertyOptions.customOptions)) {
332
- this.hasCustomOptions(propertyOptions.customOptions);
333
- }
334
- if (!isUndefined(propertyOptions.defaultValue)) {
335
- this.hasDefaultValue(propertyOptions.defaultValue);
336
- }
337
- if (!isUndefined(propertyOptions.serializedDefaultValue)) {
338
- this.hasSerializedDefaultValue(propertyOptions.serializedDefaultValue);
339
- }
340
- if (!isUndefined(propertyOptions.deserializedDefaultValue)) {
341
- this.hasDeserializedDefaultValue(propertyOptions.deserializedDefaultValue);
342
- }
343
- if (!isUndefined(propertyOptions.deserializable)) {
344
- this.isDeserializable(propertyOptions.deserializable);
345
- }
346
- if (!isUndefined(propertyOptions.genericArguments)) {
347
- this.hasGenericArguments(propertyOptions.genericArguments);
348
- }
349
- if (!isUndefined(propertyOptions.namingConvention)) {
350
- this.hasNamingConvention(propertyOptions.namingConvention);
351
- }
352
- if (!isUndefined(propertyOptions.referenceHandler)) {
353
- this.hasReferenceHandler(propertyOptions.referenceHandler);
354
- }
355
- if (!isUndefined(propertyOptions.serializable)) {
356
- this.isSerializable(propertyOptions.serializable);
357
- }
358
- if (!isUndefined(propertyOptions.serializer)) {
359
- this.hasSerializer(propertyOptions.serializer);
360
- }
361
- if (!isUndefined(propertyOptions.typeArgument)) {
362
- this.hasTypeArgument(propertyOptions.typeArgument);
363
- }
364
- if (!isUndefined(propertyOptions.preserveNull)) {
365
- this.shouldPreserveNull(propertyOptions.preserveNull);
366
- }
367
- if (!isUndefined(propertyOptions.useDefaultValue)) {
368
- this.shouldUseDefaultValue(propertyOptions.useDefaultValue);
369
- }
370
- if (!isUndefined(propertyOptions.useImplicitConversion)) {
371
- this.shouldUseImplicitConversion(propertyOptions.useImplicitConversion);
372
- }
373
- return this;
374
- };
375
- return PropertyMetadata;
376
- }(Metadata));
377
- export { PropertyMetadata };
1
+ import { __extends } from "tslib";
2
+ import { isFunction, isNil, isUndefined } from 'lodash';
3
+ import { CustomContext } from './custom-context';
4
+ import { getReflectMetadata } from './functions/get-reflect-metadata';
5
+ import { Metadata } from './metadata';
6
+ var PropertyMetadata = (function (_super) {
7
+ __extends(PropertyMetadata, _super);
8
+ function PropertyMetadata(declaringTypeMetadata, propertyName, propertyOptions) {
9
+ var _this = _super.call(this, declaringTypeMetadata.typeManager) || this;
10
+ _this.declaringTypeMetadata = declaringTypeMetadata;
11
+ _this.propertyName = propertyName;
12
+ _this.reflectTypeFn = getReflectMetadata('design:type', declaringTypeMetadata.typeFn.prototype, propertyName);
13
+ _this.propertyOptions = _this.constructPropertyOptions(propertyOptions);
14
+ _this.propertyInternals = _this.constructPropertyInternals();
15
+ _this.configure(propertyOptions);
16
+ return _this;
17
+ }
18
+ Object.defineProperty(PropertyMetadata.prototype, "alias", {
19
+ get: function () {
20
+ return this.propertyOptions.alias;
21
+ },
22
+ enumerable: false,
23
+ configurable: true
24
+ });
25
+ Object.defineProperty(PropertyMetadata.prototype, "customOptions", {
26
+ get: function () {
27
+ return this.propertyOptions.customOptions;
28
+ },
29
+ enumerable: false,
30
+ configurable: true
31
+ });
32
+ Object.defineProperty(PropertyMetadata.prototype, "customContext", {
33
+ get: function () {
34
+ var customContext = this.propertyInternals.customContext;
35
+ if (isNil(customContext)) {
36
+ this.propertyOptions.customOptions = new Array();
37
+ this.propertyInternals.customContext = new CustomContext(this.propertyOptions.customOptions);
38
+ customContext = this.propertyInternals.customContext;
39
+ }
40
+ return customContext;
41
+ },
42
+ enumerable: false,
43
+ configurable: true
44
+ });
45
+ Object.defineProperty(PropertyMetadata.prototype, "serializedNullValue", {
46
+ get: function () {
47
+ if (this.preserveNull) {
48
+ return null;
49
+ }
50
+ return this.serializedDefaultValue;
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
55
+ Object.defineProperty(PropertyMetadata.prototype, "serializedDefaultValue", {
56
+ get: function () {
57
+ var _a, _b;
58
+ if (this.useDefaultValue) {
59
+ var serializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.serializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.serializedDefaultValue;
60
+ var defaultValue = isFunction(serializedDefaultValue)
61
+ ? serializedDefaultValue()
62
+ : serializedDefaultValue;
63
+ return defaultValue;
64
+ }
65
+ return undefined;
66
+ },
67
+ enumerable: false,
68
+ configurable: true
69
+ });
70
+ Object.defineProperty(PropertyMetadata.prototype, "deserializedNullValue", {
71
+ get: function () {
72
+ if (this.preserveNull) {
73
+ return null;
74
+ }
75
+ return this.deserializedDefaultValue;
76
+ },
77
+ enumerable: false,
78
+ configurable: true
79
+ });
80
+ Object.defineProperty(PropertyMetadata.prototype, "deserializedDefaultValue", {
81
+ get: function () {
82
+ var _a, _b;
83
+ if (this.useDefaultValue) {
84
+ var deserializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.deserializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.deserializedDefaultValue;
85
+ var defaultValue = isFunction(deserializedDefaultValue)
86
+ ? deserializedDefaultValue()
87
+ : deserializedDefaultValue;
88
+ return defaultValue;
89
+ }
90
+ return undefined;
91
+ },
92
+ enumerable: false,
93
+ configurable: true
94
+ });
95
+ Object.defineProperty(PropertyMetadata.prototype, "serializedPropertyName", {
96
+ get: function () {
97
+ var _a;
98
+ var alias = this.alias;
99
+ if (isNil(alias)) {
100
+ var namingConvention = (_a = this.namingConvention) !== null && _a !== void 0 ? _a : this.declaringTypeMetadata.namingConvention;
101
+ var propertyName = namingConvention ? namingConvention.convert(this.propertyName) : this.propertyName;
102
+ return propertyName;
103
+ }
104
+ return alias;
105
+ },
106
+ enumerable: false,
107
+ configurable: true
108
+ });
109
+ Object.defineProperty(PropertyMetadata.prototype, "deserializedPropertyName", {
110
+ get: function () {
111
+ return this.propertyName;
112
+ },
113
+ enumerable: false,
114
+ configurable: true
115
+ });
116
+ Object.defineProperty(PropertyMetadata.prototype, "deserializable", {
117
+ get: function () {
118
+ return this.propertyOptions.deserializable;
119
+ },
120
+ enumerable: false,
121
+ configurable: true
122
+ });
123
+ Object.defineProperty(PropertyMetadata.prototype, "genericArguments", {
124
+ get: function () {
125
+ return this.propertyOptions.genericArguments;
126
+ },
127
+ enumerable: false,
128
+ configurable: true
129
+ });
130
+ Object.defineProperty(PropertyMetadata.prototype, "genericStructures", {
131
+ get: function () {
132
+ return this.propertyInternals.genericStructures;
133
+ },
134
+ enumerable: false,
135
+ configurable: true
136
+ });
137
+ Object.defineProperty(PropertyMetadata.prototype, "genericMetadataResolvers", {
138
+ get: function () {
139
+ return this.propertyInternals.genericMetadataResolvers;
140
+ },
141
+ enumerable: false,
142
+ configurable: true
143
+ });
144
+ Object.defineProperty(PropertyMetadata.prototype, "genericMetadatas", {
145
+ get: function () {
146
+ var genericStructures = this.genericStructures;
147
+ var genericMetadataResolvers = this.genericMetadataResolvers;
148
+ if (isNil(genericStructures) || isNil(genericMetadataResolvers)) {
149
+ return undefined;
150
+ }
151
+ return this.defineGenericMetadatas(genericStructures, genericMetadataResolvers);
152
+ },
153
+ enumerable: false,
154
+ configurable: true
155
+ });
156
+ Object.defineProperty(PropertyMetadata.prototype, "namingConvention", {
157
+ get: function () {
158
+ var _a;
159
+ return (_a = this.propertyOptions.namingConvention) !== null && _a !== void 0 ? _a : this.typeMetadata.namingConvention;
160
+ },
161
+ enumerable: false,
162
+ configurable: true
163
+ });
164
+ Object.defineProperty(PropertyMetadata.prototype, "referenceHandler", {
165
+ get: function () {
166
+ var _a;
167
+ return (_a = this.propertyOptions.referenceHandler) !== null && _a !== void 0 ? _a : this.typeMetadata.referenceHandler;
168
+ },
169
+ enumerable: false,
170
+ configurable: true
171
+ });
172
+ Object.defineProperty(PropertyMetadata.prototype, "serializable", {
173
+ get: function () {
174
+ return this.propertyOptions.serializable;
175
+ },
176
+ enumerable: false,
177
+ configurable: true
178
+ });
179
+ Object.defineProperty(PropertyMetadata.prototype, "serializationConfigured", {
180
+ get: function () {
181
+ return !isNil(this.serializable) || !isNil(this.deserializable);
182
+ },
183
+ enumerable: false,
184
+ configurable: true
185
+ });
186
+ Object.defineProperty(PropertyMetadata.prototype, "serializer", {
187
+ get: function () {
188
+ var _a;
189
+ return (_a = this.propertyOptions.serializer) !== null && _a !== void 0 ? _a : this.typeMetadata.serializer;
190
+ },
191
+ enumerable: false,
192
+ configurable: true
193
+ });
194
+ Object.defineProperty(PropertyMetadata.prototype, "typeArgument", {
195
+ get: function () {
196
+ return this.propertyOptions.typeArgument;
197
+ },
198
+ enumerable: false,
199
+ configurable: true
200
+ });
201
+ Object.defineProperty(PropertyMetadata.prototype, "typeMetadataResolver", {
202
+ get: function () {
203
+ return this.propertyInternals.typeMetadataResolver;
204
+ },
205
+ enumerable: false,
206
+ configurable: true
207
+ });
208
+ Object.defineProperty(PropertyMetadata.prototype, "typeMetadata", {
209
+ get: function () {
210
+ return this.typeMetadataResolver(this.typeArgument);
211
+ },
212
+ enumerable: false,
213
+ configurable: true
214
+ });
215
+ Object.defineProperty(PropertyMetadata.prototype, "preserveNull", {
216
+ get: function () {
217
+ var _a;
218
+ return (_a = this.propertyOptions.preserveNull) !== null && _a !== void 0 ? _a : this.typeMetadata.preserveNull;
219
+ },
220
+ enumerable: false,
221
+ configurable: true
222
+ });
223
+ Object.defineProperty(PropertyMetadata.prototype, "useDefaultValue", {
224
+ get: function () {
225
+ var _a;
226
+ return (_a = this.propertyOptions.useDefaultValue) !== null && _a !== void 0 ? _a : this.typeMetadata.useDefaultValue;
227
+ },
228
+ enumerable: false,
229
+ configurable: true
230
+ });
231
+ Object.defineProperty(PropertyMetadata.prototype, "useImplicitConversion", {
232
+ get: function () {
233
+ var _a;
234
+ return (_a = this.propertyOptions.useImplicitConversion) !== null && _a !== void 0 ? _a : this.typeMetadata.useImplicitConversion;
235
+ },
236
+ enumerable: false,
237
+ configurable: true
238
+ });
239
+ PropertyMetadata.prototype.constructPropertyOptions = function (propertyOptions) {
240
+ var _a;
241
+ propertyOptions.typeArgument = (_a = propertyOptions.typeArgument) !== null && _a !== void 0 ? _a : this.reflectTypeFn;
242
+ return propertyOptions;
243
+ };
244
+ PropertyMetadata.prototype.constructPropertyInternals = function () {
245
+ var typeMetadataResolver = this.defineTypeMetadataResolver(this.propertyOptions.typeArgument);
246
+ var customOptions = this.propertyOptions.customOptions;
247
+ var customContext = isNil(customOptions) ? undefined : new CustomContext(customOptions);
248
+ var propertyInternals = { typeMetadataResolver: typeMetadataResolver, customContext: customContext };
249
+ return propertyInternals;
250
+ };
251
+ PropertyMetadata.prototype.hasAlias = function (alias) {
252
+ this.propertyOptions.alias = alias;
253
+ return this;
254
+ };
255
+ PropertyMetadata.prototype.hasCustomOptions = function (customOptions) {
256
+ if (!isNil(customOptions)) {
257
+ this.customContext.configure(customOptions);
258
+ }
259
+ return this;
260
+ };
261
+ PropertyMetadata.prototype.hasDefaultValue = function (defaultValue) {
262
+ this.propertyOptions.defaultValue = defaultValue;
263
+ return this;
264
+ };
265
+ PropertyMetadata.prototype.hasSerializedDefaultValue = function (serializedDefaultValue) {
266
+ this.propertyOptions.serializedDefaultValue = serializedDefaultValue;
267
+ return this;
268
+ };
269
+ PropertyMetadata.prototype.hasDeserializedDefaultValue = function (deserializedDefaultValue) {
270
+ this.propertyOptions.deserializedDefaultValue = deserializedDefaultValue;
271
+ return this;
272
+ };
273
+ PropertyMetadata.prototype.isDeserializable = function (deserializable) {
274
+ if (deserializable === void 0) { deserializable = true; }
275
+ this.propertyOptions.deserializable = deserializable;
276
+ return this;
277
+ };
278
+ PropertyMetadata.prototype.isSerializable = function (serializable) {
279
+ if (serializable === void 0) { serializable = true; }
280
+ this.propertyOptions.serializable = serializable;
281
+ return this;
282
+ };
283
+ PropertyMetadata.prototype.hasGenericArguments = function (genericArguments) {
284
+ this.propertyOptions.genericArguments = genericArguments;
285
+ if (isNil(genericArguments)) {
286
+ this.propertyInternals.genericStructures = undefined;
287
+ this.propertyInternals.genericMetadataResolvers = undefined;
288
+ return this;
289
+ }
290
+ var genericStructures = this.defineGenericStructures(genericArguments);
291
+ this.propertyInternals.genericStructures = genericStructures;
292
+ this.propertyInternals.genericMetadataResolvers = this.defineGenericMetadataResolvers(genericStructures);
293
+ return this;
294
+ };
295
+ PropertyMetadata.prototype.hasNamingConvention = function (namingConvention) {
296
+ this.propertyOptions.namingConvention = namingConvention;
297
+ return this;
298
+ };
299
+ PropertyMetadata.prototype.hasReferenceHandler = function (referenceHandler) {
300
+ this.propertyOptions.referenceHandler = referenceHandler;
301
+ return this;
302
+ };
303
+ PropertyMetadata.prototype.hasSerializer = function (serializer) {
304
+ this.propertyOptions.serializer = serializer;
305
+ return this;
306
+ };
307
+ PropertyMetadata.prototype.hasTypeArgument = function (typeArgument) {
308
+ this.propertyOptions.typeArgument = typeArgument !== null && typeArgument !== void 0 ? typeArgument : this.reflectTypeFn;
309
+ this.propertyInternals.typeMetadataResolver = this.defineTypeMetadataResolver(this.propertyOptions.typeArgument);
310
+ return this;
311
+ };
312
+ PropertyMetadata.prototype.shouldPreserveNull = function (preserveNull) {
313
+ if (preserveNull === void 0) { preserveNull = true; }
314
+ this.propertyOptions.preserveNull = preserveNull;
315
+ return this;
316
+ };
317
+ PropertyMetadata.prototype.shouldUseDefaultValue = function (useDefaultValue) {
318
+ if (useDefaultValue === void 0) { useDefaultValue = true; }
319
+ this.propertyOptions.useDefaultValue = useDefaultValue;
320
+ return this;
321
+ };
322
+ PropertyMetadata.prototype.shouldUseImplicitConversion = function (useImplicitConversion) {
323
+ if (useImplicitConversion === void 0) { useImplicitConversion = true; }
324
+ this.propertyOptions.useImplicitConversion = useImplicitConversion;
325
+ return this;
326
+ };
327
+ PropertyMetadata.prototype.configure = function (propertyOptions) {
328
+ if (!isUndefined(propertyOptions.alias)) {
329
+ this.hasAlias(propertyOptions.alias);
330
+ }
331
+ if (!isUndefined(propertyOptions.customOptions)) {
332
+ this.hasCustomOptions(propertyOptions.customOptions);
333
+ }
334
+ if (!isUndefined(propertyOptions.defaultValue)) {
335
+ this.hasDefaultValue(propertyOptions.defaultValue);
336
+ }
337
+ if (!isUndefined(propertyOptions.serializedDefaultValue)) {
338
+ this.hasSerializedDefaultValue(propertyOptions.serializedDefaultValue);
339
+ }
340
+ if (!isUndefined(propertyOptions.deserializedDefaultValue)) {
341
+ this.hasDeserializedDefaultValue(propertyOptions.deserializedDefaultValue);
342
+ }
343
+ if (!isUndefined(propertyOptions.deserializable)) {
344
+ this.isDeserializable(propertyOptions.deserializable);
345
+ }
346
+ if (!isUndefined(propertyOptions.genericArguments)) {
347
+ this.hasGenericArguments(propertyOptions.genericArguments);
348
+ }
349
+ if (!isUndefined(propertyOptions.namingConvention)) {
350
+ this.hasNamingConvention(propertyOptions.namingConvention);
351
+ }
352
+ if (!isUndefined(propertyOptions.referenceHandler)) {
353
+ this.hasReferenceHandler(propertyOptions.referenceHandler);
354
+ }
355
+ if (!isUndefined(propertyOptions.serializable)) {
356
+ this.isSerializable(propertyOptions.serializable);
357
+ }
358
+ if (!isUndefined(propertyOptions.serializer)) {
359
+ this.hasSerializer(propertyOptions.serializer);
360
+ }
361
+ if (!isUndefined(propertyOptions.typeArgument)) {
362
+ this.hasTypeArgument(propertyOptions.typeArgument);
363
+ }
364
+ if (!isUndefined(propertyOptions.preserveNull)) {
365
+ this.shouldPreserveNull(propertyOptions.preserveNull);
366
+ }
367
+ if (!isUndefined(propertyOptions.useDefaultValue)) {
368
+ this.shouldUseDefaultValue(propertyOptions.useDefaultValue);
369
+ }
370
+ if (!isUndefined(propertyOptions.useImplicitConversion)) {
371
+ this.shouldUseImplicitConversion(propertyOptions.useImplicitConversion);
372
+ }
373
+ return this;
374
+ };
375
+ return PropertyMetadata;
376
+ }(Metadata));
377
+ export { PropertyMetadata };
378
378
  //# sourceMappingURL=property-metadata.js.map