@solidstarters/solid-code-builder 1.0.10 → 1.0.12

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 (307) hide show
  1. package/dist/code-builder/lib/field/FieldManager.d.ts +2 -1
  2. package/dist/code-builder/lib/field/FieldManager.js +18 -5
  3. package/dist/code-builder/lib/field/FieldManager.js.map +1 -1
  4. package/dist/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js +1 -1
  5. package/dist/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +1 -1
  6. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +8 -9
  7. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -1
  8. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +3 -0
  9. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +15 -3
  10. package/dist/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -1
  11. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.d.ts +13 -0
  12. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.js +33 -0
  13. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.js.map +1 -0
  14. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.d.ts +4 -0
  15. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.js +9 -0
  16. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.js.map +1 -0
  17. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.d.ts +4 -0
  18. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.js +8 -0
  19. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.js.map +1 -0
  20. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +1 -16
  21. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js +15 -156
  22. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +1 -1
  23. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +1 -20
  24. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js +0 -109
  25. package/dist/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +1 -1
  26. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +2 -17
  27. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js +4 -175
  28. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +1 -1
  29. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +1 -22
  30. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js +1 -133
  31. package/dist/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +1 -1
  32. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.d.ts +13 -0
  33. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.js +33 -0
  34. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.js.map +1 -0
  35. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.d.ts +34 -0
  36. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.js +202 -0
  37. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.js.map +1 -0
  38. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.d.ts +9 -0
  39. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.js +43 -0
  40. package/dist/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.js.map +1 -0
  41. package/package.json +1 -1
  42. package/src/code-builder/index.d.ts +9 -0
  43. package/src/code-builder/index.js +178 -0
  44. package/src/code-builder/index.js.map +1 -0
  45. package/src/code-builder/index_spec.d.ts +1 -0
  46. package/src/code-builder/index_spec.js +46 -0
  47. package/src/code-builder/index_spec.js.map +1 -0
  48. package/src/code-builder/lib/field/FieldManager.d.ts +106 -0
  49. package/src/code-builder/lib/field/FieldManager.js +236 -0
  50. package/src/code-builder/lib/field/FieldManager.js.map +1 -0
  51. package/src/code-builder/lib/field/FieldManager.ts +19 -6
  52. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.d.ts +26 -0
  53. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js +107 -0
  54. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js.map +1 -0
  55. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.d.ts +24 -0
  56. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js +100 -0
  57. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js.map +1 -0
  58. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.d.ts +24 -0
  59. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js +102 -0
  60. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js.map +1 -0
  61. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.d.ts +24 -0
  62. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js +106 -0
  63. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js.map +1 -0
  64. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.d.ts +24 -0
  65. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js +112 -0
  66. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js.map +1 -0
  67. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.d.ts +24 -0
  68. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js +99 -0
  69. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js.map +1 -0
  70. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.d.ts +24 -0
  71. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js +100 -0
  72. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js.map +1 -0
  73. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.d.ts +24 -0
  74. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js +100 -0
  75. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js.map +1 -0
  76. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.d.ts +25 -0
  77. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js +104 -0
  78. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js.map +1 -0
  79. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.d.ts +25 -0
  80. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js +103 -0
  81. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js.map +1 -0
  82. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.d.ts +25 -0
  83. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js +103 -0
  84. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js.map +1 -0
  85. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.d.ts +25 -0
  86. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js +102 -0
  87. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js.map +1 -0
  88. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.d.ts +25 -0
  89. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js +103 -0
  90. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js.map +1 -0
  91. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.d.ts +24 -0
  92. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js +112 -0
  93. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js.map +1 -0
  94. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.d.ts +26 -0
  95. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js +104 -0
  96. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js.map +1 -0
  97. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.d.ts +25 -0
  98. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js +102 -0
  99. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js.map +1 -0
  100. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.d.ts +25 -0
  101. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js +100 -0
  102. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js.map +1 -0
  103. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.d.ts +24 -0
  104. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js +99 -0
  105. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js.map +1 -0
  106. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.d.ts +25 -0
  107. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js +102 -0
  108. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js.map +1 -0
  109. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.d.ts +30 -0
  110. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js +140 -0
  111. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js.map +1 -0
  112. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +34 -0
  113. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js +178 -0
  114. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js.map +1 -0
  115. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.d.ts +24 -0
  116. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js +79 -0
  117. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +1 -0
  118. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.ts +1 -1
  119. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +29 -0
  120. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js +118 -0
  121. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +1 -0
  122. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.d.ts +37 -0
  123. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js +175 -0
  124. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js.map +1 -0
  125. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.d.ts +34 -0
  126. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js +179 -0
  127. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +1 -0
  128. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.d.ts +33 -0
  129. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js +155 -0
  130. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js.map +1 -0
  131. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.d.ts +31 -0
  132. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +174 -0
  133. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -0
  134. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.ts +8 -9
  135. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +51 -0
  136. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js +345 -0
  137. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +1 -0
  138. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +58 -0
  139. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +373 -0
  140. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -0
  141. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.ts +19 -3
  142. package/src/code-builder/lib/field/field-managers/base/DeleteType.d.ts +6 -0
  143. package/src/code-builder/lib/field/field-managers/base/DeleteType.js +11 -0
  144. package/src/code-builder/lib/field/field-managers/base/DeleteType.js.map +1 -0
  145. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.d.ts +13 -0
  146. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js +33 -0
  147. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js.map +1 -0
  148. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.d.ts +23 -0
  149. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js +81 -0
  150. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js.map +1 -0
  151. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.d.ts +13 -0
  152. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js +55 -0
  153. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js.map +1 -0
  154. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.d.ts +13 -0
  155. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js +33 -0
  156. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js.map +1 -0
  157. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.d.ts +22 -0
  158. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js +75 -0
  159. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js.map +1 -0
  160. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.d.ts +13 -0
  161. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js +51 -0
  162. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js.map +1 -0
  163. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.d.ts +14 -0
  164. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js +30 -0
  165. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js.map +1 -0
  166. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.d.ts +11 -0
  167. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js +33 -0
  168. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js.map +1 -0
  169. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.d.ts +13 -0
  170. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js +33 -0
  171. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js.map +1 -0
  172. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.d.ts +22 -0
  173. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js +81 -0
  174. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js.map +1 -0
  175. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.d.ts +13 -0
  176. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js +59 -0
  177. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js.map +1 -0
  178. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.d.ts +13 -0
  179. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js +33 -0
  180. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js.map +1 -0
  181. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.d.ts +22 -0
  182. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js +77 -0
  183. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js.map +1 -0
  184. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.d.ts +13 -0
  185. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js +53 -0
  186. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js.map +1 -0
  187. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.d.ts +14 -0
  188. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js +34 -0
  189. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js.map +1 -0
  190. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.d.ts +22 -0
  191. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js +72 -0
  192. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js.map +1 -0
  193. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.d.ts +12 -0
  194. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js +44 -0
  195. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js.map +1 -0
  196. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.d.ts +13 -0
  197. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js +33 -0
  198. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js.map +1 -0
  199. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.d.ts +22 -0
  200. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js +76 -0
  201. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js.map +1 -0
  202. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.d.ts +13 -0
  203. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js +52 -0
  204. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js.map +1 -0
  205. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.d.ts +14 -0
  206. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js +34 -0
  207. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js.map +1 -0
  208. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.d.ts +20 -0
  209. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js +57 -0
  210. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js.map +1 -0
  211. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.d.ts +9 -0
  212. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js +21 -0
  213. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js.map +1 -0
  214. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +14 -0
  215. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js +34 -0
  216. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +1 -0
  217. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.d.ts +22 -0
  218. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js +63 -0
  219. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js.map +1 -0
  220. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +11 -0
  221. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js +34 -0
  222. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +1 -0
  223. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.d.ts +13 -0
  224. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js +33 -0
  225. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js.map +1 -0
  226. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.d.ts +23 -0
  227. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js +72 -0
  228. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js.map +1 -0
  229. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.d.ts +12 -0
  230. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js +57 -0
  231. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js.map +1 -0
  232. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.d.ts +13 -0
  233. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js +27 -0
  234. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js.map +1 -0
  235. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.d.ts +24 -0
  236. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js +75 -0
  237. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js.map +1 -0
  238. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.d.ts +12 -0
  239. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js +35 -0
  240. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js.map +1 -0
  241. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.d.ts +14 -0
  242. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js +34 -0
  243. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js.map +1 -0
  244. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.d.ts +29 -0
  245. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js +121 -0
  246. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js.map +1 -0
  247. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.d.ts +11 -0
  248. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js +37 -0
  249. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js.map +1 -0
  250. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldHandler.ts +52 -0
  251. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForDto.ts +8 -0
  252. package/src/code-builder/lib/field/field-managers/relation/ManyToManyInverseRelationFieldManagerForEntity.ts +8 -0
  253. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.d.ts +13 -0
  254. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js +33 -0
  255. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js.map +1 -0
  256. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +51 -0
  257. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js +366 -0
  258. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +1 -0
  259. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.ts +16 -189
  260. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +30 -0
  261. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js +158 -0
  262. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +1 -0
  263. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.ts +2 -147
  264. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.d.ts +13 -0
  265. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js +33 -0
  266. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js.map +1 -0
  267. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +43 -0
  268. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js +294 -0
  269. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +1 -0
  270. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.ts +6 -215
  271. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +31 -0
  272. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js +177 -0
  273. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +1 -0
  274. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.ts +3 -174
  275. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldHandler.ts +52 -0
  276. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForDto.ts +247 -0
  277. package/src/code-builder/lib/field/field-managers/relation/OneToManyRelationFieldManagerForEntity.ts +51 -0
  278. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +14 -0
  279. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js +34 -0
  280. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +1 -0
  281. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.d.ts +22 -0
  282. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js +63 -0
  283. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js.map +1 -0
  284. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +11 -0
  285. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js +34 -0
  286. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +1 -0
  287. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.d.ts +14 -0
  288. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js +34 -0
  289. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js.map +1 -0
  290. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.d.ts +22 -0
  291. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js +63 -0
  292. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js.map +1 -0
  293. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.d.ts +11 -0
  294. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js +37 -0
  295. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js.map +1 -0
  296. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.d.ts +14 -0
  297. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js +34 -0
  298. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js.map +1 -0
  299. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.d.ts +8 -0
  300. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js +15 -0
  301. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js.map +1 -0
  302. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.d.ts +11 -0
  303. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js +33 -0
  304. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js.map +1 -0
  305. package/src/code-builder/lib/model/helpers.d.ts +49 -0
  306. package/src/code-builder/lib/model/helpers.js +407 -0
  307. package/src/code-builder/lib/model/helpers.js.map +1 -0
@@ -0,0 +1,52 @@
1
+ import { DtoSourceType, FieldChange, FieldHandler, FieldManager, ManagerForDtoOptions } from '../../FieldManager';
2
+ import { ManyToManyInverseRelationFieldManagerForDto } from './ManyToManyInverseRelationFieldManagerForDto';
3
+ import { ManyToManyInverseRelationFieldManagerForEntity } from './ManyToManyInverseRelationFieldManagerForEntity';
4
+
5
+
6
+ export class ManyToManyInverseRelationFieldHandler implements FieldHandler {
7
+ entityFieldManager: FieldManager;
8
+ createDtoFieldManager: FieldManager;
9
+ updateDtoFieldManager: FieldManager;
10
+ constructor(tree: any, moduleName: string, modelName: string, field: any) {
11
+ this.entityFieldManager = new ManyToManyInverseRelationFieldManagerForEntity(
12
+ tree,
13
+ moduleName,
14
+ modelName,
15
+ field,
16
+ );
17
+ this.createDtoFieldManager = new ManyToManyInverseRelationFieldManagerForDto(
18
+ tree,
19
+ moduleName,
20
+ modelName,
21
+ field,
22
+ new ManagerForDtoOptions(DtoSourceType.Create),
23
+ );
24
+ this.updateDtoFieldManager = new ManyToManyInverseRelationFieldManagerForDto(
25
+ tree,
26
+ moduleName,
27
+ modelName,
28
+ field,
29
+ new ManagerForDtoOptions(DtoSourceType.Update),
30
+ );
31
+ }
32
+ updateEntityField(): FieldChange[] {
33
+ return this.entityFieldManager.updateField();
34
+ }
35
+ updateDtoField(): FieldChange[] {
36
+ return [...this.createDtoFieldManager.updateField(), ...this.updateDtoFieldManager.updateField()];
37
+ }
38
+ removeEntityField(): FieldChange[] {
39
+ return this.entityFieldManager.removeField();
40
+ }
41
+ removeDtoField(): FieldChange[] {
42
+ return [...this.createDtoFieldManager.removeField(), ...this.updateDtoFieldManager.removeField()];
43
+ }
44
+
45
+ addEntityField(): FieldChange[] {
46
+ return this.entityFieldManager.addField();
47
+ }
48
+
49
+ addDtoField(): FieldChange[] {
50
+ return [...this.createDtoFieldManager.addField(), ...this.updateDtoFieldManager.addField()];
51
+ }
52
+ }
@@ -0,0 +1,8 @@
1
+ import { FieldManager } from '../../FieldManager';
2
+ import { ManyToManyRelationFieldManagerForDto } from './ManyToManyRelationFieldManagerForDto';
3
+
4
+ // For DTO's, the inverse relation behaivour is the same as the normal relation
5
+ export class ManyToManyInverseRelationFieldManagerForDto
6
+ extends ManyToManyRelationFieldManagerForDto
7
+ implements FieldManager {
8
+ }
@@ -0,0 +1,8 @@
1
+ import { FieldManager } from '../../FieldManager';
2
+ import { ManyToManyRelationFieldManagerForEntity } from './ManyToManyRelationFieldManagerForEntity';
3
+
4
+ export class ManyToManyInverseRelationFieldManagerForEntity
5
+ extends ManyToManyRelationFieldManagerForEntity
6
+ implements FieldManager {
7
+
8
+ }
@@ -0,0 +1,13 @@
1
+ import { FieldChange, FieldHandler, FieldManager } from '../../FieldManager';
2
+ export declare class ManyToManyRelationFieldHandler implements FieldHandler {
3
+ entityFieldManager: FieldManager;
4
+ createDtoFieldManager: FieldManager;
5
+ updateDtoFieldManager: FieldManager;
6
+ constructor(tree: any, moduleName: string, modelName: string, field: any);
7
+ updateEntityField(): FieldChange[];
8
+ updateDtoField(): FieldChange[];
9
+ removeEntityField(): FieldChange[];
10
+ removeDtoField(): FieldChange[];
11
+ addEntityField(): FieldChange[];
12
+ addDtoField(): FieldChange[];
13
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ManyToManyRelationFieldHandler = void 0;
4
+ const FieldManager_1 = require("../../FieldManager");
5
+ const ManyToManyRelationFieldManagerForDto_1 = require("./ManyToManyRelationFieldManagerForDto");
6
+ const ManyToManyRelationFieldManagerForEntity_1 = require("./ManyToManyRelationFieldManagerForEntity");
7
+ class ManyToManyRelationFieldHandler {
8
+ constructor(tree, moduleName, modelName, field) {
9
+ this.entityFieldManager = new ManyToManyRelationFieldManagerForEntity_1.ManyToManyRelationFieldManagerForEntity(tree, moduleName, modelName, field);
10
+ this.createDtoFieldManager = new ManyToManyRelationFieldManagerForDto_1.ManyToManyRelationFieldManagerForDto(tree, moduleName, modelName, field, new FieldManager_1.ManagerForDtoOptions(FieldManager_1.DtoSourceType.Create));
11
+ this.updateDtoFieldManager = new ManyToManyRelationFieldManagerForDto_1.ManyToManyRelationFieldManagerForDto(tree, moduleName, modelName, field, new FieldManager_1.ManagerForDtoOptions(FieldManager_1.DtoSourceType.Update));
12
+ }
13
+ updateEntityField() {
14
+ return this.entityFieldManager.updateField();
15
+ }
16
+ updateDtoField() {
17
+ return [...this.createDtoFieldManager.updateField(), ...this.updateDtoFieldManager.updateField()];
18
+ }
19
+ removeEntityField() {
20
+ return this.entityFieldManager.removeField();
21
+ }
22
+ removeDtoField() {
23
+ return [...this.createDtoFieldManager.removeField(), ...this.updateDtoFieldManager.removeField()];
24
+ }
25
+ addEntityField() {
26
+ return this.entityFieldManager.addField();
27
+ }
28
+ addDtoField() {
29
+ return [...this.createDtoFieldManager.addField(), ...this.updateDtoFieldManager.addField()];
30
+ }
31
+ }
32
+ exports.ManyToManyRelationFieldHandler = ManyToManyRelationFieldHandler;
33
+ //# sourceMappingURL=ManyToManyRelationFieldHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToManyRelationFieldHandler.js","sourceRoot":"","sources":["ManyToManyRelationFieldHandler.ts"],"names":[],"mappings":";;;AAAA,qDAAkH;AAClH,iGAA8F;AAC9F,uGAAoG;AAEpG,MAAa,8BAA8B;IAIzC,YAAY,IAAS,EAAE,UAAkB,EAAE,SAAiB,EAAE,KAAU;QACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,iFAAuC,CACnE,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,CACN,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,2EAAoC,CACnE,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,mCAAoB,CAAC,4BAAa,CAAC,MAAM,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,2EAAoC,CACnE,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,mCAAoB,CAAC,4BAAa,CAAC,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IACD,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IACD,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF;AA9CD,wEA8CC"}
@@ -0,0 +1,51 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
3
+ import { Change } from '@schematics/angular/utility/change';
4
+ import { DecoratorManager, FieldChange, FieldManager, FieldType, ManagerForDtoOptions } from '../../FieldManager';
5
+ import { BaseFieldManagerForDto } from '../base/BaseFieldManagerForDto';
6
+ export declare class ManyToManyRelationFieldManagerForDto extends BaseFieldManagerForDto implements FieldManager {
7
+ isJson(): boolean;
8
+ isBoolean(): boolean;
9
+ relationInverseSource: ts.SourceFile;
10
+ relationInverseDecoratorManagers: DecoratorManager[];
11
+ constructor(tree: Tree, moduleName: string, modelName: string, field: any, options: ManagerForDtoOptions);
12
+ isString(): boolean;
13
+ isNumber(): boolean;
14
+ isInt(): boolean;
15
+ isDecimal(): boolean;
16
+ isApplyRegex(): boolean;
17
+ isApplyRequired(): boolean;
18
+ isApplyMin(): boolean;
19
+ isApplyMax(): boolean;
20
+ isDate(): boolean;
21
+ isTransform(): boolean;
22
+ fieldType(): FieldType;
23
+ additionalFieldType(): FieldType;
24
+ private transformType;
25
+ private manyToManyFieldType;
26
+ addAdditionalField(): FieldChange[];
27
+ private addAdditionalInverseIdsField;
28
+ private addAdditionalInverseCommandsField;
29
+ private addAdditionalIdsField;
30
+ private addAdditionalCommandField;
31
+ private inverseFieldImport;
32
+ private addAdditionalInverseField;
33
+ addOrUpdateAdditionalField(): FieldChange[];
34
+ updateAdditionalInverseField(): FieldChange;
35
+ updateAdditionalInverseIdsField(): FieldChange;
36
+ updateAdditionalInverseCommandsField(): FieldChange;
37
+ private updateAdditionalIdsField;
38
+ updateAdditionalCommandField(): FieldChange;
39
+ removeAdditionalField(): FieldChange[];
40
+ removeAdditionalIdsField(): FieldChange;
41
+ removeAdditionalCommandField(): FieldChange;
42
+ removeAdditionalInverseField(): FieldChange;
43
+ removeAdditionalInverseIdsField(): FieldChange;
44
+ removeAdditionalInverseCommandsField(): FieldChange;
45
+ fieldName(): string;
46
+ additionalFieldName(): string;
47
+ protected isAdditionalFieldRequired(): boolean;
48
+ addField(): FieldChange[];
49
+ updateField(): FieldChange[];
50
+ relatedFieldImport(): Change;
51
+ }
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ManyToManyRelationFieldManagerForDto = void 0;
7
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
8
+ const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
9
+ const ArrayDecoratorManager_1 = require("../../decorator-managers/dto/ArrayDecoratorManager");
10
+ const OptionalDecoratorManager_1 = require("../../decorator-managers/dto/OptionalDecoratorManager");
11
+ const TransformDecoratorManager_1 = require("../../decorator-managers/dto/TransformDecoratorManager");
12
+ const FieldManager_1 = require("../../FieldManager");
13
+ const BaseFieldManagerForDto_1 = require("../base/BaseFieldManagerForDto");
14
+ const StringDecoratorManager_1 = require("../../decorator-managers/dto/StringDecoratorManager");
15
+ class ManyToManyRelationFieldManagerForDto extends BaseFieldManagerForDto_1.BaseFieldManagerForDto {
16
+ isJson() {
17
+ return false;
18
+ }
19
+ isBoolean() {
20
+ return false;
21
+ }
22
+ constructor(tree, moduleName, modelName, field, options) {
23
+ super(tree, moduleName, modelName, Object.assign(Object.assign({}, field), { required: false }), options);
24
+ this.decoratorManagers = [...this.decoratorManagers, ...this.getFieldDecoratorManagers(this.field, this.source, FieldManager_1.DecoratorType.Array, FieldManager_1.DecoratorType.ValidateNested)];
25
+ this.decoratorManagers.push(new TransformDecoratorManager_1.TransformDecoratorManager({ isTransform: true, type: this.transformType(this.field.relationModelSingularName), source: this.source, field: field }));
26
+ // TODO : inverse source file logic is required, but needs to be handled in a better way
27
+ if (this.field.relationCreateInverse) {
28
+ const relatedEntityFileName = (this.options.sourceType === FieldManager_1.DtoSourceType.Create) ? `create-${(0, strings_1.dasherize)(this.field.relationModelSingularName)}.dto.ts` : `update-${(0, strings_1.dasherize)(this.field.relationModelSingularName)}.dto.ts`;
29
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${(0, strings_1.dasherize)(this.field.relationModelModuleName)}/dtos/${relatedEntityFileName}` : `src/${(0, strings_1.dasherize)(moduleName)}/dtos/${relatedEntityFileName}`;
30
+ this.relationInverseSource = (0, FieldManager_1.createSourceFile)(tree, relatedEntityPath);
31
+ this.relationInverseDecoratorManagers = this.getFieldDecoratorManagers(this.field, this.relationInverseSource, FieldManager_1.DecoratorType.Array, FieldManager_1.DecoratorType.ValidateNested);
32
+ this.relationInverseDecoratorManagers.push(new TransformDecoratorManager_1.TransformDecoratorManager({ isTransform: true, type: this.transformType(this.modelName), source: this.relationInverseSource, field: field }));
33
+ this.relationInverseDecoratorManagers.push(new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: this.relationInverseSource, field: field }));
34
+ }
35
+ }
36
+ isString() {
37
+ return false;
38
+ }
39
+ isNumber() {
40
+ return false;
41
+ }
42
+ isInt() {
43
+ return false;
44
+ }
45
+ isDecimal() {
46
+ return false;
47
+ }
48
+ isApplyRegex() {
49
+ return false;
50
+ }
51
+ isApplyRequired() {
52
+ return false;
53
+ }
54
+ isApplyMin() {
55
+ return false;
56
+ }
57
+ isApplyMax() {
58
+ return false;
59
+ }
60
+ isDate() {
61
+ return false;
62
+ }
63
+ isTransform() {
64
+ return true;
65
+ }
66
+ // This is the field type of the owner in the m2m relation
67
+ fieldType() {
68
+ return this.manyToManyFieldType(this.field.relationModelSingularName);
69
+ }
70
+ // This field type is used in the case of one-to-many relation, when we generate the inverse field in the related entity
71
+ additionalFieldType() {
72
+ return this.manyToManyFieldType(this.modelName);
73
+ }
74
+ transformType(forModelName) {
75
+ return `Update${(0, strings_1.classify)(forModelName)}Dto`;
76
+ }
77
+ manyToManyFieldType(forModelName) {
78
+ // const type = `number`
79
+ const type = this.transformType(forModelName);
80
+ const text = `${type}[]`;
81
+ return {
82
+ text: text,
83
+ node: (_field) => typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier(type), undefined)),
84
+ };
85
+ }
86
+ addAdditionalField() {
87
+ const fieldChanges = [];
88
+ // Add the ids field to the main entity
89
+ fieldChanges.push(this.addAdditionalIdsField());
90
+ // Add the command field to the main entity
91
+ fieldChanges.push(this.addAdditionalCommandField());
92
+ // Add the inverse field to the related entity
93
+ if (this.field.relationCreateInverse) {
94
+ fieldChanges.push(this.addAdditionalInverseField());
95
+ fieldChanges.push(this.addAdditionalInverseIdsField());
96
+ fieldChanges.push(this.addAdditionalInverseCommandsField());
97
+ }
98
+ return fieldChanges;
99
+ }
100
+ addAdditionalInverseIdsField() {
101
+ const fieldName = `${this.field.relationModelFieldName}Ids`;
102
+ const fieldType = "number[]";
103
+ const source = this.relationInverseSource;
104
+ const field = this.field;
105
+ const modelName = this.field.relationModelSingularName;
106
+ const decoratorManagers = [
107
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
108
+ new ArrayDecoratorManager_1.ArrayDecoratorManager({ isArray: true, source: source, field: field })
109
+ ];
110
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
111
+ }
112
+ addAdditionalInverseCommandsField() {
113
+ const fieldName = `${this.field.relationModelFieldName}Command`;
114
+ const fieldType = "string";
115
+ const source = this.relationInverseSource;
116
+ const field = this.field;
117
+ const modelName = this.field.relationModelSingularName;
118
+ const decoratorManagers = [
119
+ new StringDecoratorManager_1.StringDecoratorManager({ isString: true, source: source, field: field }),
120
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
121
+ // TODO pending @IsEnum(RelationFieldsCommand)
122
+ ];
123
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
124
+ }
125
+ addAdditionalIdsField() {
126
+ const fieldName = `${this.field.name}Ids`;
127
+ const fieldType = "number[]";
128
+ const source = this.source;
129
+ const field = this.field;
130
+ const modelName = this.modelName;
131
+ const decoratorManagers = [
132
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
133
+ new ArrayDecoratorManager_1.ArrayDecoratorManager({ isArray: true, source: source, field: field })
134
+ ];
135
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
136
+ }
137
+ addAdditionalCommandField() {
138
+ const fieldName = `${this.field.name}Command`;
139
+ const fieldType = "string";
140
+ const source = this.source;
141
+ const field = this.field;
142
+ const modelName = this.modelName;
143
+ const decoratorManagers = [
144
+ new StringDecoratorManager_1.StringDecoratorManager({ isString: true, source: source, field: field }),
145
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
146
+ // TODO pending @IsEnum(RelationFieldsCommand)
147
+ ];
148
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
149
+ }
150
+ inverseFieldImport(modelName, moduleName, source) {
151
+ const inverseEntityImportName = `update-${(0, strings_1.dasherize)(modelName)}.dto`;
152
+ const inverseEntityPath = `src/${moduleName}/dtos/${inverseEntityImportName}`;
153
+ return (0, FieldManager_1.safeInsertImport)(source, `Update${(0, strings_1.classify)(modelName)}Dto`, inverseEntityPath);
154
+ }
155
+ addAdditionalInverseField() {
156
+ const fieldName = this.additionalFieldName();
157
+ const fieldType = this.additionalFieldType().text;
158
+ const source = this.relationInverseSource;
159
+ const field = this.field;
160
+ const modelName = this.field.relationModelSingularName;
161
+ const decoratorManagers = this.relationInverseDecoratorManagers;
162
+ const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
163
+ if (this.modelName !== this.field.relationModelSingularName) {
164
+ const currentModelName = this.modelName;
165
+ const currentModuleName = this.moduleName;
166
+ fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
167
+ }
168
+ return fieldChange;
169
+ }
170
+ //TODO: Can be improved to avoid duplicate code
171
+ addOrUpdateAdditionalField() {
172
+ const fieldChanges = [];
173
+ // Add or update the ids field
174
+ fieldChanges.push(this.updateAdditionalIdsField());
175
+ // Add or update the command field
176
+ fieldChanges.push(this.updateAdditionalCommandField());
177
+ if (this.field.relationCreateInverse) {
178
+ fieldChanges.push(this.updateAdditionalInverseField());
179
+ fieldChanges.push(this.updateAdditionalInverseIdsField());
180
+ fieldChanges.push(this.updateAdditionalInverseCommandsField());
181
+ }
182
+ return fieldChanges;
183
+ }
184
+ updateAdditionalInverseField() {
185
+ var _a;
186
+ const inverseFieldName = this.field.relationModelFieldName;
187
+ const inverseFieldType = this.manyToManyFieldType(this.modelName).node(this.field);
188
+ const source = this.relationInverseSource;
189
+ const field = this.field;
190
+ const inverseDecoratorManagers = this.relationInverseDecoratorManagers;
191
+ const inverseField = (_a = this.getFieldIdentifierNode(inverseFieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
192
+ if (inverseField == null) {
193
+ return this.addAdditionalInverseField();
194
+ }
195
+ else {
196
+ //Update the inverse field
197
+ const fieldChange = this.updateFieldInternal(inverseFieldName, inverseFieldType, inverseDecoratorManagers, field, source);
198
+ if (this.modelName !== this.field.relationModelSingularName) {
199
+ const currentModelName = this.modelName;
200
+ const currentModuleName = this.moduleName;
201
+ fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
202
+ }
203
+ return fieldChange;
204
+ }
205
+ }
206
+ updateAdditionalInverseIdsField() {
207
+ var _a;
208
+ const idsFieldName = `${this.field.relationModelFieldName}Ids`;
209
+ const idsFieldType = typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
210
+ const source = this.relationInverseSource;
211
+ const field = this.field;
212
+ const decoratorManagers = [
213
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
214
+ new ArrayDecoratorManager_1.ArrayDecoratorManager({ isArray: true, source: source, field: field })
215
+ ];
216
+ const idsField = (_a = this.getFieldIdentifierNode(idsFieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
217
+ if (idsField == null) {
218
+ return this.addAdditionalInverseIdsField();
219
+ }
220
+ else {
221
+ //Update the ids field
222
+ return this.updateFieldInternal(idsFieldName, idsFieldType, decoratorManagers, field, source);
223
+ }
224
+ }
225
+ updateAdditionalInverseCommandsField() {
226
+ var _a;
227
+ const commandFieldName = `${this.field.relationModelFieldName}Command`;
228
+ const commandFieldType = typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword);
229
+ const source = this.relationInverseSource;
230
+ const field = this.field;
231
+ const decoratorManagers = [
232
+ new StringDecoratorManager_1.StringDecoratorManager({ isString: true, source: source, field: field }),
233
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
234
+ // TODO pending @IsEnum(RelationFieldsCommand)
235
+ ];
236
+ const commandField = (_a = this.getFieldIdentifierNode(commandFieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
237
+ if (commandField == null) {
238
+ return this.addAdditionalInverseCommandsField();
239
+ }
240
+ else {
241
+ //Update the command field
242
+ return this.updateFieldInternal(commandFieldName, commandFieldType, decoratorManagers, field, source);
243
+ }
244
+ }
245
+ updateAdditionalIdsField() {
246
+ var _a;
247
+ const idsFieldName = `${this.field.name}Ids`;
248
+ const source = this.source;
249
+ const field = this.field;
250
+ // Handle the main source additional fields
251
+ // Add or update the ids field
252
+ const idsField = (_a = this.getFieldIdentifierNode(idsFieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
253
+ if (idsField == null) {
254
+ return this.addAdditionalIdsField();
255
+ }
256
+ else {
257
+ //Update the ids field
258
+ const fieldType = typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
259
+ const decoratorManagers = [
260
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
261
+ new ArrayDecoratorManager_1.ArrayDecoratorManager({ isArray: true, source: source, field: field })
262
+ ];
263
+ return this.updateFieldInternal(idsFieldName, fieldType, decoratorManagers, field, source);
264
+ }
265
+ }
266
+ updateAdditionalCommandField() {
267
+ var _a;
268
+ const commandFieldName = `${this.field.name}Command`;
269
+ const source = this.source;
270
+ const field = this.field;
271
+ // Handle the main source additional fields
272
+ // Add or update the command field
273
+ const commandField = (_a = this.getFieldIdentifierNode(commandFieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
274
+ if (commandField == null) {
275
+ return this.addAdditionalCommandField();
276
+ }
277
+ else {
278
+ //Update the command field
279
+ const fieldType = typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword);
280
+ const decoratorManagers = [
281
+ new StringDecoratorManager_1.StringDecoratorManager({ isString: true, source: source, field: field }),
282
+ new OptionalDecoratorManager_1.OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
283
+ // TODO pending @IsEnum(RelationFieldsCommand)
284
+ ];
285
+ return this.updateFieldInternal(commandFieldName, fieldType, decoratorManagers, field, source);
286
+ }
287
+ }
288
+ removeAdditionalField() {
289
+ const fieldChanges = [];
290
+ // Add the ids field to the main entity
291
+ fieldChanges.push(this.removeAdditionalIdsField());
292
+ // Add the command field to the main entity
293
+ fieldChanges.push(this.removeAdditionalCommandField());
294
+ // Add the inverse field to the related entity
295
+ if (this.field.relationCreateInverse) {
296
+ fieldChanges.push(this.removeAdditionalInverseField());
297
+ fieldChanges.push(this.removeAdditionalInverseIdsField());
298
+ fieldChanges.push(this.removeAdditionalInverseCommandsField());
299
+ }
300
+ return fieldChanges;
301
+ }
302
+ removeAdditionalIdsField() {
303
+ const fieldName = `${this.field.name}Ids`;
304
+ const source = this.source;
305
+ return this.removeFieldFor(fieldName, source);
306
+ }
307
+ removeAdditionalCommandField() {
308
+ const fieldName = `${this.field.name}Command`;
309
+ const source = this.source;
310
+ return this.removeFieldFor(fieldName, source);
311
+ }
312
+ removeAdditionalInverseField() {
313
+ const fieldName = this.additionalFieldName();
314
+ const source = this.relationInverseSource;
315
+ return this.removeFieldFor(fieldName, source);
316
+ }
317
+ removeAdditionalInverseIdsField() {
318
+ const fieldName = `${this.field.relationModelFieldName}Ids`;
319
+ const source = this.relationInverseSource;
320
+ return this.removeFieldFor(fieldName, source);
321
+ }
322
+ removeAdditionalInverseCommandsField() {
323
+ const fieldName = `${this.field.relationModelFieldName}Command`;
324
+ const source = this.relationInverseSource;
325
+ return this.removeFieldFor(fieldName, source);
326
+ }
327
+ //TODO: Need to revise the algorithm to generate multiple fields as part of single solid field type
328
+ fieldName() {
329
+ return `${this.field.name}`;
330
+ }
331
+ additionalFieldName() {
332
+ return this.field.relationModelFieldName;
333
+ }
334
+ isAdditionalFieldRequired() {
335
+ return true;
336
+ // return this.field.relationCreateInverse;
337
+ }
338
+ addField() {
339
+ const fieldChanges = super.addField();
340
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
341
+ const mainField = fieldChanges[0];
342
+ mainField.changes.push(this.relatedFieldImport());
343
+ }
344
+ return fieldChanges;
345
+ }
346
+ updateField() {
347
+ const fieldChanges = super.updateField();
348
+ //FIXME This might not be required, since addField might never be called from within updateField
349
+ // const containsAddFieldChanges = fieldChanges.filter((change) => !(change instanceof InsertChange));
350
+ // if (containsAddFieldChanges) return fieldChanges;
351
+ //This line is required to add import changes in the update context
352
+ // if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
353
+ const mainField = fieldChanges[0];
354
+ mainField.changes.push(this.relatedFieldImport());
355
+ // }
356
+ return fieldChanges;
357
+ }
358
+ relatedFieldImport() {
359
+ const relatedEntityImportName = `update-${(0, strings_1.dasherize)(this.field.relationModelSingularName)}.dto`;
360
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${this.field.relationModelModuleName}/dtos/${relatedEntityImportName}` : `./${relatedEntityImportName}`;
361
+ return (0, FieldManager_1.safeInsertImport)(this.source, `Update${(0, strings_1.classify)(this.field.relationModelSingularName)}Dto`, relatedEntityPath);
362
+ // return insertImport(this.source, this.source.fileName, `Update${classify(this.field.relationModelSingularName)}Dto`, relatedEntityPath);
363
+ } //Uncomment this method while implementing many-to-many relation changes
364
+ }
365
+ exports.ManyToManyRelationFieldManagerForDto = ManyToManyRelationFieldManagerForDto;
366
+ //# sourceMappingURL=ManyToManyRelationFieldManagerForDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToManyRelationFieldManagerForDto.js","sourceRoot":"","sources":["ManyToManyRelationFieldManagerForDto.ts"],"names":[],"mappings":"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"}