@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,9 +1,7 @@
1
1
  import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
2
- import { Tree } from '@angular-devkit/schematics';
3
- import ts, { PropertyDeclaration } from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
2
+ import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
4
3
  import { Change } from '@schematics/angular/utility/change';
5
- import { OneToManyDecoratorManager } from '../../decorator-managers/entity/OneToManyDecoratorManager';
6
- import { DecoratorManager, FieldChange, FieldManager, FieldType, RelationType, createSourceFile, safeInsertImport } from '../../FieldManager';
4
+ import { FieldChange, FieldManager, FieldType, safeInsertImport } from '../../FieldManager';
7
5
  import {
8
6
  BaseFieldManagerForEntity,
9
7
  } from '../base/BaseFieldManagerForEntity';
@@ -11,59 +9,11 @@ import {
11
9
  export class ManyToOneRelationFieldManagerForEntity
12
10
  extends BaseFieldManagerForEntity
13
11
  implements FieldManager {
14
- source: ts.SourceFile;
15
- relationInverseSource: ts.SourceFile;
16
-
17
- oneToManyDecoratorManager: OneToManyDecoratorManager;
18
- inverseManyToManyDecoratorManager: DecoratorManager;
19
-
20
-
21
- constructor(tree: Tree, moduleName: string, modelName: string, field: any) {
22
- super(tree, moduleName, modelName, field);
23
- if (this.isAdditionalFieldRequired()) {
24
- const relatedEntityFileName = `${dasherize(this.field.relationModelSingularName)}.entity.ts`;
25
- const relatedEntityPath = this.field.relationModelModuleName ? `src/${dasherize(this.field.relationModelModuleName)}/entities/${relatedEntityFileName}` : `src/${dasherize(moduleName)}/entities/${relatedEntityFileName}`;
26
- this.relationInverseSource = 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.
27
- tree,
28
- relatedEntityPath,
29
- );
30
-
31
- this.oneToManyDecoratorManager = new OneToManyDecoratorManager(
32
- {
33
- isOneToMany: this.isOneToMany(),
34
- relationCascade: this.field.relationCascade,
35
- source: this.relationInverseSource,
36
- field: this.field,
37
- fieldName: this.fieldName(),
38
- modelName: this.modelName,
39
- },
40
- );
41
- }
42
- }
43
-
44
- fieldName(): string {
45
- switch(this.field.relationType) {
46
- case RelationType.ManyToOne:
47
- return super.fieldName();
48
- case RelationType.ManyToMany:
49
- return `${this.field.name}s`;
50
- default:
51
- throw new Error(`Unsupported relation type: ${this.field.relationType}`);
52
- }
53
- }
54
12
 
55
13
  fieldType(): FieldType {
56
- switch(this.field.relationType) {
57
- case RelationType.ManyToOne:
58
- return this.manyToOneFieldType();
59
- case RelationType.ManyToMany:
60
- return this.manyToManyFieldType();
61
- default:
62
- throw new Error(`Unsupported relation type: ${this.field.relationType}`);
63
- }
14
+ return this.manyToOneFieldType();
64
15
  }
65
16
 
66
-
67
17
  private manyToOneFieldType(): FieldType {
68
18
  return {
69
19
  text: classify(this.field.relationModelSingularName),
@@ -76,20 +26,6 @@ export class ManyToOneRelationFieldManagerForEntity
76
26
  };
77
27
  }
78
28
 
79
- private manyToManyFieldType(): FieldType {
80
- const type = `${classify(this.field.relationModelSingularName)}`
81
- const text = `${type}[]`
82
- return {
83
- text: text,
84
- node: (_field: any) => ts.factory.createArrayTypeNode(
85
- ts.factory.createTypeReferenceNode(
86
- ts.factory.createIdentifier(type),
87
- undefined
88
- )
89
- ),
90
- };
91
- }
92
-
93
29
  override addField(): FieldChange[] {
94
30
  const fieldChanges = super.addField();
95
31
  if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
@@ -114,112 +50,5 @@ export class ManyToOneRelationFieldManagerForEntity
114
50
  return safeInsertImport(this.source, classify(this.field.relationModelSingularName), relatedEntityPath, this.moduleName);
115
51
  }
116
52
 
117
- private isOneToMany(): boolean {
118
- return (this.field.type === 'relation' && this.field.relationType === RelationType.ManyToOne && this.field.relationCreateInverse);
119
- }
120
-
121
- override removeAdditionalField(): FieldChange {
122
- const changes: Change[] = [];
123
- if (this.isFieldPresent(this.additionalFieldName(), this.relationInverseSource)) {
124
- console.log(`\nEntity removeField ${this.additionalFieldName()} called ...`);
125
- changes.push(...this.removeFieldFor(this.additionalFieldName(), this.relationInverseSource).changes);
126
- }
127
- return {
128
- filePath: this.relationInverseSource.fileName,
129
- field: this.field,
130
- changes: changes,
131
- };
132
- }
133
-
134
- override isAdditionalFieldRequired(): boolean {
135
- return (this.field.type === 'relation' && this.field.relationCreateInverse);
136
- }
137
-
138
- override addAdditionalField(): FieldChange[] {
139
- const fieldChanges: FieldChange[] = [];
140
-
141
- if (this.field.relationCreateInverse) {
142
- fieldChanges.push(this.addAdditionalInverseField());
143
- }
144
-
145
- return fieldChanges;
146
- }
147
-
148
- private addAdditionalInverseField(): FieldChange {
149
- const fieldName = this.additionalFieldName();
150
- const fieldType = this.additionalFieldType().text;
151
- const source= this.relationInverseSource
152
- const field = this.field
153
- const modelName = this.field.relationModelSingularName
154
- const decoratorManagers = this.additionalDecoratorManagers();
155
-
156
- const fieldChange = this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
157
- if (this.modelName !== this.field.relationModelSingularName) {
158
- const currentModelName = this.modelName;
159
- const currentModuleName = this.moduleName;
160
- fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
161
- }
162
- return fieldChange;
163
- }
164
-
165
- private inverseFieldImport(modelName: string, currentModuleName: string, source: ts.SourceFile): Change {
166
- const inverseEntityImportName = `${dasherize(modelName)}.entity`;
167
- const modulePath = `src/${currentModuleName}`;
168
-
169
- const inverseEntityPath = `${modulePath}/entities/${inverseEntityImportName}`;
170
- return safeInsertImport(source, classify(modelName), inverseEntityPath, currentModuleName);
171
- }
172
-
173
- override addOrUpdateAdditionalField(): FieldChange[] {
174
- const fieldChanges: FieldChange[] = [];
175
-
176
- if (this.field.relationCreateInverse) {
177
- fieldChanges.push(this.updateAdditionalInverseField());
178
- }
179
- return fieldChanges;
180
- }
181
-
182
- private updateAdditionalInverseField() : FieldChange{
183
- const fieldName = this.additionalFieldName();
184
- const fieldType = this.additionalFieldType().node(this.field);
185
- const source = this.relationInverseSource;
186
- const field = this.field;
187
- const decoratorManagers = this.additionalDecoratorManagers();
188
-
189
- const inverseField = this.getFieldIdentifierNode(fieldName, source)?.parent as PropertyDeclaration;
190
- if (inverseField == null) {
191
- return this.addAdditionalInverseField();
192
- }
193
- else {
194
- const fieldChange = this.updateFieldInternal(fieldName, fieldType, decoratorManagers, field, source);
195
- if (this.modelName !== this.field.relationModelSingularName) {
196
- const currentModelName = this.modelName;
197
- const currentModuleName = this.moduleName;
198
- fieldChange.changes.push(this.inverseFieldImport(currentModelName, currentModuleName, source));
199
- }
200
- return fieldChange;
201
- }
202
- }
203
-
204
- additionalFieldName(): string { // The inverse field type will remain the same for both one-to-many and many-to-many relations
205
- return this.field.relationModelFieldName ?? `${this.modelName}s`;
206
- }
207
-
208
- additionalFieldType(): FieldType { // The inverse field type will remain the same for both one-to-many and many-to-many relations
209
- const type = `${classify(this.modelName)}`
210
- const text = `${type}[]`
211
- return {
212
- text: text,
213
- node: (_field: any) =>
214
- ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(
215
- ts.factory.createIdentifier(type),
216
- undefined
217
- )),
218
- };
219
- }
220
-
221
- private additionalDecoratorManagers(): DecoratorManager[] {
222
- return [this.oneToManyDecoratorManager];
223
- }
224
53
 
225
54
  }
@@ -0,0 +1,52 @@
1
+ import { DtoSourceType, FieldChange, FieldHandler, FieldManager, ManagerForDtoOptions } from '../../FieldManager';
2
+ import { OneToManyRelationFieldManagerForDto } from './OneToManyRelationFieldManagerForDto';
3
+ import { OneToManyRelationFieldManagerForEntity } from './OneToManyRelationFieldManagerForEntity';
4
+
5
+
6
+ export class OneToManyRelationFieldHandler 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 OneToManyRelationFieldManagerForEntity(
12
+ tree,
13
+ moduleName,
14
+ modelName,
15
+ field,
16
+ );
17
+ this.createDtoFieldManager = new OneToManyRelationFieldManagerForDto(
18
+ tree,
19
+ moduleName,
20
+ modelName,
21
+ field,
22
+ new ManagerForDtoOptions(DtoSourceType.Create),
23
+ );
24
+ this.updateDtoFieldManager = new OneToManyRelationFieldManagerForDto(
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,247 @@
1
+ import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
2
+ import { Tree } from '@angular-devkit/schematics';
3
+ 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
+ import { OptionalDecoratorManager } from '../../decorator-managers/dto/OptionalDecoratorManager';
7
+ import { StringDecoratorManager } from '../../decorator-managers/dto/StringDecoratorManager';
8
+ import { TransformDecoratorManager } from '../../decorator-managers/dto/TransformDecoratorManager';
9
+ import { DecoratorType, FieldChange, FieldManager, FieldType, ManagerForDtoOptions, safeInsertImport } from '../../FieldManager';
10
+ import { BaseFieldManagerForDto } from '../base/BaseFieldManagerForDto';
11
+
12
+ export class OneToManyRelationFieldManagerForDto
13
+ extends BaseFieldManagerForDto
14
+ implements FieldManager {
15
+ isJson(): boolean {
16
+ return false;
17
+ }
18
+ isBoolean(): boolean {
19
+ return false;
20
+ }
21
+
22
+ constructor(tree: Tree, moduleName: string, modelName: string, field: any, options: ManagerForDtoOptions) {
23
+ super(tree, moduleName, modelName, { ...field, required: false }, options);
24
+ this.decoratorManagers = [...this.decoratorManagers, ...this.getFieldDecoratorManagers(
25
+ this.field,
26
+ this.source,
27
+ DecoratorType.Array,
28
+ DecoratorType.ValidateNested,
29
+ )];
30
+ this.decoratorManagers.push(
31
+ new TransformDecoratorManager({ isTransform: true, type: this.transformType(), source: this.source, field: field })
32
+ );
33
+ }
34
+
35
+ isString(): boolean {
36
+ return false;
37
+ }
38
+ isNumber(): boolean {
39
+ return false;
40
+ }
41
+ isInt(): boolean {
42
+ return false;
43
+ }
44
+ isDecimal(): boolean {
45
+ return false;
46
+ }
47
+ isApplyRegex(): boolean {
48
+ return false;
49
+ }
50
+ isApplyRequired(): boolean {
51
+ return false;
52
+ }
53
+ isApplyMin(): boolean {
54
+ return false;
55
+ }
56
+ isApplyMax(): boolean {
57
+ return false;
58
+ }
59
+ isDate(): boolean {
60
+ return false;
61
+ }
62
+ isTransform(): boolean {
63
+ return false;
64
+ }
65
+
66
+ // This field type is used in the case of one-to-many relation, when we generate the inverse field in the related entity
67
+ fieldType(): FieldType {
68
+ const type = this.transformType() //TODO Discuss if this needs to be Create Or Update DTO
69
+ const text = `${type}[]`
70
+ return {
71
+ text: text,
72
+ node: (_field: any) =>
73
+ ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(
74
+ ts.factory.createIdentifier(type),
75
+ undefined
76
+ )),
77
+ };
78
+ }
79
+
80
+ private transformType(): string {
81
+ return `Update${classify(this.field.relationModelSingularName)}Dto`;
82
+ }
83
+
84
+ override addField(): FieldChange[] {
85
+ const fieldChanges: FieldChange[] = super.addField();
86
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
87
+ const mainField = fieldChanges[0];
88
+ mainField.changes.push(this.relatedFieldImport());
89
+ }
90
+ return fieldChanges;
91
+ }
92
+
93
+ override addAdditionalField(): FieldChange[] {
94
+ const fieldChanges: FieldChange[] = [];
95
+
96
+ // Add the ids field to the main entity
97
+ fieldChanges.push(this.addAdditionalIdsField());
98
+ // Add the command field to the main entity
99
+ fieldChanges.push(this.addAdditionalCommandField());
100
+
101
+ return fieldChanges;
102
+ }
103
+
104
+ private addAdditionalIdsField(): FieldChange {
105
+ const fieldName = `${this.field.name}Ids`;
106
+ const fieldType = "number[]";
107
+ const source = this.source
108
+ const field = this.field
109
+ const modelName = this.modelName
110
+ const decoratorManagers = [
111
+ new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
112
+ new ArrayDecoratorManager({ isArray: true, source: source, field: field })
113
+ ]
114
+
115
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
116
+ }
117
+
118
+ private addAdditionalCommandField(): FieldChange {
119
+ const fieldName = `${this.field.name}Command`;
120
+ const fieldType = "string";
121
+ const source = this.source
122
+ const field = this.field
123
+ const modelName = this.modelName
124
+ const decoratorManagers = [
125
+ new StringDecoratorManager({ isString: true, source: source, field: field }),
126
+ new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
127
+ // TODO pending @IsEnum(RelationFieldsCommand)
128
+ ]
129
+
130
+ return this.addFieldInternal(fieldName, fieldType, decoratorManagers, field, modelName, source);
131
+
132
+ }
133
+
134
+
135
+ override updateField(): FieldChange[] {
136
+ const fieldChanges: FieldChange[] = super.updateField();
137
+
138
+ //FIXME This might not be required, since addField might never be called from within updateField
139
+ // const containsAddFieldChanges = fieldChanges.filter((change) => !(change instanceof InsertChange));
140
+ // if (containsAddFieldChanges) return fieldChanges;
141
+
142
+ //This line is required to add import changes in the update context
143
+ // if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
144
+ const mainField = fieldChanges[0];
145
+ mainField.changes.push(this.relatedFieldImport());
146
+ // }
147
+ return fieldChanges
148
+ }
149
+
150
+ override addOrUpdateAdditionalField(): FieldChange[] {
151
+ const fieldChanges: FieldChange[] = [];
152
+
153
+ // Add or update the ids field
154
+ fieldChanges.push(this.updateAdditionalIdsField());
155
+ // Add or update the command field
156
+ fieldChanges.push(this.updateAdditionalCommandField());
157
+
158
+ return fieldChanges;
159
+ }
160
+
161
+ private updateAdditionalIdsField(): FieldChange {
162
+ const idsFieldName = `${this.field.name}Ids`
163
+ const source = this.source
164
+ const field = this.field
165
+
166
+ // Handle the main source additional fields
167
+ // Add or update the ids field
168
+ const idsField = this.getFieldIdentifierNode(
169
+ idsFieldName,
170
+ source
171
+ )?.parent as PropertyDeclaration;
172
+ if (idsField == null) {
173
+ return this.addAdditionalIdsField();
174
+ }
175
+ else {
176
+ //Update the ids field
177
+ const fieldType = ts.factory.createArrayTypeNode(ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword));
178
+ const decoratorManagers = [
179
+ new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
180
+ new ArrayDecoratorManager({ isArray: true, source: source, field: field })
181
+ ];
182
+ return this.updateFieldInternal(idsFieldName, fieldType, decoratorManagers, field, source);
183
+ }
184
+
185
+ }
186
+
187
+ updateAdditionalCommandField(): FieldChange {
188
+ const commandFieldName = `${this.field.name}Command`
189
+ const source = this.source
190
+ const field = this.field
191
+
192
+ // Handle the main source additional fields
193
+ // Add or update the command field
194
+ const commandField = this.getFieldIdentifierNode(
195
+ commandFieldName,
196
+ source
197
+ )?.parent as PropertyDeclaration;
198
+ if (commandField == null) {
199
+ return this.addAdditionalCommandField();
200
+ }
201
+ else {
202
+ //Update the command field
203
+ const fieldType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
204
+ const decoratorManagers = [
205
+ new StringDecoratorManager({ isString: true, source: source, field: field }),
206
+ new OptionalDecoratorManager({ isApplyOptional: true, optional: true, source: source, field: field }),
207
+ // TODO pending @IsEnum(RelationFieldsCommand)
208
+ ];
209
+ return this.updateFieldInternal(commandFieldName, fieldType, decoratorManagers, field, source);
210
+ }
211
+ }
212
+
213
+
214
+ override removeAdditionalField(): FieldChange[] {
215
+ const fieldChanges: FieldChange[] = [];
216
+
217
+ // Add the ids field to the main entity
218
+ fieldChanges.push(this.removeAdditionalIdsField());
219
+ // Add the command field to the main entity
220
+ fieldChanges.push(this.removeAdditionalCommandField());
221
+
222
+ return fieldChanges;
223
+ }
224
+
225
+ removeAdditionalIdsField(): FieldChange {
226
+ const fieldName = `${this.field.name}Ids`;
227
+ const source = this.source;
228
+ return this.removeFieldFor(fieldName, source);
229
+ }
230
+ removeAdditionalCommandField(): FieldChange {
231
+ const fieldName = `${this.field.name}Command`;
232
+ const source = this.source;
233
+ return this.removeFieldFor(fieldName, source);
234
+ }
235
+
236
+ protected isAdditionalFieldRequired(): boolean {
237
+ return true;
238
+ }
239
+
240
+ relatedFieldImport(): Change {
241
+ const relatedEntityImportName = `update-${dasherize(this.field.relationModelSingularName)}.dto`;
242
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${this.field.relationModelModuleName}/dtos/${relatedEntityImportName}` : `./${relatedEntityImportName}`;
243
+ return safeInsertImport(this.source, `Update${classify(this.field.relationModelSingularName)}Dto`, relatedEntityPath, this.moduleName);
244
+ // return insertImport(this.source, this.source.fileName, `Update${classify(this.field.relationModelSingularName)}Dto`, relatedEntityPath);
245
+ } //Uncomment this method while implementing many-to-many relation changes
246
+
247
+ }
@@ -0,0 +1,51 @@
1
+ import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
2
+ import ts from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
3
+ import { Change } from '@schematics/angular/utility/change';
4
+ import { FieldChange, FieldManager, FieldType, safeInsertImport } from '../../FieldManager';
5
+ import {
6
+ BaseFieldManagerForEntity,
7
+ } from '../base/BaseFieldManagerForEntity';
8
+
9
+ export class OneToManyRelationFieldManagerForEntity
10
+ extends BaseFieldManagerForEntity
11
+ implements FieldManager {
12
+
13
+ override addField(): FieldChange[] {
14
+ const fieldChanges = super.addField();
15
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
16
+ const mainField = fieldChanges[0]; // The 1st field change is the main field change, related to the entity source file
17
+ mainField.changes.push(this.relatedFieldImport());
18
+ }
19
+ return fieldChanges
20
+ }
21
+
22
+ override updateField(): FieldChange[] {
23
+ const fieldChanges = super.updateField();
24
+ if (fieldChanges.length > 0 && this.modelName !== this.field.relationModelSingularName) {
25
+ const mainField = fieldChanges[0]; // The 1st field change is the main field change, related to the entity source file
26
+ mainField.changes.push(this.relatedFieldImport());
27
+ }
28
+ return fieldChanges
29
+ }
30
+
31
+ relatedFieldImport(): Change {
32
+ const relatedEntityImportName = `${dasherize(this.field.relationModelSingularName)}.entity`;
33
+ const relatedEntityPath = this.field.relationModelModuleName ? `src/${dasherize(this.field.relationModelModuleName)}/entities/${relatedEntityImportName}` : `./${relatedEntityImportName}`;
34
+ return safeInsertImport(this.source, classify(this.field.relationModelSingularName), relatedEntityPath, this.moduleName);
35
+ }
36
+
37
+
38
+ fieldType(): FieldType { // The inverse field type will remain the same for both one-to-many and many-to-many relations
39
+ const type = `${classify(this.field.relationModelSingularName)}`
40
+ const text = `${type}[]`
41
+ return {
42
+ text: text,
43
+ node: (_field: any) =>
44
+ ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(
45
+ ts.factory.createIdentifier(type),
46
+ undefined
47
+ )),
48
+ };
49
+ }
50
+
51
+ }
@@ -0,0 +1,14 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import { FieldChange, FieldHandler, FieldManager } from '../../FieldManager';
3
+ export declare class RichTextFieldHandler implements FieldHandler {
4
+ entityFieldManager: FieldManager;
5
+ createDtoFieldManager: FieldManager;
6
+ updateDtoFieldManager: FieldManager;
7
+ constructor(tree: Tree, moduleName: string, modelName: string, field: string);
8
+ updateEntityField(): FieldChange[];
9
+ updateDtoField(): FieldChange[];
10
+ removeEntityField(): FieldChange[];
11
+ removeDtoField(): FieldChange[];
12
+ addEntityField(): FieldChange[];
13
+ addDtoField(): FieldChange[];
14
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RichTextFieldHandler = void 0;
4
+ const FieldManager_1 = require("../../FieldManager");
5
+ const RichTextFieldManagerForDto_1 = require("./RichTextFieldManagerForDto");
6
+ const RichTextFieldManagerForEntity_1 = require("./RichTextFieldManagerForEntity");
7
+ class RichTextFieldHandler {
8
+ constructor(tree, moduleName, modelName, field) {
9
+ this.entityFieldManager = new RichTextFieldManagerForEntity_1.RichTextFieldManagerForEntity(tree, moduleName, modelName, field);
10
+ this.createDtoFieldManager = new RichTextFieldManagerForDto_1.RichTextFieldManagerForDto(tree, moduleName, modelName, field, new FieldManager_1.ManagerForDtoOptions(FieldManager_1.DtoSourceType.Create));
11
+ this.updateDtoFieldManager = new RichTextFieldManagerForDto_1.RichTextFieldManagerForDto(tree, moduleName, modelName, field, new FieldManager_1.ManagerForDtoOptions(FieldManager_1.DtoSourceType.Update));
12
+ //Instantiate the entity and dto source files
13
+ }
14
+ updateEntityField() {
15
+ return this.entityFieldManager.updateField();
16
+ }
17
+ updateDtoField() {
18
+ return [...this.createDtoFieldManager.updateField(), ...this.updateDtoFieldManager.updateField()];
19
+ }
20
+ removeEntityField() {
21
+ return this.entityFieldManager.removeField();
22
+ }
23
+ removeDtoField() {
24
+ return [...this.createDtoFieldManager.removeField(), ...this.updateDtoFieldManager.removeField()];
25
+ }
26
+ addEntityField() {
27
+ return this.entityFieldManager.addField();
28
+ }
29
+ addDtoField() {
30
+ return [...this.createDtoFieldManager.addField(), ...this.updateDtoFieldManager.addField()];
31
+ }
32
+ }
33
+ exports.RichTextFieldHandler = RichTextFieldHandler;
34
+ //# sourceMappingURL=RichTextFieldHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextFieldHandler.js","sourceRoot":"","sources":["RichTextFieldHandler.ts"],"names":[],"mappings":";;;AACA,qDAAkH;AAClH,6EAA0E;AAC1E,mFAAgF;AAEhF,MAAa,oBAAoB;IAI/B,YACE,IAAU,EACV,UAAkB,EAClB,SAAiB,EACjB,KAAa;QAEb,IAAI,CAAC,kBAAkB,GAAG,IAAI,6DAA6B,CACzD,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,CACN,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,uDAA0B,CACzD,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,mCAAoB,CAAC,4BAAa,CAAC,MAAM,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,uDAA0B,CACzD,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,mCAAoB,CAAC,4BAAa,CAAC,MAAM,CAAC,CAC/C,CAAC;QACF,6CAA6C;IAC/C,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;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF;AAlDD,oDAkDC"}
@@ -0,0 +1,22 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import { FieldManager, FieldType, ManagerForDtoOptions } from '../../FieldManager';
3
+ import { BaseFieldManagerForDto } from '../base/BaseFieldManagerForDto';
4
+ export declare class RichTextFieldManagerForDto extends BaseFieldManagerForDto implements FieldManager {
5
+ isJson(): boolean;
6
+ isBoolean(): boolean;
7
+ source: any;
8
+ constructor(tree: Tree, moduleName: string, modelName: string, field: any, options: ManagerForDtoOptions);
9
+ isString(): boolean;
10
+ isNumber(): boolean;
11
+ isInt(): boolean;
12
+ isDecimal(): boolean;
13
+ protected isApplyMinLength(): boolean;
14
+ protected isApplyMaxLength(): boolean;
15
+ isApplyRegex(): boolean;
16
+ isApplyRequired(): boolean;
17
+ isApplyMin(): boolean;
18
+ isApplyMax(): boolean;
19
+ isDate(): boolean;
20
+ isTransform(): boolean;
21
+ fieldType(): FieldType;
22
+ }