@solidstarters/solid-code-builder 1.0.10 → 1.0.11

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 (256) hide show
  1. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +8 -9
  2. package/dist/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -1
  3. package/package.json +1 -1
  4. package/src/code-builder/index.d.ts +9 -0
  5. package/src/code-builder/index.js +178 -0
  6. package/src/code-builder/index.js.map +1 -0
  7. package/src/code-builder/index_spec.d.ts +1 -0
  8. package/src/code-builder/index_spec.js +46 -0
  9. package/src/code-builder/index_spec.js.map +1 -0
  10. package/src/code-builder/lib/field/FieldManager.d.ts +106 -0
  11. package/src/code-builder/lib/field/FieldManager.js +236 -0
  12. package/src/code-builder/lib/field/FieldManager.js.map +1 -0
  13. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.d.ts +26 -0
  14. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js +107 -0
  15. package/src/code-builder/lib/field/decorator-managers/dto/ArrayDecoratorManager.js.map +1 -0
  16. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.d.ts +24 -0
  17. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js +100 -0
  18. package/src/code-builder/lib/field/decorator-managers/dto/BigIntDecoratorManager.js.map +1 -0
  19. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.d.ts +24 -0
  20. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js +102 -0
  21. package/src/code-builder/lib/field/decorator-managers/dto/BooleanDecoratorManager.js.map +1 -0
  22. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.d.ts +24 -0
  23. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js +106 -0
  24. package/src/code-builder/lib/field/decorator-managers/dto/DateDecoratorManager.js.map +1 -0
  25. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.d.ts +24 -0
  26. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js +112 -0
  27. package/src/code-builder/lib/field/decorator-managers/dto/DecimalDecoratorManager.js.map +1 -0
  28. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.d.ts +24 -0
  29. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js +99 -0
  30. package/src/code-builder/lib/field/decorator-managers/dto/EmailDecoratorManager.js.map +1 -0
  31. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.d.ts +24 -0
  32. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js +100 -0
  33. package/src/code-builder/lib/field/decorator-managers/dto/IntDecoratorManager.js.map +1 -0
  34. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.d.ts +24 -0
  35. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js +100 -0
  36. package/src/code-builder/lib/field/decorator-managers/dto/JsonDecoratorManager.js.map +1 -0
  37. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.d.ts +25 -0
  38. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js +104 -0
  39. package/src/code-builder/lib/field/decorator-managers/dto/LengthDecoratorManager.js.map +1 -0
  40. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.d.ts +25 -0
  41. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js +103 -0
  42. package/src/code-builder/lib/field/decorator-managers/dto/MaxDecoratorManager.js.map +1 -0
  43. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.d.ts +25 -0
  44. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js +103 -0
  45. package/src/code-builder/lib/field/decorator-managers/dto/MaxLengthDecoratorManager.js.map +1 -0
  46. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.d.ts +25 -0
  47. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js +102 -0
  48. package/src/code-builder/lib/field/decorator-managers/dto/MinDecoratorManager.js.map +1 -0
  49. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.d.ts +25 -0
  50. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js +103 -0
  51. package/src/code-builder/lib/field/decorator-managers/dto/MinLengthDecoratorManager.js.map +1 -0
  52. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.d.ts +24 -0
  53. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js +112 -0
  54. package/src/code-builder/lib/field/decorator-managers/dto/NumberDecoratorManager.js.map +1 -0
  55. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.d.ts +26 -0
  56. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js +104 -0
  57. package/src/code-builder/lib/field/decorator-managers/dto/OptionalDecoratorManager.js.map +1 -0
  58. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.d.ts +25 -0
  59. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js +102 -0
  60. package/src/code-builder/lib/field/decorator-managers/dto/RegexDecoratorManager.js.map +1 -0
  61. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.d.ts +25 -0
  62. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js +100 -0
  63. package/src/code-builder/lib/field/decorator-managers/dto/RequiredDecoratorManager.js.map +1 -0
  64. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.d.ts +24 -0
  65. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js +99 -0
  66. package/src/code-builder/lib/field/decorator-managers/dto/StringDecoratorManager.js.map +1 -0
  67. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.d.ts +25 -0
  68. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js +102 -0
  69. package/src/code-builder/lib/field/decorator-managers/dto/TransformDecoratorManager.js.map +1 -0
  70. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.d.ts +30 -0
  71. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js +140 -0
  72. package/src/code-builder/lib/field/decorator-managers/dto/ValidateNestedDecoratorManager.js.map +1 -0
  73. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.d.ts +34 -0
  74. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js +178 -0
  75. package/src/code-builder/lib/field/decorator-managers/entity/ColumnDecoratorManager.js.map +1 -0
  76. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.d.ts +24 -0
  77. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js +79 -0
  78. package/src/code-builder/lib/field/decorator-managers/entity/IndexDecoratorManager.js.map +1 -0
  79. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.d.ts +29 -0
  80. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js +118 -0
  81. package/src/code-builder/lib/field/decorator-managers/entity/JoinTableDecoratorManager.js.map +1 -0
  82. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.d.ts +37 -0
  83. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js +175 -0
  84. package/src/code-builder/lib/field/decorator-managers/entity/ManyToManyDecoratorManager.js.map +1 -0
  85. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.d.ts +34 -0
  86. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js +179 -0
  87. package/src/code-builder/lib/field/decorator-managers/entity/ManyToOneDecoratorManager.js.map +1 -0
  88. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.d.ts +33 -0
  89. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js +155 -0
  90. package/src/code-builder/lib/field/decorator-managers/entity/OneToManyDecoratorManager.js.map +1 -0
  91. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.d.ts +31 -0
  92. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js +174 -0
  93. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.js.map +1 -0
  94. package/src/code-builder/lib/field/decorator-managers/entity/UniqueIndexDecoratorManager.ts +8 -9
  95. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.d.ts +51 -0
  96. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js +345 -0
  97. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForDto.js.map +1 -0
  98. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.d.ts +58 -0
  99. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js +373 -0
  100. package/src/code-builder/lib/field/field-managers/base/BaseFieldManagerForEntity.js.map +1 -0
  101. package/src/code-builder/lib/field/field-managers/base/DeleteType.d.ts +6 -0
  102. package/src/code-builder/lib/field/field-managers/base/DeleteType.js +11 -0
  103. package/src/code-builder/lib/field/field-managers/base/DeleteType.js.map +1 -0
  104. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.d.ts +13 -0
  105. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js +33 -0
  106. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldHandler.js.map +1 -0
  107. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.d.ts +23 -0
  108. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js +81 -0
  109. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForDto.js.map +1 -0
  110. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.d.ts +13 -0
  111. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js +55 -0
  112. package/src/code-builder/lib/field/field-managers/bigint/BigIntFieldManagerForEntity.js.map +1 -0
  113. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.d.ts +13 -0
  114. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js +33 -0
  115. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldHandler.js.map +1 -0
  116. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.d.ts +22 -0
  117. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js +75 -0
  118. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForDto.js.map +1 -0
  119. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.d.ts +13 -0
  120. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js +51 -0
  121. package/src/code-builder/lib/field/field-managers/boolean/BooleanFieldManagerForEntity.js.map +1 -0
  122. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.d.ts +14 -0
  123. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js +30 -0
  124. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldHandler.js.map +1 -0
  125. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.d.ts +11 -0
  126. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js +33 -0
  127. package/src/code-builder/lib/field/field-managers/computed/ComputedFieldManagerForEntity.js.map +1 -0
  128. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.d.ts +13 -0
  129. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js +33 -0
  130. package/src/code-builder/lib/field/field-managers/date/DateFieldHandler.js.map +1 -0
  131. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.d.ts +22 -0
  132. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js +81 -0
  133. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForDto.js.map +1 -0
  134. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.d.ts +13 -0
  135. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js +59 -0
  136. package/src/code-builder/lib/field/field-managers/date/DateFieldManagerForEntity.js.map +1 -0
  137. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.d.ts +13 -0
  138. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js +33 -0
  139. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldHandler.js.map +1 -0
  140. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.d.ts +22 -0
  141. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js +77 -0
  142. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForDto.js.map +1 -0
  143. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.d.ts +13 -0
  144. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js +53 -0
  145. package/src/code-builder/lib/field/field-managers/decimal/DecimalFieldManagerForEntity.js.map +1 -0
  146. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.d.ts +14 -0
  147. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js +34 -0
  148. package/src/code-builder/lib/field/field-managers/email/EmailFieldHandler.js.map +1 -0
  149. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.d.ts +22 -0
  150. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js +72 -0
  151. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForDto.js.map +1 -0
  152. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.d.ts +12 -0
  153. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js +44 -0
  154. package/src/code-builder/lib/field/field-managers/email/EmailFieldManagerForEntity.js.map +1 -0
  155. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.d.ts +13 -0
  156. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js +33 -0
  157. package/src/code-builder/lib/field/field-managers/int/IntFieldHandler.js.map +1 -0
  158. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.d.ts +22 -0
  159. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js +76 -0
  160. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForDto.js.map +1 -0
  161. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.d.ts +13 -0
  162. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js +52 -0
  163. package/src/code-builder/lib/field/field-managers/int/IntFieldManagerForEntity.js.map +1 -0
  164. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.d.ts +14 -0
  165. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js +34 -0
  166. package/src/code-builder/lib/field/field-managers/json/JsonFieldHandler.js.map +1 -0
  167. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.d.ts +20 -0
  168. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js +57 -0
  169. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForDto.js.map +1 -0
  170. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.d.ts +9 -0
  171. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js +21 -0
  172. package/src/code-builder/lib/field/field-managers/json/JsonFieldManagerForEntity.js.map +1 -0
  173. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.d.ts +14 -0
  174. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js +34 -0
  175. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldHandler.js.map +1 -0
  176. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.d.ts +22 -0
  177. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js +63 -0
  178. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForDto.js.map +1 -0
  179. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.d.ts +11 -0
  180. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js +34 -0
  181. package/src/code-builder/lib/field/field-managers/long-text/LongTextFieldManagerForEntity.js.map +1 -0
  182. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.d.ts +13 -0
  183. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js +33 -0
  184. package/src/code-builder/lib/field/field-managers/media/MediaFieldHandler.js.map +1 -0
  185. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.d.ts +23 -0
  186. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js +72 -0
  187. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForDto.js.map +1 -0
  188. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.d.ts +12 -0
  189. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js +57 -0
  190. package/src/code-builder/lib/field/field-managers/media/MediaFieldManagerForEntity.js.map +1 -0
  191. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.d.ts +13 -0
  192. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js +27 -0
  193. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldHandler.js.map +1 -0
  194. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.d.ts +24 -0
  195. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js +75 -0
  196. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForDto.js.map +1 -0
  197. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.d.ts +12 -0
  198. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js +35 -0
  199. package/src/code-builder/lib/field/field-managers/no-ops/NoOpsFieldManagerForEntity.js.map +1 -0
  200. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.d.ts +14 -0
  201. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js +34 -0
  202. package/src/code-builder/lib/field/field-managers/password/PasswordFieldHandler.js.map +1 -0
  203. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.d.ts +29 -0
  204. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js +121 -0
  205. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForDto.js.map +1 -0
  206. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.d.ts +11 -0
  207. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js +37 -0
  208. package/src/code-builder/lib/field/field-managers/password/PasswordFieldManagerForEntity.js.map +1 -0
  209. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.d.ts +13 -0
  210. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js +33 -0
  211. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldHandler.js.map +1 -0
  212. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.d.ts +51 -0
  213. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js +366 -0
  214. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForDto.js.map +1 -0
  215. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.d.ts +30 -0
  216. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js +158 -0
  217. package/src/code-builder/lib/field/field-managers/relation/ManyToManyRelationFieldManagerForEntity.js.map +1 -0
  218. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.d.ts +13 -0
  219. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js +33 -0
  220. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldHandler.js.map +1 -0
  221. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.d.ts +43 -0
  222. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js +294 -0
  223. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForDto.js.map +1 -0
  224. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.d.ts +31 -0
  225. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js +177 -0
  226. package/src/code-builder/lib/field/field-managers/relation/ManyToOneRelationFieldManagerForEntity.js.map +1 -0
  227. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.d.ts +14 -0
  228. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js +34 -0
  229. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldHandler.js.map +1 -0
  230. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.d.ts +22 -0
  231. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js +63 -0
  232. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForDto.js.map +1 -0
  233. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.d.ts +11 -0
  234. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js +34 -0
  235. package/src/code-builder/lib/field/field-managers/rich-text/RichTextFieldManagerForEntity.js.map +1 -0
  236. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.d.ts +14 -0
  237. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js +34 -0
  238. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldHandler.js.map +1 -0
  239. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.d.ts +22 -0
  240. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js +63 -0
  241. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForDto.js.map +1 -0
  242. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.d.ts +11 -0
  243. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js +37 -0
  244. package/src/code-builder/lib/field/field-managers/short-text/ShortTextFieldManagerForEntity.js.map +1 -0
  245. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.d.ts +14 -0
  246. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js +34 -0
  247. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldHandler.js.map +1 -0
  248. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.d.ts +8 -0
  249. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js +15 -0
  250. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForDto.js.map +1 -0
  251. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.d.ts +11 -0
  252. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js +33 -0
  253. package/src/code-builder/lib/field/field-managers/uuid/UUIDFieldManagerForEntity.js.map +1 -0
  254. package/src/code-builder/lib/model/helpers.d.ts +49 -0
  255. package/src/code-builder/lib/model/helpers.js +407 -0
  256. package/src/code-builder/lib/model/helpers.js.map +1 -0
@@ -0,0 +1,33 @@
1
+ import ts, { PropertyDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
2
+ import { Change } from "@schematics/angular/utility/change";
3
+ import { DecoratorManager, DeleteType, PartialAddFieldChange } from "../../FieldManager";
4
+ interface OneToManyDecoratorOptions {
5
+ isOneToMany: boolean;
6
+ relationCascade: DeleteType;
7
+ source: ts.SourceFile;
8
+ field: any;
9
+ fieldName: string;
10
+ modelName: string;
11
+ }
12
+ export declare class OneToManyDecoratorManager implements DecoratorManager {
13
+ options: OneToManyDecoratorOptions;
14
+ fieldNode?: ts.PropertyDeclaration | undefined;
15
+ constructor(options: OneToManyDecoratorOptions, fieldNode?: ts.PropertyDeclaration | undefined);
16
+ isApplyDecorator(): boolean;
17
+ decoratorName(): string;
18
+ buildDecorator(): PartialAddFieldChange;
19
+ setFieldNode(fieldNode: PropertyDeclaration): void;
20
+ decoratorImports(): Change[];
21
+ updateDecorator(): [PropertyDeclaration, Change[]];
22
+ private buildRelationOptionsCode;
23
+ private createRelationDecorator;
24
+ private createDecoratorArguments;
25
+ private existingDecoratorOptions;
26
+ private createRelationDecoratorOptions;
27
+ private optionsToPropertyAssignmentsOrNull;
28
+ private findDecorator;
29
+ private filterOtherDecorators;
30
+ private filterNonDecorators;
31
+ private containsIdentifierName;
32
+ }
33
+ export {};
@@ -0,0 +1,155 @@
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.OneToManyDecoratorManager = 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
+ class OneToManyDecoratorManager {
11
+ constructor(options, fieldNode) {
12
+ this.options = options;
13
+ this.fieldNode = fieldNode;
14
+ }
15
+ isApplyDecorator() {
16
+ return this.options.isOneToMany;
17
+ }
18
+ decoratorName() {
19
+ return 'OneToMany';
20
+ }
21
+ buildDecorator() {
22
+ const changes = [];
23
+ const fieldSourceLines = [];
24
+ // Add the one-to-many import
25
+ // const oneToManyImport = insertImport(
26
+ // this.options.source,
27
+ // this.options.source.fileName,
28
+ // this.decoratorName(),
29
+ // 'typeorm',
30
+ // );
31
+ // if (oneToManyImport) {
32
+ // changes.push(oneToManyImport);
33
+ // }
34
+ fieldSourceLines.push(`@${this.decoratorName()}(() => ${(0, strings_1.classify)(this.options.modelName)}, ${(0, strings_1.camelize)(this.options.modelName)} => ${(0, strings_1.camelize)(this.options.modelName)}.${this.options.fieldName}, ${this.buildRelationOptionsCode()})`);
35
+ changes.push(...this.decoratorImports());
36
+ return {
37
+ filePath: this.options.source.fileName,
38
+ field: this.options.field,
39
+ changes: changes,
40
+ fieldSourceLines: fieldSourceLines,
41
+ };
42
+ }
43
+ setFieldNode(fieldNode) {
44
+ this.fieldNode = fieldNode;
45
+ }
46
+ decoratorImports() {
47
+ return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'typeorm')];
48
+ }
49
+ updateDecorator() {
50
+ // Check if the field property declaration exists, if not throw an error
51
+ if (!this.fieldNode)
52
+ throw new Error('Field node is required for updating the one to many decorator');
53
+ let newModifiers = [];
54
+ let existingModifiers = this.fieldNode.modifiers;
55
+ // Check if field has an existing one-to-many relation decorator
56
+ const existingDecorator = this.findDecorator(this.decoratorName(), existingModifiers);
57
+ //Remove the many-to-one decorator if it exists
58
+ //TODO probably this too can be done in a lesser intrusive way i.e update everything instead of removing and adding
59
+ newModifiers = [...this.filterNonDecorators(existingModifiers), ...this.filterOtherDecorators(this.decoratorName(), existingModifiers)];
60
+ //Add the one-to-many decorator if it is required
61
+ const changes = [];
62
+ if (this.isApplyDecorator()) {
63
+ newModifiers = [...newModifiers, this.createRelationDecorator(existingDecorator)];
64
+ changes.push(...this.decoratorImports());
65
+ }
66
+ const updatedProperty = typescript_1.default.factory.updatePropertyDeclaration(this.fieldNode, newModifiers, //Replace with new modifiers
67
+ this.fieldNode.name, this.fieldNode.questionToken, this.fieldNode.type, this.fieldNode.initializer);
68
+ return [updatedProperty, changes];
69
+ }
70
+ buildRelationOptionsCode() {
71
+ return `{ cascade: true }`;
72
+ }
73
+ createRelationDecorator(existingRelationDecorator) {
74
+ // Capture the existing relation decorator options
75
+ let existingRelationDecoratorPropertyAssignments = this.existingDecoratorOptions(existingRelationDecorator);
76
+ // Create the new relation decorator options
77
+ const decoratorOptions = this.createRelationDecoratorOptions();
78
+ const newPropertyAssignments = Array.from(decoratorOptions.values()).filter(p => p !== null);
79
+ // console.log('newPropertyAssignments', newPropertyAssignments.map(p => JSON.stringify(p.name)).join(', '));
80
+ // Add the other unhandled column decorator options
81
+ const handledDecoratorOptions = Array.from(decoratorOptions.keys());
82
+ //@ts-ignore
83
+ const otherPropertyAssignments = existingRelationDecoratorPropertyAssignments.filter(ps => { var _a; return !handledDecoratorOptions.includes((_a = ps.name) === null || _a === void 0 ? void 0 : _a.escapedText); });
84
+ newPropertyAssignments.push(...otherPropertyAssignments);
85
+ // Re-create the relation decorator with the merged relation decorator options
86
+ const decoratorIdentifier = typescript_1.default.factory.createIdentifier(this.decoratorName());
87
+ const argumentsArray = this.createDecoratorArguments(newPropertyAssignments);
88
+ const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, argumentsArray);
89
+ return typescript_1.default.factory.createDecorator(call);
90
+ }
91
+ createDecoratorArguments(newPropertyAssignments) {
92
+ const argumentsArray = [];
93
+ // 1st Argument: Target
94
+ const typeFunctionOrTarget = typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createIdentifier((0, strings_1.classify)(this.options.modelName)));
95
+ argumentsArray.push(typeFunctionOrTarget);
96
+ // 2nd Argument: Inverse side
97
+ const inverseSide = typescript_1.default.factory.createArrowFunction(undefined, undefined, [typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier((0, strings_1.camelize)(this.options.modelName)), undefined, undefined, undefined)], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier((0, strings_1.camelize)(this.options.modelName)), typescript_1.default.factory.createIdentifier(this.options.fieldName)));
98
+ argumentsArray.push(inverseSide);
99
+ // 3rd Argument: Options. This argument is optional
100
+ if (newPropertyAssignments.length > 0) {
101
+ const decoratorOptions = typescript_1.default.factory.createObjectLiteralExpression(newPropertyAssignments);
102
+ argumentsArray.push(decoratorOptions);
103
+ }
104
+ return argumentsArray;
105
+ }
106
+ existingDecoratorOptions(existingRelationDecorator) {
107
+ let existingRelationDecoratorPropertyAssignments = [];
108
+ if (existingRelationDecorator !== undefined) {
109
+ //Pre-set the relation options from the existing relation decorator
110
+ const existingCallExpression = existingRelationDecorator.expression;
111
+ // Check if call expression has at least 1 arguments
112
+ if (existingCallExpression.arguments.length > 2) { //Because we are interested in the 2nd argument, we check for length > 1
113
+ if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[2])) {
114
+ throw new Error('OneToMany decorator 3rd argument must be an object literal containing the relation options');
115
+ }
116
+ const existingObjectLiteralExpression = existingCallExpression.arguments[2];
117
+ existingRelationDecoratorPropertyAssignments.push(...existingObjectLiteralExpression.properties);
118
+ }
119
+ }
120
+ return existingRelationDecoratorPropertyAssignments;
121
+ }
122
+ createRelationDecoratorOptions() {
123
+ const options = new Map();
124
+ options.set('cascade', typescript_1.default.factory.createTrue());
125
+ return this.optionsToPropertyAssignmentsOrNull(options);
126
+ }
127
+ optionsToPropertyAssignmentsOrNull(options) {
128
+ const decoratorOptions = new Map();
129
+ options.forEach((value, key) => {
130
+ if (value !== null) {
131
+ decoratorOptions.set(key, typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), value));
132
+ }
133
+ else {
134
+ decoratorOptions.set(key, null);
135
+ }
136
+ });
137
+ return decoratorOptions;
138
+ }
139
+ findDecorator(name, existingModifiers) {
140
+ return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => this.containsIdentifierName(m, name)).pop() : undefined;
141
+ }
142
+ filterOtherDecorators(name, existingModifiers) {
143
+ return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
144
+ }
145
+ filterNonDecorators(existingModifiers) {
146
+ return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
147
+ }
148
+ containsIdentifierName(m, identifierName) {
149
+ const callExpression = m.expression;
150
+ const identifier = callExpression.expression;
151
+ return identifier.text === identifierName;
152
+ }
153
+ }
154
+ exports.OneToManyDecoratorManager = OneToManyDecoratorManager;
155
+ //# sourceMappingURL=OneToManyDecoratorManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneToManyDecoratorManager.js","sourceRoot":"","sources":["OneToManyDecoratorManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import ts, { ClassDeclaration } from "@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript";
2
+ import { Change } from "@schematics/angular/utility/change";
3
+ import { PartialAddFieldChange } from "../../FieldManager";
4
+ interface UniqueIndexDecoratorOptions {
5
+ unique: boolean;
6
+ fieldName: string;
7
+ source: ts.SourceFile;
8
+ field: any;
9
+ }
10
+ export declare class UniqueIndexDecoratorManager {
11
+ options: UniqueIndexDecoratorOptions;
12
+ classNode: ClassDeclaration;
13
+ fieldNode?: ts.PropertyDeclaration | undefined;
14
+ constructor(options: UniqueIndexDecoratorOptions, classNode: ClassDeclaration, fieldNode?: ts.PropertyDeclaration | undefined);
15
+ isApplyDecorator(): boolean;
16
+ decoratorName(): string;
17
+ setFieldNode(fieldNode: ts.PropertyDeclaration): void;
18
+ buildDecorator(): PartialAddFieldChange;
19
+ decoratorImports(): Change[];
20
+ updateDecorator(): [ClassDeclaration, Change[]];
21
+ private findUniqueIndexDecorator;
22
+ private createUniqueIndexDecorator;
23
+ private createUniqueIndexDecoratorOptions;
24
+ private optionsToPropertyAssignmentsOrNull;
25
+ private filterOtherDecorators;
26
+ private filterOtherIndexDecorators;
27
+ private filterNonDecorators;
28
+ private containsIdentifierName;
29
+ private containsIndexForField;
30
+ }
31
+ export {};
@@ -0,0 +1,174 @@
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.UniqueIndexDecoratorManager = void 0;
7
+ const typescript_1 = __importDefault(require("@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript"));
8
+ const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
9
+ class UniqueIndexDecoratorManager {
10
+ constructor(options, classNode, fieldNode) {
11
+ this.options = options;
12
+ this.classNode = classNode;
13
+ this.fieldNode = fieldNode;
14
+ }
15
+ isApplyDecorator() {
16
+ return this.options.unique;
17
+ }
18
+ decoratorName() {
19
+ return 'Index';
20
+ }
21
+ setFieldNode(fieldNode) {
22
+ this.fieldNode = fieldNode;
23
+ }
24
+ buildDecorator() {
25
+ const fieldSourceLines = [];
26
+ const changes = [];
27
+ const indexDecoratorLine = `@Index(["${this.options.fieldName}", "deletedTracker"], { unique: true })`;
28
+ fieldSourceLines.push(indexDecoratorLine);
29
+ changes.push(...this.decoratorImports());
30
+ return {
31
+ filePath: this.options.source.fileName,
32
+ field: this.options.field,
33
+ changes: changes,
34
+ fieldSourceLines: fieldSourceLines,
35
+ };
36
+ }
37
+ decoratorImports() {
38
+ return [(0, ast_utils_1.insertImport)(this.options.source, this.options.source.fileName, this.decoratorName(), 'typeorm')];
39
+ }
40
+ //Updates the index decorator for the fieldNode based on the options provided
41
+ // @returns the updated property declaration
42
+ updateDecorator() {
43
+ if (!this.classNode)
44
+ throw new Error('Class node is required for updating the unique index decorator');
45
+ let newModifiers = [];
46
+ let existingModifiers = this.classNode.modifiers;
47
+ // Get the existing unique index decorator if it exists
48
+ const existingUniqueIndexDecorator = this.findUniqueIndexDecorator(existingModifiers);
49
+ //Remove the Index decorator if the Index decorator exists
50
+ newModifiers = [...this.filterOtherDecorators(this.decoratorName(), existingModifiers), ...this.filterOtherIndexDecorators(this.decoratorName(), this.options, existingModifiers), ...this.filterNonDecorators(existingModifiers)];
51
+ //Add the column decorator if column decorator is required
52
+ const changes = [];
53
+ if (this.isApplyDecorator()) {
54
+ newModifiers = [...newModifiers, this.createUniqueIndexDecorator(existingUniqueIndexDecorator)];
55
+ changes.push(...this.decoratorImports());
56
+ }
57
+ // If field node is provided, replace the class members with the updated field node
58
+ const newMembers = this.classNode.members.filter((member) => {
59
+ // Check if the member is a PropertyDeclaration
60
+ if (typescript_1.default.isPropertyDeclaration(member)) {
61
+ // Compare the name of the property with the field name
62
+ const memberName = member.name.getText();
63
+ return memberName !== this.options.fieldName; // Exclude members with the matching field name
64
+ }
65
+ return true; // Keep non-PropertyDeclaration members
66
+ });
67
+ if (this.fieldNode) {
68
+ newMembers.push(this.fieldNode);
69
+ }
70
+ // Update the class node with the new modifiers
71
+ const updatedClass = typescript_1.default.factory.updateClassDeclaration(this.classNode, newModifiers, this.classNode.name, this.classNode.typeParameters, this.classNode.heritageClauses, newMembers);
72
+ return [updatedClass, changes];
73
+ }
74
+ findUniqueIndexDecorator(existingModifiers) {
75
+ return existingModifiers ? existingModifiers
76
+ .filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator))
77
+ .map(m => m)
78
+ .filter(m => this.containsIdentifierName(m, this.decoratorName()))
79
+ .filter(m => this.containsIndexForField(m, this.options.fieldName))
80
+ .pop()
81
+ : undefined;
82
+ }
83
+ createUniqueIndexDecorator(existingDecorator) {
84
+ // Capture the existing column decorator options
85
+ let existingUniqueIndexDecoratorPropertyAssignments = [];
86
+ if (existingDecorator !== undefined) {
87
+ //Pre-set the column options from the existing column decorator
88
+ const existingCallExpression = existingDecorator.expression;
89
+ // Check if call expression has at least 2 arguments
90
+ if (existingCallExpression.arguments.length > 1) {
91
+ if (!typescript_1.default.isObjectLiteralExpression(existingCallExpression.arguments[1])) {
92
+ throw new Error('Column decorator 1st arguments must be an object literal containing the column options');
93
+ }
94
+ const existingObjectLiteralExpression = existingCallExpression.arguments[1];
95
+ existingUniqueIndexDecoratorPropertyAssignments.push(...existingObjectLiteralExpression.properties);
96
+ }
97
+ }
98
+ // Create the new unique index decorator options as property assignments,
99
+ const uniqueIndexDecoratorOptions = this.createUniqueIndexDecoratorOptions();
100
+ const newPropertyAssignments = Array.from(uniqueIndexDecoratorOptions.values()).filter(p => p !== null);
101
+ // Add the other unhandled column decorator options
102
+ const handledColumnDecoratorOptions = Array.from(uniqueIndexDecoratorOptions.keys());
103
+ //@ts-ignore
104
+ const otherPropertyAssignments = existingUniqueIndexDecoratorPropertyAssignments.filter(ps => { var _a; return !handledColumnDecoratorOptions.includes((_a = ps.name) === null || _a === void 0 ? void 0 : _a.escapedText); });
105
+ newPropertyAssignments.push(...otherPropertyAssignments);
106
+ // Re-create the column decorator with the merged column decorator options
107
+ const decoratorIdentifier = typescript_1.default.factory.createIdentifier(this.decoratorName());
108
+ const fieldsArray = typescript_1.default.factory.createArrayLiteralExpression([
109
+ typescript_1.default.factory.createStringLiteral(this.options.fieldName),
110
+ typescript_1.default.factory.createStringLiteral("deletedTracker")
111
+ ], false);
112
+ const decoratorOptions = typescript_1.default.factory.createObjectLiteralExpression(newPropertyAssignments);
113
+ const call = typescript_1.default.factory.createCallExpression(decoratorIdentifier, undefined, [fieldsArray, decoratorOptions]);
114
+ return typescript_1.default.factory.createDecorator(call);
115
+ }
116
+ createUniqueIndexDecoratorOptions() {
117
+ const options = new Map();
118
+ options.set('unique', typescript_1.default.factory.createTrue());
119
+ return this.optionsToPropertyAssignmentsOrNull(options);
120
+ }
121
+ optionsToPropertyAssignmentsOrNull(options) {
122
+ const decoratorOptions = new Map();
123
+ options.forEach((value, key) => {
124
+ if (value !== null) {
125
+ decoratorOptions.set(key, typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), value));
126
+ }
127
+ else {
128
+ decoratorOptions.set(key, null);
129
+ }
130
+ });
131
+ return decoratorOptions;
132
+ }
133
+ filterOtherDecorators(name, existingModifiers) {
134
+ return existingModifiers ? existingModifiers.filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator)).map(m => m).filter(m => !this.containsIdentifierName(m, name)) : [];
135
+ }
136
+ filterOtherIndexDecorators(name, decoratorOptions, existingModifiers) {
137
+ return existingModifiers
138
+ ? existingModifiers
139
+ .filter((m) => (m.kind === typescript_1.default.SyntaxKind.Decorator))
140
+ .map(m => m)
141
+ .filter(m => this.containsIdentifierName(m, name))
142
+ .filter(m => !this.containsIndexForField(m, decoratorOptions.fieldName))
143
+ : [];
144
+ }
145
+ filterNonDecorators(existingModifiers) {
146
+ return existingModifiers ? existingModifiers.filter((m) => (m.kind !== typescript_1.default.SyntaxKind.Decorator)).map(m => m) : [];
147
+ }
148
+ containsIdentifierName(m, identifierName) {
149
+ const callExpression = m.expression;
150
+ const identifier = callExpression.expression;
151
+ return identifier.text === identifierName;
152
+ }
153
+ containsIndexForField(m, fieldName) {
154
+ // Check if the Index decorator contains the field name
155
+ const callExpression = m.expression;
156
+ const args = callExpression.arguments;
157
+ if (args.length === 0)
158
+ return false;
159
+ let indexAlreadyPresent = false;
160
+ const fields = args[0];
161
+ if (typescript_1.default.isArrayLiteralExpression(fields)) {
162
+ const fieldNames = fields.elements.map(e => e.getText().replace(/^["']|["']$/g, ""));
163
+ // Check if fieldNames only contains the field name and deletedTracker
164
+ indexAlreadyPresent = fieldNames.includes(fieldName) && fieldNames.includes('deletedTracker') && fieldNames.length === 2;
165
+ console.log('fieldNames', fieldNames);
166
+ console;
167
+ }
168
+ if (!indexAlreadyPresent)
169
+ return false;
170
+ return true;
171
+ }
172
+ }
173
+ exports.UniqueIndexDecoratorManager = UniqueIndexDecoratorManager;
174
+ //# sourceMappingURL=UniqueIndexDecoratorManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniqueIndexDecoratorManager.js","sourceRoot":"","sources":["UniqueIndexDecoratorManager.ts"],"names":[],"mappings":"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"}
@@ -69,19 +69,18 @@ export class UniqueIndexDecoratorManager {
69
69
  //Since the order matters i.e decorators should appear above the export keyword
70
70
  const newModifierLikes = [...newDecorators, ...existingModifiers];
71
71
 
72
- // If field node is provided, replace the class members with the updated field node
73
- const newMembers = this.classNode.members.filter((member) => {
72
+ // Replace the class memeber matching the field name with the updated field node
73
+ const newMembers = this.classNode.members.map((member) => {
74
74
  // Check if the member is a PropertyDeclaration
75
75
  if (ts.isPropertyDeclaration(member)) {
76
76
  // Compare the name of the property with the field name
77
77
  const memberName = member.name.getText();
78
- return memberName !== this.options.fieldName; // Exclude members with the matching field name
78
+ if (memberName === this.options.fieldName) {
79
+ return this.fieldNode!;
80
+ }
79
81
  }
80
- return true; // Keep non-PropertyDeclaration members
82
+ return member;
81
83
  });
82
- if (this.fieldNode) {
83
- newMembers.push(this.fieldNode);
84
- }
85
84
 
86
85
  // Update the class node with the new modifiers
87
86
  const updatedClass = ts.factory.updateClassDeclaration(
@@ -197,8 +196,8 @@ export class UniqueIndexDecoratorManager {
197
196
  const fieldNames = fields.elements.map(e => e.getText().replace(/^["']|["']$/g, ""));
198
197
  // Check if fieldNames only contains the field name and deletedTracker
199
198
  indexAlreadyPresent = fieldNames.includes(fieldName) && fieldNames.includes('deletedTracker') && fieldNames.length === 2;
200
- console.log('fieldNames', fieldNames);
201
- console
199
+ // console.log('fieldNames', fieldNames);
200
+ // console
202
201
  }
203
202
  if (!indexAlreadyPresent) return false;
204
203
 
@@ -0,0 +1,51 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ import ts, { SourceFile } from '@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript';
3
+ import { Change } from '@schematics/angular/utility/change';
4
+ import { DecoratorManager, DecoratorType, DefaultValueInitializer, FieldChange, FieldManager, FieldType, ManagerForDtoOptions, PartialAddFieldChange } from '../../FieldManager';
5
+ export declare abstract class BaseFieldManagerForDto implements FieldManager {
6
+ protected readonly moduleName: string;
7
+ protected readonly modelName: string;
8
+ protected readonly field: any;
9
+ protected readonly options: ManagerForDtoOptions;
10
+ source: SourceFile;
11
+ decoratorManagers: DecoratorManager[];
12
+ constructor(tree: Tree, moduleName: string, modelName: string, field: any, options: ManagerForDtoOptions);
13
+ removeField(): FieldChange[];
14
+ fieldName(): string;
15
+ protected removeFieldFor(fieldName: string, fieldSource: SourceFile): FieldChange;
16
+ protected getFieldIdentifierNode(fieldName: string, fieldSource: SourceFile): ts.Node | undefined;
17
+ protected isFieldPresent(fieldName: string, fieldSource: SourceFile): boolean;
18
+ protected addFieldInternal(fieldName: string, fieldType: string, decoratorManagers: DecoratorManager[], field: any, modelName: any, source: ts.SourceFile): FieldChange;
19
+ private buildPropertyLine;
20
+ addField(): FieldChange[];
21
+ protected updateFieldInternal(fieldName: string, fieldType: ts.TypeNode, decoratorManagers: DecoratorManager[], field: any, source: ts.SourceFile): FieldChange;
22
+ updateField(): FieldChange[];
23
+ protected addAdditionalField(): FieldChange[];
24
+ protected addOrUpdateAdditionalField(): FieldChange[];
25
+ protected removeAdditionalField(): FieldChange[];
26
+ updateFieldType(fieldPropertyDeclarationNode: ts.PropertyDeclaration, newTypeNode?: ts.TypeNode): ts.PropertyDeclaration;
27
+ abstract fieldType(): FieldType;
28
+ abstract isString(): boolean;
29
+ abstract isNumber(): boolean;
30
+ abstract isInt(): boolean;
31
+ abstract isDecimal(): boolean;
32
+ abstract isApplyRegex(): boolean;
33
+ abstract isApplyRequired(): boolean;
34
+ abstract isApplyMin(): boolean;
35
+ abstract isApplyMax(): boolean;
36
+ abstract isDate(): boolean;
37
+ abstract isTransform(): boolean;
38
+ abstract isJson(): boolean;
39
+ abstract isBoolean(): boolean;
40
+ protected isBigInt(): boolean;
41
+ protected isApplyMinLength(): boolean;
42
+ protected isApplyMaxLength(): boolean;
43
+ protected applyUpdateDecoratorTransformations(fieldPropertyDeclarationNode: ts.PropertyDeclaration, ...transformers: DecoratorManager[]): [ts.PropertyDeclaration, Change[]];
44
+ protected applyBuildDecoratorTransformations(...transformers: DecoratorManager[]): PartialAddFieldChange[];
45
+ protected calculateReplaceChanges(updatedPropertyDeclarationNodeText: string, fieldPropertyDeclarationNode: ts.PropertyDeclaration, source: ts.SourceFile): Change[];
46
+ protected printNode(updatedPropertyDeclarationNode: ts.PropertyDeclaration, nodeSource: SourceFile): string;
47
+ protected isAdditionalFieldRequired(): boolean;
48
+ protected getFieldDecoratorManagers(field: any, source: SourceFile, ...decoratorTypes: DecoratorType[]): DecoratorManager[];
49
+ protected parseDefaultValue(defaultValueConfig: string): any | null;
50
+ protected defaultValueInitializer(defaultValueConfig: string): DefaultValueInitializer | null;
51
+ }