@dipscope/type-manager 7.0.0-beta.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/CHANGELOG.md +268 -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-arrow-function.js.map +1 -1
  25. package/dist/es2015/functions/is-ctor-function.js +4 -4
  26. package/dist/es2015/functions/is-ctor-function.js.map +1 -1
  27. package/dist/es2015/functions/is-data-view.js +3 -3
  28. package/dist/es2015/functions/is-float-32-array.js +3 -3
  29. package/dist/es2015/functions/is-float-64-array.js +3 -3
  30. package/dist/es2015/functions/is-int-16-array.js +3 -3
  31. package/dist/es2015/functions/is-int-32-array.js +3 -3
  32. package/dist/es2015/functions/is-int-8-array.js +3 -3
  33. package/dist/es2015/functions/is-uint-16-array.js +3 -3
  34. package/dist/es2015/functions/is-uint-32-array.js +3 -3
  35. package/dist/es2015/functions/is-uint-8-array.js +3 -3
  36. package/dist/es2015/functions/is-uint-8-clamped-array.js +3 -3
  37. package/dist/es2015/functions/json-parse.js +3 -3
  38. package/dist/es2015/functions/json-stringify.js +66 -66
  39. package/dist/es2015/functions/name-of.js +7 -7
  40. package/dist/es2015/generic-argument.js +1 -1
  41. package/dist/es2015/generic-metadata-resolver.js +1 -1
  42. package/dist/es2015/generic-metadata.js +1 -1
  43. package/dist/es2015/generic-structure.js +1 -1
  44. package/dist/es2015/index.js +70 -70
  45. package/dist/es2015/inject-index.js +1 -1
  46. package/dist/es2015/inject-internals.js +1 -1
  47. package/dist/es2015/inject-metadata.js +62 -62
  48. package/dist/es2015/inject-options.js +1 -1
  49. package/dist/es2015/inject-sorter.js +1 -1
  50. package/dist/es2015/inject-sorters/asc-inject-sorter.js +13 -13
  51. package/dist/es2015/inject-sorters/desc-inject-sorter.js +13 -13
  52. package/dist/es2015/inject-sorters/index.js +2 -2
  53. package/dist/es2015/inject.js +23 -23
  54. package/dist/es2015/injector.js +1 -1
  55. package/dist/es2015/injectors/index.js +1 -1
  56. package/dist/es2015/injectors/singleton-injector.js +30 -30
  57. package/dist/es2015/log-level.js +7 -7
  58. package/dist/es2015/log.js +49 -49
  59. package/dist/es2015/metadata.js +80 -80
  60. package/dist/es2015/naming-convention.js +1 -1
  61. package/dist/es2015/naming-conventions/camel-case-naming-convention.js +16 -16
  62. package/dist/es2015/naming-conventions/flat-case-naming-convention.js +12 -12
  63. package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js +12 -12
  64. package/dist/es2015/naming-conventions/index.js +8 -8
  65. package/dist/es2015/naming-conventions/kebab-case-naming-convention.js +16 -16
  66. package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js +16 -16
  67. package/dist/es2015/naming-conventions/pascal-case-naming-convention.js +17 -17
  68. package/dist/es2015/naming-conventions/snake-case-naming-convention.js +16 -16
  69. package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js +16 -16
  70. package/dist/es2015/property-internals.js +1 -1
  71. package/dist/es2015/property-metadata.js +268 -268
  72. package/dist/es2015/property-name.js +1 -1
  73. package/dist/es2015/property-options.js +1 -1
  74. package/dist/es2015/property-sorter.js +1 -1
  75. package/dist/es2015/property-sorters/asc-property-sorter.js +13 -13
  76. package/dist/es2015/property-sorters/desc-property-sorter.js +13 -13
  77. package/dist/es2015/property-sorters/index.js +2 -2
  78. package/dist/es2015/property.js +38 -38
  79. package/dist/es2015/reference-callback.js +1 -1
  80. package/dist/es2015/reference-handler.js +1 -1
  81. package/dist/es2015/reference-handlers/circular-reference-handler.js +35 -35
  82. package/dist/es2015/reference-handlers/index.js +3 -3
  83. package/dist/es2015/reference-handlers/json-path-reference-handler.js +68 -68
  84. package/dist/es2015/reference-handlers/plain-reference-handler.js +31 -31
  85. package/dist/es2015/reference-key.js +1 -1
  86. package/dist/es2015/reference-value-getter.js +1 -1
  87. package/dist/es2015/reference-value-setter.js +1 -1
  88. package/dist/es2015/reference-value.js +1 -1
  89. package/dist/es2015/serializer-context-options.js +1 -1
  90. package/dist/es2015/serializer-context.js +281 -281
  91. package/dist/es2015/serializer.js +1 -1
  92. package/dist/es2015/serializers/any-serializer.js +21 -21
  93. package/dist/es2015/serializers/array-buffer-serializer.js +40 -40
  94. package/dist/es2015/serializers/array-serializer.js +59 -59
  95. package/dist/es2015/serializers/boolean-serializer.js +54 -54
  96. package/dist/es2015/serializers/data-view-serializer.js +41 -41
  97. package/dist/es2015/serializers/date-serializer.js +33 -33
  98. package/dist/es2015/serializers/float-32-array-serializer.js +34 -34
  99. package/dist/es2015/serializers/float-64-array-serializer.js +34 -34
  100. package/dist/es2015/serializers/index.js +21 -21
  101. package/dist/es2015/serializers/int-16-array-serializer.js +34 -34
  102. package/dist/es2015/serializers/int-32-array-serializer.js +34 -34
  103. package/dist/es2015/serializers/int-8-array-serializer.js +34 -34
  104. package/dist/es2015/serializers/map-serializer.js +95 -95
  105. package/dist/es2015/serializers/number-serializer.js +48 -48
  106. package/dist/es2015/serializers/set-serializer.js +61 -61
  107. package/dist/es2015/serializers/string-serializer.js +54 -54
  108. package/dist/es2015/serializers/type-serializer.js +120 -120
  109. package/dist/es2015/serializers/uint-16-array-serializer.js +34 -34
  110. package/dist/es2015/serializers/uint-32-array-serializer.js +34 -34
  111. package/dist/es2015/serializers/uint-8-array-serializer.js +34 -34
  112. package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +34 -34
  113. package/dist/es2015/serializers/unknown-serializer.js +21 -21
  114. package/dist/es2015/type-abstraction.js +1 -1
  115. package/dist/es2015/type-argument.js +1 -1
  116. package/dist/es2015/type-configuration.js +1 -1
  117. package/dist/es2015/type-context-entry.js +8 -8
  118. package/dist/es2015/type-context.js +30 -30
  119. package/dist/es2015/type-ctor.js +1 -1
  120. package/dist/es2015/type-fn.js +1 -1
  121. package/dist/es2015/type-internals.js +1 -1
  122. package/dist/es2015/type-like.js +1 -1
  123. package/dist/es2015/type-manager-options.js +1 -1
  124. package/dist/es2015/type-manager.js +319 -319
  125. package/dist/es2015/type-metadata-resolver.js +1 -1
  126. package/dist/es2015/type-metadata-symbol.js +1 -1
  127. package/dist/es2015/type-metadata.js +413 -413
  128. package/dist/es2015/type-name.js +1 -1
  129. package/dist/es2015/type-options-base.js +1 -1
  130. package/dist/es2015/type-options.js +1 -1
  131. package/dist/es2015/type-resolver.js +1 -1
  132. package/dist/es2015/type.js +7 -7
  133. package/dist/es2015/unknown.js +2 -2
  134. package/dist/es5/alias.js +1 -1
  135. package/dist/es5/any.js +6 -6
  136. package/dist/es5/custom-context.js +93 -93
  137. package/dist/es5/custom-key.js +9 -9
  138. package/dist/es5/custom-option.js +1 -1
  139. package/dist/es5/custom-value-resolver.js +1 -1
  140. package/dist/es5/custom-value.js +1 -1
  141. package/dist/es5/default-value-resolver.js +1 -1
  142. package/dist/es5/default-value.js +1 -1
  143. package/dist/es5/discriminant.js +1 -1
  144. package/dist/es5/discriminator.js +1 -1
  145. package/dist/es5/factories/index.js +1 -1
  146. package/dist/es5/factories/type-factory.js +59 -59
  147. package/dist/es5/factory.js +1 -1
  148. package/dist/es5/functions/get-own-reflect-metadata.js +7 -7
  149. package/dist/es5/functions/get-reflect-metadata.js +7 -7
  150. package/dist/es5/functions/get-words.js +4 -4
  151. package/dist/es5/functions/index.js +18 -18
  152. package/dist/es5/functions/is-arrow-function.js +4 -4
  153. package/dist/es5/functions/is-arrow-function.js.map +1 -1
  154. package/dist/es5/functions/is-ctor-function.js +4 -4
  155. package/dist/es5/functions/is-ctor-function.js.map +1 -1
  156. package/dist/es5/functions/is-data-view.js +3 -3
  157. package/dist/es5/functions/is-float-32-array.js +3 -3
  158. package/dist/es5/functions/is-float-64-array.js +3 -3
  159. package/dist/es5/functions/is-int-16-array.js +3 -3
  160. package/dist/es5/functions/is-int-32-array.js +3 -3
  161. package/dist/es5/functions/is-int-8-array.js +3 -3
  162. package/dist/es5/functions/is-uint-16-array.js +3 -3
  163. package/dist/es5/functions/is-uint-32-array.js +3 -3
  164. package/dist/es5/functions/is-uint-8-array.js +3 -3
  165. package/dist/es5/functions/is-uint-8-clamped-array.js +3 -3
  166. package/dist/es5/functions/json-parse.js +3 -3
  167. package/dist/es5/functions/json-stringify.js +66 -66
  168. package/dist/es5/functions/name-of.js +7 -7
  169. package/dist/es5/generic-argument.js +1 -1
  170. package/dist/es5/generic-metadata-resolver.js +1 -1
  171. package/dist/es5/generic-metadata.js +1 -1
  172. package/dist/es5/generic-structure.js +1 -1
  173. package/dist/es5/index.js +70 -70
  174. package/dist/es5/inject-index.js +1 -1
  175. package/dist/es5/inject-internals.js +1 -1
  176. package/dist/es5/inject-metadata.js +83 -83
  177. package/dist/es5/inject-options.js +1 -1
  178. package/dist/es5/inject-sorter.js +1 -1
  179. package/dist/es5/inject-sorters/asc-inject-sorter.js +17 -17
  180. package/dist/es5/inject-sorters/desc-inject-sorter.js +17 -17
  181. package/dist/es5/inject-sorters/index.js +2 -2
  182. package/dist/es5/inject.js +23 -23
  183. package/dist/es5/injector.js +1 -1
  184. package/dist/es5/injectors/index.js +1 -1
  185. package/dist/es5/injectors/singleton-injector.js +44 -44
  186. package/dist/es5/log-level.js +7 -7
  187. package/dist/es5/log.js +64 -64
  188. package/dist/es5/metadata.js +105 -105
  189. package/dist/es5/naming-convention.js +1 -1
  190. package/dist/es5/naming-conventions/camel-case-naming-convention.js +20 -20
  191. package/dist/es5/naming-conventions/flat-case-naming-convention.js +16 -16
  192. package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js +16 -16
  193. package/dist/es5/naming-conventions/index.js +8 -8
  194. package/dist/es5/naming-conventions/kebab-case-naming-convention.js +20 -20
  195. package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js +20 -20
  196. package/dist/es5/naming-conventions/pascal-case-naming-convention.js +21 -21
  197. package/dist/es5/naming-conventions/snake-case-naming-convention.js +20 -20
  198. package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js +20 -20
  199. package/dist/es5/property-internals.js +1 -1
  200. package/dist/es5/property-metadata.js +377 -377
  201. package/dist/es5/property-name.js +1 -1
  202. package/dist/es5/property-options.js +1 -1
  203. package/dist/es5/property-sorter.js +1 -1
  204. package/dist/es5/property-sorters/asc-property-sorter.js +17 -17
  205. package/dist/es5/property-sorters/desc-property-sorter.js +17 -17
  206. package/dist/es5/property-sorters/index.js +2 -2
  207. package/dist/es5/property.js +38 -38
  208. package/dist/es5/reference-callback.js +1 -1
  209. package/dist/es5/reference-handler.js +1 -1
  210. package/dist/es5/reference-handlers/circular-reference-handler.js +39 -39
  211. package/dist/es5/reference-handlers/index.js +3 -3
  212. package/dist/es5/reference-handlers/json-path-reference-handler.js +92 -92
  213. package/dist/es5/reference-handlers/plain-reference-handler.js +35 -35
  214. package/dist/es5/reference-key.js +1 -1
  215. package/dist/es5/reference-value-getter.js +1 -1
  216. package/dist/es5/reference-value-setter.js +1 -1
  217. package/dist/es5/reference-value.js +1 -1
  218. package/dist/es5/serializer-context-options.js +1 -1
  219. package/dist/es5/serializer-context.js +416 -416
  220. package/dist/es5/serializer.js +1 -1
  221. package/dist/es5/serializers/any-serializer.js +25 -25
  222. package/dist/es5/serializers/array-buffer-serializer.js +44 -44
  223. package/dist/es5/serializers/array-serializer.js +69 -69
  224. package/dist/es5/serializers/boolean-serializer.js +58 -58
  225. package/dist/es5/serializers/data-view-serializer.js +45 -45
  226. package/dist/es5/serializers/date-serializer.js +37 -37
  227. package/dist/es5/serializers/float-32-array-serializer.js +38 -38
  228. package/dist/es5/serializers/float-64-array-serializer.js +38 -38
  229. package/dist/es5/serializers/index.js +21 -21
  230. package/dist/es5/serializers/int-16-array-serializer.js +38 -38
  231. package/dist/es5/serializers/int-32-array-serializer.js +38 -38
  232. package/dist/es5/serializers/int-8-array-serializer.js +38 -38
  233. package/dist/es5/serializers/map-serializer.js +114 -114
  234. package/dist/es5/serializers/number-serializer.js +52 -52
  235. package/dist/es5/serializers/set-serializer.js +77 -77
  236. package/dist/es5/serializers/string-serializer.js +58 -58
  237. package/dist/es5/serializers/type-serializer.js +153 -153
  238. package/dist/es5/serializers/uint-16-array-serializer.js +38 -38
  239. package/dist/es5/serializers/uint-32-array-serializer.js +38 -38
  240. package/dist/es5/serializers/uint-8-array-serializer.js +38 -38
  241. package/dist/es5/serializers/uint-8-clamped-array-serializer.js +38 -38
  242. package/dist/es5/serializers/unknown-serializer.js +25 -25
  243. package/dist/es5/type-abstraction.js +1 -1
  244. package/dist/es5/type-argument.js +1 -1
  245. package/dist/es5/type-configuration.js +1 -1
  246. package/dist/es5/type-context-entry.js +10 -10
  247. package/dist/es5/type-context.js +32 -32
  248. package/dist/es5/type-ctor.js +1 -1
  249. package/dist/es5/type-fn.js +1 -1
  250. package/dist/es5/type-internals.js +1 -1
  251. package/dist/es5/type-like.js +1 -1
  252. package/dist/es5/type-manager-options.js +1 -1
  253. package/dist/es5/type-manager.js +412 -412
  254. package/dist/es5/type-metadata-resolver.js +1 -1
  255. package/dist/es5/type-metadata-symbol.js +1 -1
  256. package/dist/es5/type-metadata.js +563 -563
  257. package/dist/es5/type-name.js +1 -1
  258. package/dist/es5/type-options-base.js +1 -1
  259. package/dist/es5/type-options.js +1 -1
  260. package/dist/es5/type-resolver.js +1 -1
  261. package/dist/es5/type.js +7 -7
  262. package/dist/es5/unknown.js +6 -6
  263. package/dist/types/alias.d.ts +6 -6
  264. package/dist/types/any.d.ts +9 -9
  265. package/dist/types/custom-context.d.ts +88 -88
  266. package/dist/types/custom-key.d.ts +28 -28
  267. package/dist/types/custom-option.d.ts +10 -10
  268. package/dist/types/custom-value-resolver.d.ts +6 -6
  269. package/dist/types/custom-value.d.ts +6 -6
  270. package/dist/types/default-value-resolver.d.ts +7 -7
  271. package/dist/types/default-value.d.ts +7 -7
  272. package/dist/types/discriminant.d.ts +8 -8
  273. package/dist/types/discriminator.d.ts +6 -6
  274. package/dist/types/factories/index.d.ts +1 -1
  275. package/dist/types/factories/type-factory.d.ts +19 -19
  276. package/dist/types/factory.d.ts +18 -18
  277. package/dist/types/functions/get-own-reflect-metadata.d.ts +9 -9
  278. package/dist/types/functions/get-reflect-metadata.d.ts +10 -10
  279. package/dist/types/functions/get-words.d.ts +8 -8
  280. package/dist/types/functions/index.d.ts +18 -18
  281. package/dist/types/functions/is-arrow-function.d.ts +8 -8
  282. package/dist/types/functions/is-ctor-function.d.ts +8 -8
  283. package/dist/types/functions/is-data-view.d.ts +8 -8
  284. package/dist/types/functions/is-float-32-array.d.ts +8 -8
  285. package/dist/types/functions/is-float-64-array.d.ts +8 -8
  286. package/dist/types/functions/is-int-16-array.d.ts +8 -8
  287. package/dist/types/functions/is-int-32-array.d.ts +8 -8
  288. package/dist/types/functions/is-int-8-array.d.ts +8 -8
  289. package/dist/types/functions/is-uint-16-array.d.ts +8 -8
  290. package/dist/types/functions/is-uint-32-array.d.ts +8 -8
  291. package/dist/types/functions/is-uint-8-array.d.ts +8 -8
  292. package/dist/types/functions/is-uint-8-clamped-array.d.ts +8 -8
  293. package/dist/types/functions/json-parse.d.ts +9 -9
  294. package/dist/types/functions/json-stringify.d.ts +10 -10
  295. package/dist/types/functions/name-of.d.ts +8 -8
  296. package/dist/types/generic-argument.d.ts +7 -7
  297. package/dist/types/generic-metadata-resolver.d.ts +7 -7
  298. package/dist/types/generic-metadata.d.ts +7 -7
  299. package/dist/types/generic-structure.d.ts +7 -7
  300. package/dist/types/index.d.ts +70 -70
  301. package/dist/types/inject-index.d.ts +6 -6
  302. package/dist/types/inject-internals.d.ts +14 -14
  303. package/dist/types/inject-metadata.d.ts +117 -117
  304. package/dist/types/inject-options.d.ts +22 -22
  305. package/dist/types/inject-sorter.d.ts +19 -19
  306. package/dist/types/inject-sorters/asc-inject-sorter.d.ts +20 -20
  307. package/dist/types/inject-sorters/desc-inject-sorter.d.ts +20 -20
  308. package/dist/types/inject-sorters/index.d.ts +2 -2
  309. package/dist/types/inject.d.ts +10 -10
  310. package/dist/types/injector.d.ts +16 -16
  311. package/dist/types/injectors/index.d.ts +1 -1
  312. package/dist/types/injectors/singleton-injector.d.ts +31 -31
  313. package/dist/types/log-level.d.ts +11 -11
  314. package/dist/types/log.d.ts +95 -95
  315. package/dist/types/metadata.d.ts +99 -99
  316. package/dist/types/naming-convention.d.ts +15 -15
  317. package/dist/types/naming-conventions/camel-case-naming-convention.d.ts +26 -26
  318. package/dist/types/naming-conventions/flat-case-naming-convention.d.ts +25 -25
  319. package/dist/types/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
  320. package/dist/types/naming-conventions/index.d.ts +8 -8
  321. package/dist/types/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
  322. package/dist/types/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
  323. package/dist/types/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
  324. package/dist/types/naming-conventions/snake-case-naming-convention.d.ts +26 -26
  325. package/dist/types/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
  326. package/dist/types/property-internals.d.ts +35 -35
  327. package/dist/types/property-metadata.d.ts +359 -359
  328. package/dist/types/property-name.d.ts +6 -6
  329. package/dist/types/property-options.d.ts +116 -116
  330. package/dist/types/property-sorter.d.ts +19 -19
  331. package/dist/types/property-sorters/asc-property-sorter.d.ts +20 -20
  332. package/dist/types/property-sorters/desc-property-sorter.d.ts +20 -20
  333. package/dist/types/property-sorters/index.d.ts +2 -2
  334. package/dist/types/property.d.ts +13 -13
  335. package/dist/types/reference-callback.d.ts +7 -7
  336. package/dist/types/reference-handler.d.ts +31 -31
  337. package/dist/types/reference-handlers/circular-reference-handler.d.ts +32 -32
  338. package/dist/types/reference-handlers/index.d.ts +3 -3
  339. package/dist/types/reference-handlers/json-path-reference-handler.d.ts +55 -55
  340. package/dist/types/reference-handlers/plain-reference-handler.d.ts +33 -33
  341. package/dist/types/reference-key.d.ts +6 -6
  342. package/dist/types/reference-value-getter.d.ts +7 -7
  343. package/dist/types/reference-value-setter.d.ts +7 -7
  344. package/dist/types/reference-value.d.ts +6 -6
  345. package/dist/types/serializer-context-options.d.ts +50 -50
  346. package/dist/types/serializer-context.d.ts +418 -418
  347. package/dist/types/serializer.d.ts +27 -27
  348. package/dist/types/serializers/any-serializer.d.ts +28 -28
  349. package/dist/types/serializers/array-buffer-serializer.d.ts +28 -28
  350. package/dist/types/serializers/array-serializer.d.ts +28 -28
  351. package/dist/types/serializers/boolean-serializer.d.ts +37 -37
  352. package/dist/types/serializers/data-view-serializer.d.ts +28 -28
  353. package/dist/types/serializers/date-serializer.d.ts +28 -28
  354. package/dist/types/serializers/float-32-array-serializer.d.ts +28 -28
  355. package/dist/types/serializers/float-64-array-serializer.d.ts +28 -28
  356. package/dist/types/serializers/index.d.ts +21 -21
  357. package/dist/types/serializers/int-16-array-serializer.d.ts +28 -28
  358. package/dist/types/serializers/int-32-array-serializer.d.ts +28 -28
  359. package/dist/types/serializers/int-8-array-serializer.d.ts +28 -28
  360. package/dist/types/serializers/map-serializer.d.ts +28 -28
  361. package/dist/types/serializers/number-serializer.d.ts +37 -37
  362. package/dist/types/serializers/set-serializer.d.ts +28 -28
  363. package/dist/types/serializers/string-serializer.d.ts +37 -37
  364. package/dist/types/serializers/type-serializer.d.ts +28 -28
  365. package/dist/types/serializers/uint-16-array-serializer.d.ts +28 -28
  366. package/dist/types/serializers/uint-32-array-serializer.d.ts +28 -28
  367. package/dist/types/serializers/uint-8-array-serializer.d.ts +28 -28
  368. package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
  369. package/dist/types/serializers/unknown-serializer.d.ts +28 -28
  370. package/dist/types/type-abstraction.d.ts +6 -6
  371. package/dist/types/type-argument.d.ts +9 -9
  372. package/dist/types/type-configuration.d.ts +16 -16
  373. package/dist/types/type-context-entry.d.ts +36 -36
  374. package/dist/types/type-context.d.ts +70 -70
  375. package/dist/types/type-ctor.d.ts +6 -6
  376. package/dist/types/type-fn.d.ts +8 -8
  377. package/dist/types/type-internals.d.ts +14 -14
  378. package/dist/types/type-like.d.ts +7 -7
  379. package/dist/types/type-manager-options.d.ts +33 -33
  380. package/dist/types/type-manager.d.ts +413 -413
  381. package/dist/types/type-metadata-resolver.d.ts +8 -8
  382. package/dist/types/type-metadata-symbol.d.ts +6 -6
  383. package/dist/types/type-metadata.d.ts +513 -513
  384. package/dist/types/type-name.d.ts +6 -6
  385. package/dist/types/type-options-base.d.ts +106 -106
  386. package/dist/types/type-options.d.ts +72 -72
  387. package/dist/types/type-resolver.d.ts +7 -7
  388. package/dist/types/type.d.ts +9 -9
  389. package/dist/types/unknown.d.ts +9 -9
  390. package/dist/umd/index.js +1 -1
  391. package/dist/umd/index.js.map +1 -1
  392. 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