@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
@@ -1,12 +1,8 @@
1
- import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
2
1
  import { Tree } from '@angular-devkit/schematics';
3
2
  import ts, { PropertyDeclaration } from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
4
- import { Change } from '@schematics/angular/utility/change';
5
- import { ArrayDecoratorManager } from '../../decorator-managers/dto/ArrayDecoratorManager';
6
3
  import { OptionalDecoratorManager } from '../../decorator-managers/dto/OptionalDecoratorManager';
7
4
  import { StringDecoratorManager } from '../../decorator-managers/dto/StringDecoratorManager';
8
- import { TransformDecoratorManager } from '../../decorator-managers/dto/TransformDecoratorManager';
9
- import { DecoratorManager, DecoratorType, DtoSourceType, FieldChange, FieldManager, FieldType, ManagerForDtoOptions, createSourceFile, safeInsertImport } from '../../FieldManager';
5
+ import { FieldChange, FieldManager, FieldType, ManagerForDtoOptions } from '../../FieldManager';
10
6
  import { BaseFieldManagerForDto } from '../base/BaseFieldManagerForDto';
11
7
 
12
8
  export class ManyToOneRelationFieldManagerForDto
@@ -18,31 +14,9 @@ export class ManyToOneRelationFieldManagerForDto
18
14
  isBoolean(): boolean {
19
15
  return false;
20
16
  }
21
- relationInverseSource: ts.SourceFile;
22
- relationInverseDecoratorManagers: DecoratorManager[];
23
17
 
24
18
  constructor(tree: Tree, moduleName: string, modelName: string, field: any, options: ManagerForDtoOptions) {
25
19
  super(tree, moduleName, modelName, {...field, required: false}, options);
26
- if (this.field.relationCreateInverse) {
27
- const relatedEntityFileName = (this.options.sourceType === DtoSourceType.Create) ? `create-${dasherize(this.field.relationModelSingularName)}.dto.ts` : `update-${dasherize(this.field.relationModelSingularName)}.dto.ts`;
28
- const relatedEntityPath = this.field.relationModelModuleName ? `src/${dasherize(this.field.relationModelModuleName)}/dtos/${relatedEntityFileName}` : `src/${dasherize(moduleName)}/dtos/${relatedEntityFileName}`;
29
- this.relationInverseSource = createSourceFile(tree, relatedEntityPath);
30
- this.relationInverseDecoratorManagers = this.getFieldDecoratorManagers(
31
- this.field,
32
- this.relationInverseSource,
33
- DecoratorType.Array,
34
- DecoratorType.ValidateNested,
35
- // DecoratorType.Transform,
36
- );
37
- //HACK: This is a hack to add the transform decorator to the inverse field
38
- this.relationInverseDecoratorManagers.push(
39
- new TransformDecoratorManager({ isTransform: true, type: this.transformType(), source: this.relationInverseSource, field: field })
40
- );
41
- //HACK: This is a hack to replace the optional decorator to the inverse field
42
- this.relationInverseDecoratorManagers.push(
43
- new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: this.relationInverseSource, field: field })
44
- );
45
- }
46
20
  }
47
21
 
48
22
  isString(): boolean {
@@ -87,36 +61,12 @@ export class ManyToOneRelationFieldManagerForDto
87
61
  };
88
62
  }
89
63
 
90
- // This field type is used in the case of one-to-many relation, when we generate the inverse field in the related entity
91
- additionalFieldType(): FieldType {
92
- const type = this.transformType() //TODO Discuss if this needs to be Create Or Update DTO
93
- const text = `${type}[]`
94
- return {
95
- text: text,
96
- node: (_field: any) =>
97
- ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(
98
- ts.factory.createIdentifier(type),
99
- undefined
100
- )),
101
- };
102
- }
103
-
104
- private transformType(): string {
105
- return `Update${classify(this.modelName)}Dto`;
106
- }
107
-
108
64
  override addAdditionalField(): FieldChange[] {
109
65
  const fieldChanges: FieldChange[] = [];
110
66
 
111
67
  // Add the userKey field to the main entity
112
68
  fieldChanges.push(this.addAdditionalUserKeyField());
113
69
 
114
- if (this.field.relationCreateInverse) {
115
- fieldChanges.push(this.addAdditionalInverseField());
116
- fieldChanges.push(this.addAdditionalInverseIdsField());
117
- fieldChanges.push(this.addAdditionalInverseCommandsField());
118
- }
119
-
120
70
  return fieldChanges;
121
71
  }
122
72
 
@@ -136,71 +86,12 @@ export class ManyToOneRelationFieldManagerForDto
136
86
  return fieldChange;
137
87
  }
138
88
 
139
- private addAdditionalInverseCommandsField(): FieldChange {
140
- const fieldName = `${this.field.relationModelFieldName ?? this.modelName}Command`;
141
- const fieldType = "string";
142
- const source = this.relationInverseSource;
143
- const field = this.field;
144
- const modelName = this.field.relationModelSingularName;
145
- const decoratorManagers = [
146
- new StringDecoratorManager({ isString: true, source: source, field: field }),
147
- new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
148
- // TODO pending @IsEnum(RelationFieldsCommand)
149
- ];
150
-
151
- //console.log(`\ncreate Dto addAdditionalInverseCommandsField ${fieldName} called ...`);
152
-
153
- const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
154
-
155
- return fieldChange;
156
- }
157
-
158
- private addAdditionalInverseIdsField(): FieldChange {
159
- const fieldName = `${this.field.relationModelFieldName ?? this.modelName}Ids`;
160
- const fieldType = "number[]";
161
- const source = this.relationInverseSource;
162
- const field = this.field;
163
- const modelName = this.field.relationModelSingularName;
164
- const decoratorManagers = [
165
- new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
166
- new ArrayDecoratorManager({ isArray: true, source: source, field: field })
167
- ]
168
-
169
- //console.log(`\ncreate Dto addAdditionalInverseIdsField ${fieldName} called ...`);
170
-
171
- const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
172
-
173
- return fieldChange;
174
- }
175
-
176
- private addAdditionalInverseField() {
177
- const fieldName = this.additionalFieldName();
178
- const fieldType = this.additionalFieldType().text;
179
- const source = this.relationInverseSource;
180
- const field = this.field;
181
- const modelName = this.field.relationModelSingularName;
182
- const decoratorManagers = this.relationInverseDecoratorManagers;
183
- //console.log(`\ncreate Dto addAdditionalInverseField ${fieldName} called ...`);
184
- const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
185
-
186
- if (this.modelName !== this.field.relationModelSingularName) {
187
- const currentModelName = this.modelName;
188
- const currentModuleName = this.moduleName;
189
- fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
190
- }
191
- return fieldChange;
192
- }
193
89
 
194
90
  override addOrUpdateAdditionalField(): FieldChange[] {
195
91
  const fieldChanges: FieldChange[] = [];
196
92
 
197
93
  // Add the userKey field to the main entity
198
94
  fieldChanges.push(this.updateAdditionalUserKeyField());
199
- if (this.field.relationCreateInverse) {
200
- fieldChanges.push(this.updateAdditionalInverseField());
201
- fieldChanges.push(this.updateAdditionalInverseIdsField());
202
- fieldChanges.push(this.updateAdditionalInverseCommandsField());
203
- }
204
95
  return fieldChanges;
205
96
  }
206
97
 
@@ -230,126 +121,26 @@ export class ManyToOneRelationFieldManagerForDto
230
121
  }
231
122
  }
232
123
 
233
- private updateAdditionalInverseCommandsField(): FieldChange {
234
-
235
- const commandFieldName = `${this.field.relationModelFieldName ?? this.modelName}Command`
236
- const commandFieldType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
237
- const source = this.relationInverseSource
238
- const field = this.field
239
- const decoratorManagers = [
240
- new StringDecoratorManager({ isString: true, source: source, field: field }),
241
- new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
242
- // TODO pending @IsEnum(RelationFieldsCommand)
243
- ]
244
-
245
- const commandField = this.getFieldIdentifierNode(
246
- commandFieldName,
247
- source
248
- )?.parent as PropertyDeclaration;
249
- //console.log(`\ncreate Dto updateAdditionalInverseCommandsField ${commandFieldName} called ...`);
250
-
251
- if (commandField == null) {
252
- return this.addAdditionalInverseCommandsField();
253
- }
254
- else {
255
- //Update the command field
256
- return this.updateFieldInternal(commandFieldName, commandFieldType, decoratorManagers, field, source)
257
- }
258
- }
259
-
260
- private updateAdditionalInverseIdsField(): FieldChange {
261
- const idsFieldName = `${this.field.relationModelFieldName ?? this.modelName}Ids`
262
- const idsFieldType = ts.factory.createArrayTypeNode(ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword));
263
- const source = this.relationInverseSource
264
- const field = this.field
265
- const decoratorManagers = [
266
- new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
267
- new ArrayDecoratorManager({ isArray: true, source: source, field: field })
268
- ]
269
-
270
- const idsField = this.getFieldIdentifierNode(
271
- idsFieldName,
272
- source
273
- )?.parent as PropertyDeclaration;
274
- //console.log(`\ncreate Dto updateAdditionalInverseIdsField ${idsFieldName} called ...`);
275
-
276
- if (idsField == null) {
277
- return this.addAdditionalInverseIdsField();
278
- }
279
- else {
280
- //Update the ids field
281
- return this.updateFieldInternal(idsFieldName, idsFieldType, decoratorManagers, field, source)
282
- }
283
-
284
- }
285
-
286
- private updateAdditionalInverseField() : FieldChange{
287
- const fieldName = this.additionalFieldName();
288
- const fieldType = this.additionalFieldType().node(this.field);
289
- const source = this.relationInverseSource;
290
- const field = this.field;
291
- const decoratorManagers = this.relationInverseDecoratorManagers;
292
-
293
- const inverseField = this.getFieldIdentifierNode(fieldName, source)?.parent as PropertyDeclaration;
294
- if (inverseField == null) {
295
- return this.addAdditionalInverseField();
296
- }
297
- else {
298
- const fieldChange = this.updateFieldInternal(fieldName, fieldType, decoratorManagers, field, source);
299
- if (this.modelName !== this.field.relationModelSingularName) {
300
- const currentModelName = this.modelName;
301
- const currentModuleName = this.moduleName;
302
- fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
303
- }
304
- return fieldChange;
305
- }
306
- }
307
-
308
- private inverseFieldImport(modelName: string, currentModuleName: string, source: ts.SourceFile): Change {
309
- const inverseEntityImportName = `update-${dasherize(modelName)}.dto`;
310
- const modulePath = `src/${currentModuleName}`;
311
-
312
- const inverseEntityPath = `${modulePath}/dtos/${inverseEntityImportName}`;
313
-
314
- return safeInsertImport(source, `Update${classify(modelName)}Dto`, inverseEntityPath, currentModuleName);
315
- }
316
124
 
317
125
  override removeAdditionalField(): FieldChange[] {
318
126
  const fieldChanges: FieldChange[] = [];
127
+
128
+ fieldChanges.push(this.removeAdditionalUserKeyField());
319
129
 
320
- if (this.field.relationCreateInverse) {
321
- fieldChanges.push(this.removeAdditionalInverseField());
322
- fieldChanges.push(this.removeAdditionalInverseIdsField());
323
- fieldChanges.push(this.removeAdditionalInverseCommandsField());
324
- }
325
130
  return fieldChanges;
326
131
  }
327
132
 
328
- removeAdditionalInverseField(): FieldChange {
329
- const fieldName = this.additionalFieldName();
330
- const source = this.relationInverseSource;
331
- return this.removeFieldFor(fieldName, source);
332
- }
333
-
334
- removeAdditionalInverseIdsField(): FieldChange {
335
- const fieldName = `${this.field.relationModelFieldName ?? this.modelName}Ids`;
336
- const source = this.relationInverseSource;
133
+ private removeAdditionalUserKeyField(): FieldChange {
134
+ const fieldName = `${this.field.name}UserKey`;
135
+ const source = this.source;
337
136
  return this.removeFieldFor(fieldName, source);
338
137
  }
339
138
 
340
- removeAdditionalInverseCommandsField(): FieldChange {
341
- const fieldName = `${this.field.relationModelFieldName ?? this.modelName}Command`;
342
- const source = this.relationInverseSource;
343
- return this.removeFieldFor(fieldName, source);
344
- }
345
139
 
346
140
  override fieldName(): string {
347
141
  return `${this.field.name}Id`;
348
142
  }
349
143
 
350
- additionalFieldName(): string {
351
- return this.field.relationModelFieldName ?? `${this.modelName}s`;
352
- }
353
144
 
354
145
  protected isAdditionalFieldRequired(): boolean {
355
146
  return true;
@@ -0,0 +1,31 @@
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 { OneToManyDecoratorManager } from '../../decorator-managers/entity/OneToManyDecoratorManager';
5
+ import { DecoratorManager, FieldChange, FieldManager, FieldType } from '../../FieldManager';
6
+ import { BaseFieldManagerForEntity } from '../base/BaseFieldManagerForEntity';
7
+ export declare class ManyToOneRelationFieldManagerForEntity extends BaseFieldManagerForEntity implements FieldManager {
8
+ source: ts.SourceFile;
9
+ relationInverseSource: ts.SourceFile;
10
+ oneToManyDecoratorManager: OneToManyDecoratorManager;
11
+ inverseManyToManyDecoratorManager: DecoratorManager;
12
+ constructor(tree: Tree, moduleName: string, modelName: string, field: any);
13
+ fieldName(): string;
14
+ fieldType(): FieldType;
15
+ private manyToOneFieldType;
16
+ private manyToManyFieldType;
17
+ addField(): FieldChange[];
18
+ updateField(): FieldChange[];
19
+ relatedFieldImport(): Change;
20
+ private isOneToMany;
21
+ removeAdditionalField(): FieldChange;
22
+ isAdditionalFieldRequired(): boolean;
23
+ addAdditionalField(): FieldChange[];
24
+ private addAdditionalInverseField;
25
+ private inverseFieldImport;
26
+ addOrUpdateAdditionalField(): FieldChange[];
27
+ private updateAdditionalInverseField;
28
+ additionalFieldName(): string;
29
+ additionalFieldType(): FieldType;
30
+ private additionalDecoratorManagers;
31
+ }
@@ -0,0 +1,177 @@
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.ManyToOneRelationFieldManagerForEntity = 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 ast_utils_1 = require("@schematics/angular/utility/ast-utils");
10
+ const OneToManyDecoratorManager_1 = require("../../decorator-managers/entity/OneToManyDecoratorManager");
11
+ const FieldManager_1 = require("../../FieldManager");
12
+ const BaseFieldManagerForEntity_1 = require("../base/BaseFieldManagerForEntity");
13
+ class ManyToOneRelationFieldManagerForEntity extends BaseFieldManagerForEntity_1.BaseFieldManagerForEntity {
14
+ constructor(tree, moduleName, modelName, field) {
15
+ super(tree, moduleName, modelName, field);
16
+ if (this.isAdditionalFieldRequired()) {
17
+ const relatedEntityFileName = `${(0, strings_1.dasherize)(this.field.relationModelSingularName)}.entity.ts`;
18
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${(0, strings_1.dasherize)(this.field.relationModelModuleName)}/entities/${relatedEntityFileName}` : `src/${(0, strings_1.dasherize)(moduleName)}/entities/${relatedEntityFileName}`;
19
+ this.relationInverseSource = (0, FieldManager_1.createSourceFile)(//TODO "src/iam/dtos/create-user.dto.ts" does not exist. If an entity is used in a many-to-one relation, the create-entity.dto.ts file should be exist.
20
+ tree, relatedEntityPath);
21
+ // this.relationInverseSource = createSourceFile(tree, `src/${dasherize(this.field.relationModelSingularName)}/entities/${dasherize(this.field.relationModelSingularName)}.entity.ts`)
22
+ this.oneToManyDecoratorManager = new OneToManyDecoratorManager_1.OneToManyDecoratorManager({
23
+ isOneToMany: this.isOneToMany(),
24
+ relationCascade: this.field.relationCascade,
25
+ source: this.relationInverseSource,
26
+ field: this.field,
27
+ fieldName: this.fieldName(),
28
+ modelName: this.modelName,
29
+ });
30
+ }
31
+ }
32
+ fieldName() {
33
+ switch (this.field.relationType) {
34
+ case FieldManager_1.RelationType.ManyToOne:
35
+ return super.fieldName();
36
+ case FieldManager_1.RelationType.ManyToMany:
37
+ return `${this.field.name}s`;
38
+ default:
39
+ throw new Error(`Unsupported relation type: ${this.field.relationType}`);
40
+ }
41
+ }
42
+ fieldType() {
43
+ switch (this.field.relationType) {
44
+ case FieldManager_1.RelationType.ManyToOne:
45
+ return this.manyToOneFieldType();
46
+ case FieldManager_1.RelationType.ManyToMany:
47
+ return this.manyToManyFieldType();
48
+ default:
49
+ throw new Error(`Unsupported relation type: ${this.field.relationType}`);
50
+ }
51
+ }
52
+ manyToOneFieldType() {
53
+ return {
54
+ text: (0, strings_1.classify)(this.field.relationModelSingularName),
55
+ node: (field) => typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier((0, strings_1.classify)(field.relationModelSingularName)), undefined),
56
+ };
57
+ }
58
+ manyToManyFieldType() {
59
+ const type = `${(0, strings_1.classify)(this.field.relationModelSingularName)}`;
60
+ const text = `${type}[]`;
61
+ return {
62
+ text: text,
63
+ node: (_field) => typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier(type), undefined)),
64
+ };
65
+ }
66
+ addField() {
67
+ const fieldChanges = super.addField();
68
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
69
+ const mainField = fieldChanges[0]; // The 1st field change is the main field change, related to the entity source file
70
+ mainField.changes.push(this.relatedFieldImport());
71
+ }
72
+ return fieldChanges;
73
+ }
74
+ updateField() {
75
+ const fieldChanges = super.updateField();
76
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
77
+ const mainField = fieldChanges[0]; // The 1st field change is the main field change, related to the entity source file
78
+ mainField.changes.push(this.relatedFieldImport());
79
+ }
80
+ return fieldChanges;
81
+ }
82
+ relatedFieldImport() {
83
+ const relatedEntityImportName = `${(0, strings_1.dasherize)(this.field.relationModelSingularName)}.entity`;
84
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${(0, strings_1.dasherize)(this.field.relationModelModuleName)}/entities/${relatedEntityImportName}` : `./${relatedEntityImportName}`;
85
+ return (0, ast_utils_1.insertImport)(this.source, this.source.fileName, (0, strings_1.classify)(this.field.relationModelSingularName), relatedEntityPath);
86
+ }
87
+ isOneToMany() {
88
+ return (this.field.type === 'relation' && this.field.relationType === FieldManager_1.RelationType.ManyToOne && this.field.relationCreateInverse);
89
+ }
90
+ removeAdditionalField() {
91
+ const changes = [];
92
+ if (this.isFieldPresent(this.additionalFieldName(), this.relationInverseSource)) {
93
+ console.log(`\nEntity removeField ${this.additionalFieldName()} called ...`);
94
+ changes.push(...this.removeFieldFor(this.additionalFieldName(), this.relationInverseSource).changes);
95
+ }
96
+ return {
97
+ filePath: this.relationInverseSource.fileName,
98
+ field: this.field,
99
+ changes: changes,
100
+ };
101
+ }
102
+ isAdditionalFieldRequired() {
103
+ return (this.field.type === 'relation' && this.field.relationCreateInverse);
104
+ }
105
+ addAdditionalField() {
106
+ const fieldChanges = [];
107
+ if (this.field.relationCreateInverse) {
108
+ fieldChanges.push(this.addAdditionalInverseField());
109
+ }
110
+ return fieldChanges;
111
+ }
112
+ addAdditionalInverseField() {
113
+ const fieldName = this.additionalFieldName();
114
+ const fieldType = this.additionalFieldType().text;
115
+ const source = this.relationInverseSource;
116
+ const field = this.field;
117
+ const modelName = this.field.relationModelSingularName;
118
+ const decoratorManagers = this.additionalDecoratorManagers();
119
+ const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
120
+ if (this.modelName !== this.field.relationModelSingularName) {
121
+ const currentModelName = this.modelName;
122
+ const currentModuleName = this.moduleName;
123
+ fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
124
+ }
125
+ return fieldChange;
126
+ }
127
+ inverseFieldImport(modelName, moduleName, source) {
128
+ const inverseEntityImportName = `${(0, strings_1.dasherize)(modelName)}.entity`;
129
+ const inverseEntityPath = `src/${moduleName}/entities/${inverseEntityImportName}`;
130
+ return (0, FieldManager_1.safeInsertImport)(source, (0, strings_1.classify)(modelName), inverseEntityPath);
131
+ }
132
+ addOrUpdateAdditionalField() {
133
+ const fieldChanges = [];
134
+ if (this.field.relationCreateInverse) {
135
+ fieldChanges.push(this.updateAdditionalInverseField());
136
+ }
137
+ return fieldChanges;
138
+ }
139
+ updateAdditionalInverseField() {
140
+ var _a;
141
+ const fieldName = this.additionalFieldName();
142
+ const fieldType = this.additionalFieldType().node(this.field);
143
+ const source = this.relationInverseSource;
144
+ const field = this.field;
145
+ const decoratorManagers = this.additionalDecoratorManagers();
146
+ const inverseField = (_a = this.getFieldIdentifierNode(fieldName, source)) === null || _a === void 0 ? void 0 : _a.parent;
147
+ if (inverseField == null) {
148
+ return this.addAdditionalInverseField();
149
+ }
150
+ else {
151
+ const fieldChange = this.updateFieldInternal(fieldName, fieldType, decoratorManagers, field, source);
152
+ if (this.modelName !== this.field.relationModelSingularName) {
153
+ const currentModelName = this.modelName;
154
+ const currentModuleName = this.moduleName;
155
+ fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
156
+ }
157
+ return fieldChange;
158
+ }
159
+ }
160
+ additionalFieldName() {
161
+ var _a;
162
+ return (_a = this.field.relationModelFieldName) !== null && _a !== void 0 ? _a : `${this.modelName}s`;
163
+ }
164
+ additionalFieldType() {
165
+ const type = `${(0, strings_1.classify)(this.modelName)}`;
166
+ const text = `${type}[]`;
167
+ return {
168
+ text: text,
169
+ node: (_field) => typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier(type), undefined)),
170
+ };
171
+ }
172
+ additionalDecoratorManagers() {
173
+ return [this.oneToManyDecoratorManager];
174
+ }
175
+ }
176
+ exports.ManyToOneRelationFieldManagerForEntity = ManyToOneRelationFieldManagerForEntity;
177
+ //# sourceMappingURL=ManyToOneRelationFieldManagerForEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManyToOneRelationFieldManagerForEntity.js","sourceRoot":"","sources":["ManyToOneRelationFieldManagerForEntity.ts"],"names":[],"mappings":"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"}