@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,35 +1,35 @@
1
- import { isArray, isNull, isUndefined } from 'lodash';
2
- import { isInt16Array } from '../functions/is-int-16-array';
3
- export class Int16ArraySerializer {
4
- serialize(x, serializerContext) {
5
- if (isUndefined(x)) {
6
- return serializerContext.serializedDefaultValue;
7
- }
8
- if (isNull(x)) {
9
- return serializerContext.serializedNullValue;
10
- }
11
- if (isInt16Array(x)) {
12
- return Array.from(x);
13
- }
14
- if (serializerContext.log.errorEnabled) {
15
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 16 array.`, x);
16
- }
17
- return undefined;
18
- }
19
- deserialize(x, serializerContext) {
20
- if (isUndefined(x)) {
21
- return serializerContext.deserializedDefaultValue;
22
- }
23
- if (isNull(x)) {
24
- return serializerContext.deserializedNullValue;
25
- }
26
- if (isArray(x)) {
27
- return Int16Array.from(x);
28
- }
29
- if (serializerContext.log.errorEnabled) {
30
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 16 array.`, x);
31
- }
32
- return undefined;
33
- }
34
- }
1
+ import { isArray, isNull, isUndefined } from 'lodash';
2
+ import { isInt16Array } from '../functions/is-int-16-array';
3
+ export class Int16ArraySerializer {
4
+ serialize(x, serializerContext) {
5
+ if (isUndefined(x)) {
6
+ return serializerContext.serializedDefaultValue;
7
+ }
8
+ if (isNull(x)) {
9
+ return serializerContext.serializedNullValue;
10
+ }
11
+ if (isInt16Array(x)) {
12
+ return Array.from(x);
13
+ }
14
+ if (serializerContext.log.errorEnabled) {
15
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 16 array.`, x);
16
+ }
17
+ return undefined;
18
+ }
19
+ deserialize(x, serializerContext) {
20
+ if (isUndefined(x)) {
21
+ return serializerContext.deserializedDefaultValue;
22
+ }
23
+ if (isNull(x)) {
24
+ return serializerContext.deserializedNullValue;
25
+ }
26
+ if (isArray(x)) {
27
+ return Int16Array.from(x);
28
+ }
29
+ if (serializerContext.log.errorEnabled) {
30
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 16 array.`, x);
31
+ }
32
+ return undefined;
33
+ }
34
+ }
35
35
  //# sourceMappingURL=int-16-array-serializer.js.map
@@ -1,35 +1,35 @@
1
- import { isArray, isNull, isUndefined } from 'lodash';
2
- import { isInt32Array } from '../functions/is-int-32-array';
3
- export class Int32ArraySerializer {
4
- serialize(x, serializerContext) {
5
- if (isUndefined(x)) {
6
- return serializerContext.serializedDefaultValue;
7
- }
8
- if (isNull(x)) {
9
- return serializerContext.serializedNullValue;
10
- }
11
- if (isInt32Array(x)) {
12
- return Array.from(x);
13
- }
14
- if (serializerContext.log.errorEnabled) {
15
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 32 array.`, x);
16
- }
17
- return undefined;
18
- }
19
- deserialize(x, serializerContext) {
20
- if (isUndefined(x)) {
21
- return serializerContext.deserializedDefaultValue;
22
- }
23
- if (isNull(x)) {
24
- return serializerContext.deserializedNullValue;
25
- }
26
- if (isArray(x)) {
27
- return Int32Array.from(x);
28
- }
29
- if (serializerContext.log.errorEnabled) {
30
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 32 array.`, x);
31
- }
32
- return undefined;
33
- }
34
- }
1
+ import { isArray, isNull, isUndefined } from 'lodash';
2
+ import { isInt32Array } from '../functions/is-int-32-array';
3
+ export class Int32ArraySerializer {
4
+ serialize(x, serializerContext) {
5
+ if (isUndefined(x)) {
6
+ return serializerContext.serializedDefaultValue;
7
+ }
8
+ if (isNull(x)) {
9
+ return serializerContext.serializedNullValue;
10
+ }
11
+ if (isInt32Array(x)) {
12
+ return Array.from(x);
13
+ }
14
+ if (serializerContext.log.errorEnabled) {
15
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 32 array.`, x);
16
+ }
17
+ return undefined;
18
+ }
19
+ deserialize(x, serializerContext) {
20
+ if (isUndefined(x)) {
21
+ return serializerContext.deserializedDefaultValue;
22
+ }
23
+ if (isNull(x)) {
24
+ return serializerContext.deserializedNullValue;
25
+ }
26
+ if (isArray(x)) {
27
+ return Int32Array.from(x);
28
+ }
29
+ if (serializerContext.log.errorEnabled) {
30
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 32 array.`, x);
31
+ }
32
+ return undefined;
33
+ }
34
+ }
35
35
  //# sourceMappingURL=int-32-array-serializer.js.map
@@ -1,35 +1,35 @@
1
- import { isArray, isNull, isUndefined } from 'lodash';
2
- import { isInt8Array } from '../functions/is-int-8-array';
3
- export class Int8ArraySerializer {
4
- serialize(x, serializerContext) {
5
- if (isUndefined(x)) {
6
- return serializerContext.serializedDefaultValue;
7
- }
8
- if (isNull(x)) {
9
- return serializerContext.serializedNullValue;
10
- }
11
- if (isInt8Array(x)) {
12
- return Array.from(x);
13
- }
14
- if (serializerContext.log.errorEnabled) {
15
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 8 array.`, x);
16
- }
17
- return undefined;
18
- }
19
- deserialize(x, serializerContext) {
20
- if (isUndefined(x)) {
21
- return serializerContext.deserializedDefaultValue;
22
- }
23
- if (isNull(x)) {
24
- return serializerContext.deserializedNullValue;
25
- }
26
- if (isArray(x)) {
27
- return Int8Array.from(x);
28
- }
29
- if (serializerContext.log.errorEnabled) {
30
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 8 array.`, x);
31
- }
32
- return undefined;
33
- }
34
- }
1
+ import { isArray, isNull, isUndefined } from 'lodash';
2
+ import { isInt8Array } from '../functions/is-int-8-array';
3
+ export class Int8ArraySerializer {
4
+ serialize(x, serializerContext) {
5
+ if (isUndefined(x)) {
6
+ return serializerContext.serializedDefaultValue;
7
+ }
8
+ if (isNull(x)) {
9
+ return serializerContext.serializedNullValue;
10
+ }
11
+ if (isInt8Array(x)) {
12
+ return Array.from(x);
13
+ }
14
+ if (serializerContext.log.errorEnabled) {
15
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as int 8 array.`, x);
16
+ }
17
+ return undefined;
18
+ }
19
+ deserialize(x, serializerContext) {
20
+ if (isUndefined(x)) {
21
+ return serializerContext.deserializedDefaultValue;
22
+ }
23
+ if (isNull(x)) {
24
+ return serializerContext.deserializedNullValue;
25
+ }
26
+ if (isArray(x)) {
27
+ return Int8Array.from(x);
28
+ }
29
+ if (serializerContext.log.errorEnabled) {
30
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as int 8 array.`, x);
31
+ }
32
+ return undefined;
33
+ }
34
+ }
35
35
  //# sourceMappingURL=int-8-array-serializer.js.map
@@ -1,96 +1,96 @@
1
- import { isArray, isMap, isNull, isUndefined } from 'lodash';
2
- export class MapSerializer {
3
- serialize(x, serializerContext) {
4
- if (isUndefined(x)) {
5
- return serializerContext.serializedDefaultValue;
6
- }
7
- if (isNull(x)) {
8
- return serializerContext.serializedNullValue;
9
- }
10
- if (isMap(x)) {
11
- return serializerContext.defineReference(x, () => {
12
- const map = x;
13
- const array = new Array(x.keys.length);
14
- const genericKeySerializerContext = serializerContext.defineGenericSerializerContext(0);
15
- const genericValueSerializerContext = serializerContext.defineGenericSerializerContext(1);
16
- const keyArraySerializerContext = genericKeySerializerContext.defineChildSerializerContext({
17
- jsonPathKey: genericKeySerializerContext.jsonPathKey
18
- });
19
- const valueArraySerializerContext = genericValueSerializerContext.defineChildSerializerContext({
20
- jsonPathKey: genericValueSerializerContext.jsonPathKey
21
- });
22
- const keySerializerContext = keyArraySerializerContext.defineChildSerializerContext({
23
- jsonPathKey: 'key',
24
- typeMetadata: genericKeySerializerContext.typeMetadata
25
- });
26
- const valueSerializerContext = valueArraySerializerContext.defineChildSerializerContext({
27
- jsonPathKey: 'value',
28
- typeMetadata: genericValueSerializerContext.typeMetadata
29
- });
30
- let i = -1;
31
- for (const [mk, mv] of map.entries()) {
32
- i++;
33
- keyArraySerializerContext.hasJsonPathKey(i);
34
- valueArraySerializerContext.hasJsonPathKey(i);
35
- keySerializerContext.hasReferenceValueSetter(v => array[i][keySerializerContext.jsonPathKey] = v);
36
- valueSerializerContext.hasReferenceValueSetter(v => array[i][valueSerializerContext.jsonPathKey] = v);
37
- array[i] = {};
38
- array[i][keySerializerContext.jsonPathKey] = keySerializerContext.serialize(mk);
39
- array[i][valueSerializerContext.jsonPathKey] = valueSerializerContext.serialize(mv);
40
- }
41
- return array;
42
- });
43
- }
44
- if (serializerContext.log.errorEnabled) {
45
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as map.`, x);
46
- }
47
- return undefined;
48
- }
49
- deserialize(x, serializerContext) {
50
- if (isUndefined(x)) {
51
- return serializerContext.deserializedDefaultValue;
52
- }
53
- if (isNull(x)) {
54
- return serializerContext.deserializedNullValue;
55
- }
56
- if (isArray(x)) {
57
- return serializerContext.restoreReference(x, () => {
58
- const array = x;
59
- const map = new Map();
60
- const genericKeySerializerContext = serializerContext.defineGenericSerializerContext(0);
61
- const genericValueSerializerContext = serializerContext.defineGenericSerializerContext(1);
62
- const keyArraySerializerContext = genericKeySerializerContext.defineChildSerializerContext({
63
- jsonPathKey: genericKeySerializerContext.jsonPathKey
64
- });
65
- const valueArraySerializerContext = genericValueSerializerContext.defineChildSerializerContext({
66
- jsonPathKey: genericValueSerializerContext.jsonPathKey
67
- });
68
- const keySerializerContext = keyArraySerializerContext.defineChildSerializerContext({
69
- jsonPathKey: 'key',
70
- typeMetadata: genericKeySerializerContext.typeMetadata
71
- });
72
- const valueSerializerContext = valueArraySerializerContext.defineChildSerializerContext({
73
- jsonPathKey: 'value',
74
- typeMetadata: genericValueSerializerContext.typeMetadata
75
- });
76
- for (let i = 0; i < array.length; i++) {
77
- const mk = array[i][keySerializerContext.jsonPathKey];
78
- const mv = array[i][valueSerializerContext.jsonPathKey];
79
- keyArraySerializerContext.hasJsonPathKey(i);
80
- valueArraySerializerContext.hasJsonPathKey(i);
81
- keySerializerContext.hasReferenceValueSetter(v => map.set(v, undefined));
82
- const key = keySerializerContext.deserialize(mk);
83
- valueSerializerContext.hasReferenceValueSetter(v => map.set(key, v));
84
- const value = valueSerializerContext.deserialize(mv);
85
- map.set(key, value);
86
- }
87
- return map;
88
- });
89
- }
90
- if (serializerContext.log.errorEnabled) {
91
- serializerContext.log.error(`${serializerContext.jsonPath}: Cannot deserialize value as map!`, x);
92
- }
93
- return undefined;
94
- }
95
- }
1
+ import { isArray, isMap, isNull, isUndefined } from 'lodash';
2
+ export class MapSerializer {
3
+ serialize(x, serializerContext) {
4
+ if (isUndefined(x)) {
5
+ return serializerContext.serializedDefaultValue;
6
+ }
7
+ if (isNull(x)) {
8
+ return serializerContext.serializedNullValue;
9
+ }
10
+ if (isMap(x)) {
11
+ return serializerContext.defineReference(x, () => {
12
+ const map = x;
13
+ const array = new Array(x.keys.length);
14
+ const genericKeySerializerContext = serializerContext.defineGenericSerializerContext(0);
15
+ const genericValueSerializerContext = serializerContext.defineGenericSerializerContext(1);
16
+ const keyArraySerializerContext = genericKeySerializerContext.defineChildSerializerContext({
17
+ jsonPathKey: genericKeySerializerContext.jsonPathKey
18
+ });
19
+ const valueArraySerializerContext = genericValueSerializerContext.defineChildSerializerContext({
20
+ jsonPathKey: genericValueSerializerContext.jsonPathKey
21
+ });
22
+ const keySerializerContext = keyArraySerializerContext.defineChildSerializerContext({
23
+ jsonPathKey: 'key',
24
+ typeMetadata: genericKeySerializerContext.typeMetadata
25
+ });
26
+ const valueSerializerContext = valueArraySerializerContext.defineChildSerializerContext({
27
+ jsonPathKey: 'value',
28
+ typeMetadata: genericValueSerializerContext.typeMetadata
29
+ });
30
+ let i = -1;
31
+ for (const [mk, mv] of map.entries()) {
32
+ i++;
33
+ keyArraySerializerContext.hasJsonPathKey(i);
34
+ valueArraySerializerContext.hasJsonPathKey(i);
35
+ keySerializerContext.hasReferenceValueSetter(v => array[i][keySerializerContext.jsonPathKey] = v);
36
+ valueSerializerContext.hasReferenceValueSetter(v => array[i][valueSerializerContext.jsonPathKey] = v);
37
+ array[i] = {};
38
+ array[i][keySerializerContext.jsonPathKey] = keySerializerContext.serialize(mk);
39
+ array[i][valueSerializerContext.jsonPathKey] = valueSerializerContext.serialize(mv);
40
+ }
41
+ return array;
42
+ });
43
+ }
44
+ if (serializerContext.log.errorEnabled) {
45
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as map.`, x);
46
+ }
47
+ return undefined;
48
+ }
49
+ deserialize(x, serializerContext) {
50
+ if (isUndefined(x)) {
51
+ return serializerContext.deserializedDefaultValue;
52
+ }
53
+ if (isNull(x)) {
54
+ return serializerContext.deserializedNullValue;
55
+ }
56
+ if (isArray(x)) {
57
+ return serializerContext.restoreReference(x, () => {
58
+ const array = x;
59
+ const map = new Map();
60
+ const genericKeySerializerContext = serializerContext.defineGenericSerializerContext(0);
61
+ const genericValueSerializerContext = serializerContext.defineGenericSerializerContext(1);
62
+ const keyArraySerializerContext = genericKeySerializerContext.defineChildSerializerContext({
63
+ jsonPathKey: genericKeySerializerContext.jsonPathKey
64
+ });
65
+ const valueArraySerializerContext = genericValueSerializerContext.defineChildSerializerContext({
66
+ jsonPathKey: genericValueSerializerContext.jsonPathKey
67
+ });
68
+ const keySerializerContext = keyArraySerializerContext.defineChildSerializerContext({
69
+ jsonPathKey: 'key',
70
+ typeMetadata: genericKeySerializerContext.typeMetadata
71
+ });
72
+ const valueSerializerContext = valueArraySerializerContext.defineChildSerializerContext({
73
+ jsonPathKey: 'value',
74
+ typeMetadata: genericValueSerializerContext.typeMetadata
75
+ });
76
+ for (let i = 0; i < array.length; i++) {
77
+ const mk = array[i][keySerializerContext.jsonPathKey];
78
+ const mv = array[i][valueSerializerContext.jsonPathKey];
79
+ keyArraySerializerContext.hasJsonPathKey(i);
80
+ valueArraySerializerContext.hasJsonPathKey(i);
81
+ keySerializerContext.hasReferenceValueSetter(v => map.set(v, undefined));
82
+ const key = keySerializerContext.deserialize(mk);
83
+ valueSerializerContext.hasReferenceValueSetter(v => map.set(key, v));
84
+ const value = valueSerializerContext.deserialize(mv);
85
+ map.set(key, value);
86
+ }
87
+ return map;
88
+ });
89
+ }
90
+ if (serializerContext.log.errorEnabled) {
91
+ serializerContext.log.error(`${serializerContext.jsonPath}: Cannot deserialize value as map!`, x);
92
+ }
93
+ return undefined;
94
+ }
95
+ }
96
96
  //# sourceMappingURL=map-serializer.js.map
@@ -1,49 +1,49 @@
1
- import { isBoolean, isNull, isNumber, isString, isUndefined } from 'lodash';
2
- export class NumberSerializer {
3
- serialize(x, serializerContext) {
4
- if (isUndefined(x)) {
5
- return serializerContext.serializedDefaultValue;
6
- }
7
- if (isNull(x)) {
8
- return serializerContext.serializedNullValue;
9
- }
10
- if (isNumber(x)) {
11
- return x;
12
- }
13
- if (serializerContext.useImplicitConversion) {
14
- return this.convert(x, serializerContext);
15
- }
16
- if (serializerContext.log.errorEnabled) {
17
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as number.`, x);
18
- }
19
- return undefined;
20
- }
21
- deserialize(x, serializerContext) {
22
- if (isUndefined(x)) {
23
- return serializerContext.deserializedDefaultValue;
24
- }
25
- if (isNull(x)) {
26
- return serializerContext.deserializedNullValue;
27
- }
28
- if (isNumber(x)) {
29
- return x;
30
- }
31
- if (serializerContext.useImplicitConversion) {
32
- return this.convert(x, serializerContext);
33
- }
34
- if (serializerContext.log.errorEnabled) {
35
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as number.`, x);
36
- }
37
- return undefined;
38
- }
39
- convert(x, serializerContext) {
40
- if (isString(x) || isBoolean(x)) {
41
- return Number(x);
42
- }
43
- if (serializerContext.log.errorEnabled) {
44
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot convert value to a number.`, x);
45
- }
46
- return undefined;
47
- }
48
- }
1
+ import { isBoolean, isNull, isNumber, isString, isUndefined } from 'lodash';
2
+ export class NumberSerializer {
3
+ serialize(x, serializerContext) {
4
+ if (isUndefined(x)) {
5
+ return serializerContext.serializedDefaultValue;
6
+ }
7
+ if (isNull(x)) {
8
+ return serializerContext.serializedNullValue;
9
+ }
10
+ if (isNumber(x)) {
11
+ return x;
12
+ }
13
+ if (serializerContext.useImplicitConversion) {
14
+ return this.convert(x, serializerContext);
15
+ }
16
+ if (serializerContext.log.errorEnabled) {
17
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as number.`, x);
18
+ }
19
+ return undefined;
20
+ }
21
+ deserialize(x, serializerContext) {
22
+ if (isUndefined(x)) {
23
+ return serializerContext.deserializedDefaultValue;
24
+ }
25
+ if (isNull(x)) {
26
+ return serializerContext.deserializedNullValue;
27
+ }
28
+ if (isNumber(x)) {
29
+ return x;
30
+ }
31
+ if (serializerContext.useImplicitConversion) {
32
+ return this.convert(x, serializerContext);
33
+ }
34
+ if (serializerContext.log.errorEnabled) {
35
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as number.`, x);
36
+ }
37
+ return undefined;
38
+ }
39
+ convert(x, serializerContext) {
40
+ if (isString(x) || isBoolean(x)) {
41
+ return Number(x);
42
+ }
43
+ if (serializerContext.log.errorEnabled) {
44
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot convert value to a number.`, x);
45
+ }
46
+ return undefined;
47
+ }
48
+ }
49
49
  //# sourceMappingURL=number-serializer.js.map
@@ -1,62 +1,62 @@
1
- import { isArray, isNull, isSet, isUndefined } from 'lodash';
2
- export class SetSerializer {
3
- serialize(x, serializerContext) {
4
- if (isUndefined(x)) {
5
- return serializerContext.serializedDefaultValue;
6
- }
7
- if (isNull(x)) {
8
- return serializerContext.serializedNullValue;
9
- }
10
- if (isSet(x)) {
11
- return serializerContext.defineReference(x, () => {
12
- const set = x;
13
- const array = new Array();
14
- const genericSerializerContext = serializerContext.defineGenericSerializerContext(0);
15
- const valueSerializerContext = genericSerializerContext.defineChildSerializerContext({
16
- jsonPathKey: genericSerializerContext.jsonPathKey
17
- });
18
- let i = -1;
19
- for (const v of set) {
20
- i++;
21
- valueSerializerContext.hasJsonPathKey(i);
22
- valueSerializerContext.hasReferenceValueSetter(v => array[i] = v);
23
- array[i] = valueSerializerContext.serialize(v);
24
- }
25
- return array;
26
- });
27
- }
28
- if (serializerContext.log.errorEnabled) {
29
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as set.`, x);
30
- }
31
- return undefined;
32
- }
33
- deserialize(x, serializerContext) {
34
- if (isUndefined(x)) {
35
- return serializerContext.deserializedDefaultValue;
36
- }
37
- if (isNull(x)) {
38
- return serializerContext.deserializedNullValue;
39
- }
40
- if (isArray(x)) {
41
- return serializerContext.restoreReference(x, () => {
42
- const array = x;
43
- const set = new Set();
44
- const genericSerializerContext = serializerContext.defineGenericSerializerContext(0);
45
- const valueSerializerContext = genericSerializerContext.defineChildSerializerContext({
46
- jsonPathKey: genericSerializerContext.jsonPathKey
47
- });
48
- for (let i = 0; i < array.length; i++) {
49
- valueSerializerContext.hasJsonPathKey(i);
50
- valueSerializerContext.hasReferenceValueSetter(v => set.add(v));
51
- set.add(valueSerializerContext.deserialize(array[i]));
52
- }
53
- return set;
54
- });
55
- }
56
- if (serializerContext.log.errorEnabled) {
57
- serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as set.`, x);
58
- }
59
- return undefined;
60
- }
61
- }
1
+ import { isArray, isNull, isSet, isUndefined } from 'lodash';
2
+ export class SetSerializer {
3
+ serialize(x, serializerContext) {
4
+ if (isUndefined(x)) {
5
+ return serializerContext.serializedDefaultValue;
6
+ }
7
+ if (isNull(x)) {
8
+ return serializerContext.serializedNullValue;
9
+ }
10
+ if (isSet(x)) {
11
+ return serializerContext.defineReference(x, () => {
12
+ const set = x;
13
+ const array = new Array();
14
+ const genericSerializerContext = serializerContext.defineGenericSerializerContext(0);
15
+ const valueSerializerContext = genericSerializerContext.defineChildSerializerContext({
16
+ jsonPathKey: genericSerializerContext.jsonPathKey
17
+ });
18
+ let i = -1;
19
+ for (const v of set) {
20
+ i++;
21
+ valueSerializerContext.hasJsonPathKey(i);
22
+ valueSerializerContext.hasReferenceValueSetter(v => array[i] = v);
23
+ array[i] = valueSerializerContext.serialize(v);
24
+ }
25
+ return array;
26
+ });
27
+ }
28
+ if (serializerContext.log.errorEnabled) {
29
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot serialize value as set.`, x);
30
+ }
31
+ return undefined;
32
+ }
33
+ deserialize(x, serializerContext) {
34
+ if (isUndefined(x)) {
35
+ return serializerContext.deserializedDefaultValue;
36
+ }
37
+ if (isNull(x)) {
38
+ return serializerContext.deserializedNullValue;
39
+ }
40
+ if (isArray(x)) {
41
+ return serializerContext.restoreReference(x, () => {
42
+ const array = x;
43
+ const set = new Set();
44
+ const genericSerializerContext = serializerContext.defineGenericSerializerContext(0);
45
+ const valueSerializerContext = genericSerializerContext.defineChildSerializerContext({
46
+ jsonPathKey: genericSerializerContext.jsonPathKey
47
+ });
48
+ for (let i = 0; i < array.length; i++) {
49
+ valueSerializerContext.hasJsonPathKey(i);
50
+ valueSerializerContext.hasReferenceValueSetter(v => set.add(v));
51
+ set.add(valueSerializerContext.deserialize(array[i]));
52
+ }
53
+ return set;
54
+ });
55
+ }
56
+ if (serializerContext.log.errorEnabled) {
57
+ serializerContext.log.error(`${serializerContext.jsonPath}: cannot deserialize value as set.`, x);
58
+ }
59
+ return undefined;
60
+ }
61
+ }
62
62
  //# sourceMappingURL=set-serializer.js.map