@rxap/schematics-ts-morph 16.0.0-dev.1 → 16.0.0-dev.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 (466) hide show
  1. package/CHANGELOG.md +135 -242
  2. package/{LICENSE → LICENSE.md} +3 -12
  3. package/README.md +7 -6
  4. package/package.json +47 -26
  5. package/src/index.d.ts +133 -47
  6. package/src/index.js +150 -59
  7. package/src/index.js.map +1 -1
  8. package/src/lib/add-class-method.js +5 -6
  9. package/src/lib/add-class-method.js.map +1 -1
  10. package/src/lib/add-dir.js +4 -8
  11. package/src/lib/add-dir.js.map +1 -1
  12. package/src/lib/add-fake-provider.js +21 -25
  13. package/src/lib/add-fake-provider.js.map +1 -1
  14. package/src/lib/add-method-class.d.ts +1 -0
  15. package/src/lib/add-method-class.js +31 -23
  16. package/src/lib/add-method-class.js.map +1 -1
  17. package/src/lib/add-provider-to-array.js +13 -14
  18. package/src/lib/add-provider-to-array.js.map +1 -1
  19. package/src/lib/add-to-array.js +6 -10
  20. package/src/lib/add-to-array.js.map +1 -1
  21. package/src/lib/add-variable-fake-provider.d.ts +1 -1
  22. package/src/lib/add-variable-fake-provider.js +5 -9
  23. package/src/lib/add-variable-fake-provider.js.map +1 -1
  24. package/src/lib/add-variable-provider.d.ts +1 -1
  25. package/src/lib/add-variable-provider.js +12 -15
  26. package/src/lib/add-variable-provider.js.map +1 -1
  27. package/src/lib/angular/add-component-animations.js +15 -0
  28. package/src/lib/angular/add-component-animations.js.map +1 -0
  29. package/src/lib/{add-component-fake-provider.d.ts → angular/add-component-fake-provider.d.ts} +2 -2
  30. package/src/lib/angular/add-component-fake-provider.js +20 -0
  31. package/src/lib/angular/add-component-fake-provider.js.map +1 -0
  32. package/src/lib/angular/add-component-import.d.ts +2 -0
  33. package/src/lib/angular/add-component-import.js +17 -0
  34. package/src/lib/angular/add-component-import.js.map +1 -0
  35. package/src/lib/{add-component-input.js → angular/add-component-input.js} +14 -15
  36. package/src/lib/angular/add-component-input.js.map +1 -0
  37. package/src/lib/{add-component-provider.d.ts → angular/add-component-provider.d.ts} +2 -2
  38. package/src/lib/angular/add-component-provider.js +11 -0
  39. package/src/lib/angular/add-component-provider.js.map +1 -0
  40. package/src/lib/{add-control-validator.js → angular/add-control-validator.js} +6 -11
  41. package/src/lib/angular/add-control-validator.js.map +1 -0
  42. package/src/lib/angular/add-dependency-injection.js +52 -0
  43. package/src/lib/angular/add-dependency-injection.js.map +1 -0
  44. package/src/lib/angular/add-ng-module-export.d.ts +2 -0
  45. package/src/lib/angular/add-ng-module-export.js +17 -0
  46. package/src/lib/angular/add-ng-module-export.js.map +1 -0
  47. package/src/lib/angular/add-ng-module-import.js +17 -0
  48. package/src/lib/angular/add-ng-module-import.js.map +1 -0
  49. package/src/lib/{add-ng-module-provider.d.ts → angular/add-ng-module-provider.d.ts} +2 -2
  50. package/src/lib/angular/add-ng-module-provider.js +11 -0
  51. package/src/lib/angular/add-ng-module-provider.js.map +1 -0
  52. package/src/lib/angular/build-angular-base-path.d.ts +8 -0
  53. package/src/lib/angular/build-angular-base-path.js +16 -0
  54. package/src/lib/angular/build-angular-base-path.js.map +1 -0
  55. package/src/lib/angular/coerce-accordion-component.d.ts +7 -0
  56. package/src/lib/angular/coerce-accordion-component.js +18 -0
  57. package/src/lib/angular/coerce-accordion-component.js.map +1 -0
  58. package/src/lib/angular/coerce-component-class.d.ts +8 -0
  59. package/src/lib/angular/coerce-component-class.js +35 -0
  60. package/src/lib/angular/coerce-component-class.js.map +1 -0
  61. package/src/lib/angular/coerce-component.d.ts +15 -0
  62. package/src/lib/angular/coerce-component.js +82 -0
  63. package/src/lib/angular/coerce-component.js.map +1 -0
  64. package/src/lib/angular/coerce-data-source-class.d.ts +21 -0
  65. package/src/lib/angular/coerce-data-source-class.js +69 -0
  66. package/src/lib/angular/coerce-data-source-class.js.map +1 -0
  67. package/src/lib/angular/coerce-dialog-component.d.ts +14 -0
  68. package/src/lib/angular/coerce-dialog-component.js +79 -0
  69. package/src/lib/angular/coerce-dialog-component.js.map +1 -0
  70. package/src/lib/angular/coerce-dialog-table-action-component.d.ts +8 -0
  71. package/src/lib/angular/coerce-dialog-table-action-component.js +98 -0
  72. package/src/lib/angular/coerce-dialog-table-action-component.js.map +1 -0
  73. package/src/lib/angular/coerce-dialog-table-action.d.ts +3 -0
  74. package/src/lib/angular/coerce-dialog-table-action.js +42 -0
  75. package/src/lib/angular/coerce-dialog-table-action.js.map +1 -0
  76. package/src/lib/angular/coerce-form-builder-provider.d.ts +10 -0
  77. package/src/lib/angular/coerce-form-builder-provider.js +30 -0
  78. package/src/lib/angular/coerce-form-builder-provider.js.map +1 -0
  79. package/src/lib/angular/coerce-form-component-provider.d.ts +10 -0
  80. package/src/lib/angular/coerce-form-component-provider.js +32 -0
  81. package/src/lib/angular/coerce-form-component-provider.js.map +1 -0
  82. package/src/lib/angular/coerce-form-definition-control.d.ts +20 -0
  83. package/src/lib/angular/coerce-form-definition-control.js +133 -0
  84. package/src/lib/angular/coerce-form-definition-control.js.map +1 -0
  85. package/src/lib/angular/coerce-form-definition-type.d.ts +10 -0
  86. package/src/lib/angular/coerce-form-definition-type.js +25 -0
  87. package/src/lib/angular/coerce-form-definition-type.js.map +1 -0
  88. package/src/lib/angular/coerce-form-definition.d.ts +13 -0
  89. package/src/lib/angular/coerce-form-definition.js +70 -0
  90. package/src/lib/angular/coerce-form-definition.js.map +1 -0
  91. package/src/lib/angular/coerce-form-provider.d.ts +10 -0
  92. package/src/lib/angular/coerce-form-provider.js +31 -0
  93. package/src/lib/angular/coerce-form-provider.js.map +1 -0
  94. package/src/lib/angular/coerce-form-providers-file.d.ts +7 -0
  95. package/src/lib/angular/coerce-form-providers-file.js +80 -0
  96. package/src/lib/angular/coerce-form-providers-file.js.map +1 -0
  97. package/src/lib/angular/coerce-form-table-action.d.ts +6 -0
  98. package/src/lib/angular/coerce-form-table-action.js +91 -0
  99. package/src/lib/angular/coerce-form-table-action.js.map +1 -0
  100. package/src/lib/angular/coerce-method-class.d.ts +9 -0
  101. package/src/lib/angular/coerce-method-class.js +48 -0
  102. package/src/lib/angular/coerce-method-class.js.map +1 -0
  103. package/src/lib/angular/coerce-navigation-table-action.d.ts +5 -0
  104. package/src/lib/angular/coerce-navigation-table-action.js +68 -0
  105. package/src/lib/angular/coerce-navigation-table-action.js.map +1 -0
  106. package/src/lib/angular/coerce-operation-table-action.d.ts +6 -0
  107. package/src/lib/angular/coerce-operation-table-action.js +36 -0
  108. package/src/lib/angular/coerce-operation-table-action.js.map +1 -0
  109. package/src/lib/angular/coerce-options-data-source.d.ts +6 -0
  110. package/src/lib/angular/coerce-options-data-source.js +43 -0
  111. package/src/lib/angular/coerce-options-data-source.js.map +1 -0
  112. package/src/lib/angular/coerce-project-feature.d.ts +4 -0
  113. package/src/lib/angular/coerce-project-feature.js +30 -0
  114. package/src/lib/angular/coerce-project-feature.js.map +1 -0
  115. package/src/lib/angular/coerce-proxy-remote-method-class.d.ts +11 -0
  116. package/src/lib/angular/coerce-proxy-remote-method-class.js +99 -0
  117. package/src/lib/angular/coerce-proxy-remote-method-class.js.map +1 -0
  118. package/src/lib/angular/coerce-table-action-index-provider.d.ts +5 -0
  119. package/src/lib/angular/coerce-table-action-index-provider.js +21 -0
  120. package/src/lib/angular/coerce-table-action-index-provider.js.map +1 -0
  121. package/src/lib/angular/coerce-table-action-index.d.ts +3 -0
  122. package/src/lib/angular/coerce-table-action-index.js +12 -0
  123. package/src/lib/angular/coerce-table-action-index.js.map +1 -0
  124. package/src/lib/angular/coerce-table-action-provider.d.ts +8 -0
  125. package/src/lib/angular/coerce-table-action-provider.js +44 -0
  126. package/src/lib/angular/coerce-table-action-provider.js.map +1 -0
  127. package/src/lib/angular/coerce-table-action.d.ts +13 -0
  128. package/src/lib/angular/coerce-table-action.js +82 -0
  129. package/src/lib/angular/coerce-table-action.js.map +1 -0
  130. package/src/lib/angular/coerce-table-data-source.d.ts +9 -0
  131. package/src/lib/angular/coerce-table-data-source.js +51 -0
  132. package/src/lib/angular/coerce-table-data-source.js.map +1 -0
  133. package/src/lib/angular/coerce-table-header-button-method.d.ts +13 -0
  134. package/src/lib/angular/coerce-table-header-button-method.js +78 -0
  135. package/src/lib/angular/coerce-table-header-button-method.js.map +1 -0
  136. package/src/lib/angular/coerce-table-parameters-from-route.d.ts +6 -0
  137. package/src/lib/angular/coerce-table-parameters-from-route.js +48 -0
  138. package/src/lib/angular/coerce-table-parameters-from-route.js.map +1 -0
  139. package/src/lib/angular/coerce-table-select-resolve-value-method.d.ts +6 -0
  140. package/src/lib/angular/coerce-table-select-resolve-value-method.js +30 -0
  141. package/src/lib/angular/coerce-table-select-resolve-value-method.js.map +1 -0
  142. package/src/lib/angular/coerce-tree-table-children-proxy-remote-method-class.d.ts +6 -0
  143. package/src/lib/angular/coerce-tree-table-children-proxy-remote-method-class.js +34 -0
  144. package/src/lib/angular/coerce-tree-table-children-proxy-remote-method-class.js.map +1 -0
  145. package/src/lib/angular/coerce-tree-table-root-proxy-remote-method-class.d.ts +6 -0
  146. package/src/lib/angular/coerce-tree-table-root-proxy-remote-method-class.js +34 -0
  147. package/src/lib/angular/coerce-tree-table-root-proxy-remote-method-class.js.map +1 -0
  148. package/src/lib/angular/enforce-use-form-control-order.d.ts +5 -0
  149. package/src/lib/angular/enforce-use-form-control-order.js +29 -0
  150. package/src/lib/angular/enforce-use-form-control-order.js.map +1 -0
  151. package/src/lib/angular/find-component-module-source-file.js +5 -0
  152. package/src/lib/angular/find-component-module-source-file.js.map +1 -0
  153. package/src/lib/angular/find-component-source-file.js +15 -0
  154. package/src/lib/angular/find-component-source-file.js.map +1 -0
  155. package/src/lib/angular/find-routing-module.js +12 -0
  156. package/src/lib/angular/find-routing-module.js.map +1 -0
  157. package/src/lib/angular/form-definition-utilities.d.ts +13 -0
  158. package/src/lib/angular/form-definition-utilities.js +21 -0
  159. package/src/lib/angular/form-definition-utilities.js.map +1 -0
  160. package/src/lib/{get-component-class.d.ts → angular/get-component-class.d.ts} +1 -1
  161. package/src/lib/angular/get-component-class.js +8 -0
  162. package/src/lib/angular/get-component-class.js.map +1 -0
  163. package/src/lib/{get-component-options-object.d.ts → angular/get-component-options-object.d.ts} +1 -1
  164. package/src/lib/{get-component-options-object.js → angular/get-component-options-object.js} +4 -8
  165. package/src/lib/angular/get-component-options-object.js.map +1 -0
  166. package/src/lib/{get-ng-module-options-object.d.ts → angular/get-ng-module-options-object.d.ts} +1 -1
  167. package/src/lib/{get-ng-module-options-object.js → angular/get-ng-module-options-object.js} +4 -8
  168. package/src/lib/angular/get-ng-module-options-object.js.map +1 -0
  169. package/src/lib/{handle-component-module.d.ts → angular/handle-component-module.d.ts} +1 -1
  170. package/src/lib/angular/handle-component-module.js +2 -0
  171. package/src/lib/angular/handle-component-module.js.map +1 -0
  172. package/src/lib/{handle-component.d.ts → angular/handle-component.d.ts} +1 -1
  173. package/src/lib/angular/handle-component.js +2 -0
  174. package/src/lib/angular/handle-component.js.map +1 -0
  175. package/src/lib/angular/has-accordion-component.d.ts +7 -0
  176. package/src/lib/angular/has-accordion-component.js +21 -0
  177. package/src/lib/angular/has-accordion-component.js.map +1 -0
  178. package/src/lib/angular/has-component.d.ts +8 -0
  179. package/src/lib/angular/has-component.js +22 -0
  180. package/src/lib/angular/has-component.js.map +1 -0
  181. package/src/lib/angular/has-dialog-component.d.ts +5 -0
  182. package/src/lib/angular/has-dialog-component.js +13 -0
  183. package/src/lib/angular/has-dialog-component.js.map +1 -0
  184. package/src/lib/angular/has-project-feature.d.ts +6 -0
  185. package/src/lib/angular/has-project-feature.js +15 -0
  186. package/src/lib/angular/has-project-feature.js.map +1 -0
  187. package/src/lib/angular/has-table-component.d.ts +5 -0
  188. package/src/lib/angular/has-table-component.js +18 -0
  189. package/src/lib/angular/has-table-component.js.map +1 -0
  190. package/src/lib/angular/index.d.ts +26 -0
  191. package/src/lib/angular/index.js +27 -0
  192. package/src/lib/angular/index.js.map +1 -0
  193. package/src/lib/auto-import.js +12 -14
  194. package/src/lib/auto-import.js.map +1 -1
  195. package/src/lib/coerce-class-constructor.js +1 -5
  196. package/src/lib/coerce-class-constructor.js.map +1 -1
  197. package/src/lib/coerce-class-method.d.ts +1 -1
  198. package/src/lib/coerce-class-method.js +3 -6
  199. package/src/lib/coerce-class-method.js.map +1 -1
  200. package/src/lib/coerce-class.js +5 -6
  201. package/src/lib/coerce-class.js.map +1 -1
  202. package/src/lib/coerce-property-key.js +1 -5
  203. package/src/lib/coerce-property-key.js.map +1 -1
  204. package/src/lib/coerce-source-file.js +1 -5
  205. package/src/lib/coerce-source-file.js.map +1 -1
  206. package/src/lib/coerce-variable-declaration.d.ts +2 -2
  207. package/src/lib/coerce-variable-declaration.js +14 -10
  208. package/src/lib/coerce-variable-declaration.js.map +1 -1
  209. package/src/lib/fix-missing-imports.js +9 -13
  210. package/src/lib/fix-missing-imports.js.map +1 -1
  211. package/src/lib/get-array-declaration.js +6 -10
  212. package/src/lib/get-array-declaration.js.map +1 -1
  213. package/src/lib/get-class-decorator-arguments.js +2 -7
  214. package/src/lib/get-class-decorator-arguments.js.map +1 -1
  215. package/src/lib/get-coerce-array-literal-form-object-literal.d.ts +1 -1
  216. package/src/lib/get-coerce-array-literal-form-object-literal.js +5 -9
  217. package/src/lib/get-coerce-array-literal-form-object-literal.js.map +1 -1
  218. package/src/lib/get-form-providers-source-file.js +9 -13
  219. package/src/lib/get-form-providers-source-file.js.map +1 -1
  220. package/src/lib/get-variable-declaration.js +2 -7
  221. package/src/lib/get-variable-declaration.js.map +1 -1
  222. package/src/lib/is-array-literal-expression.js +4 -9
  223. package/src/lib/is-array-literal-expression.js.map +1 -1
  224. package/src/lib/merge-ts-morph-project.js +3 -7
  225. package/src/lib/merge-ts-morph-project.js.map +1 -1
  226. package/src/lib/nest/add-nest-controller.js +44 -0
  227. package/src/lib/nest/add-nest-controller.js.map +1 -0
  228. package/src/lib/nest/add-nest-module-controller.js +11 -0
  229. package/src/lib/nest/add-nest-module-controller.js.map +1 -0
  230. package/src/lib/nest/add-nest-module-import.js +16 -0
  231. package/src/lib/nest/add-nest-module-import.js.map +1 -0
  232. package/src/lib/nest/add-nest-module-provider.js +11 -0
  233. package/src/lib/nest/add-nest-module-provider.js.map +1 -0
  234. package/src/lib/nest/add-nest-module-to-app-module.d.ts +7 -0
  235. package/src/lib/nest/add-nest-module-to-app-module.js +26 -0
  236. package/src/lib/nest/add-nest-module-to-app-module.js.map +1 -0
  237. package/src/lib/nest/add-nest-provider-to-array.js +37 -0
  238. package/src/lib/nest/add-nest-provider-to-array.js.map +1 -0
  239. package/src/lib/nest/add-operation-to-controller.d.ts +37 -0
  240. package/src/lib/nest/add-operation-to-controller.js +221 -0
  241. package/src/lib/nest/add-operation-to-controller.js.map +1 -0
  242. package/src/lib/nest/assert-nest-project.d.ts +7 -0
  243. package/src/lib/nest/assert-nest-project.js +11 -0
  244. package/src/lib/nest/assert-nest-project.js.map +1 -0
  245. package/src/lib/nest/build-nest-base-path.d.ts +8 -0
  246. package/src/lib/nest/build-nest-base-path.js +13 -0
  247. package/src/lib/nest/build-nest-base-path.js.map +1 -0
  248. package/src/lib/nest/build-nest-controller-name.d.ts +6 -0
  249. package/src/lib/nest/build-nest-controller-name.js +23 -0
  250. package/src/lib/nest/build-nest-controller-name.js.map +1 -0
  251. package/src/lib/nest/coerce-dto-class.d.ts +23 -0
  252. package/src/lib/nest/coerce-dto-class.js +175 -0
  253. package/src/lib/nest/coerce-dto-class.js.map +1 -0
  254. package/src/lib/nest/coerce-form-submit-operation.d.ts +7 -0
  255. package/src/lib/nest/coerce-form-submit-operation.js +31 -0
  256. package/src/lib/nest/coerce-form-submit-operation.js.map +1 -0
  257. package/src/lib/nest/coerce-get-by-id-operation.d.ts +7 -0
  258. package/src/lib/nest/coerce-get-by-id-operation.js +68 -0
  259. package/src/lib/nest/coerce-get-by-id-operation.js.map +1 -0
  260. package/src/lib/nest/coerce-get-children-operation.d.ts +3 -0
  261. package/src/lib/nest/coerce-get-children-operation.js +63 -0
  262. package/src/lib/nest/coerce-get-children-operation.js.map +1 -0
  263. package/src/lib/nest/coerce-get-data-grid-operation.d.ts +7 -0
  264. package/src/lib/nest/coerce-get-data-grid-operation.js +33 -0
  265. package/src/lib/nest/coerce-get-data-grid-operation.js.map +1 -0
  266. package/src/lib/nest/coerce-get-page-operation.d.ts +39 -0
  267. package/src/lib/nest/coerce-get-page-operation.js +248 -0
  268. package/src/lib/nest/coerce-get-page-operation.js.map +1 -0
  269. package/src/lib/nest/coerce-get-root-operation.d.ts +3 -0
  270. package/src/lib/nest/coerce-get-root-operation.js +56 -0
  271. package/src/lib/nest/coerce-get-root-operation.js.map +1 -0
  272. package/src/lib/nest/coerce-nest-controller.d.ts +13 -0
  273. package/src/lib/nest/coerce-nest-controller.js +73 -0
  274. package/src/lib/nest/coerce-nest-controller.js.map +1 -0
  275. package/src/lib/nest/coerce-nest-module.d.ts +8 -0
  276. package/src/lib/nest/coerce-nest-module.js +51 -0
  277. package/src/lib/nest/coerce-nest-module.js.map +1 -0
  278. package/src/lib/nest/coerce-nest-service-project.d.ts +10 -0
  279. package/src/lib/nest/coerce-nest-service-project.js +33 -0
  280. package/src/lib/nest/coerce-nest-service-project.js.map +1 -0
  281. package/src/lib/nest/coerce-operation.d.ts +23 -0
  282. package/src/lib/nest/coerce-operation.js +100 -0
  283. package/src/lib/nest/coerce-operation.js.map +1 -0
  284. package/src/lib/nest/coerce-options-operation.d.ts +8 -0
  285. package/src/lib/nest/coerce-options-operation.js +51 -0
  286. package/src/lib/nest/coerce-options-operation.js.map +1 -0
  287. package/src/lib/nest/coerce-page-dto-class.d.ts +12 -0
  288. package/src/lib/nest/coerce-page-dto-class.js +33 -0
  289. package/src/lib/nest/coerce-page-dto-class.js.map +1 -0
  290. package/src/lib/nest/coerce-row-dto-class.d.ts +9 -0
  291. package/src/lib/nest/coerce-row-dto-class.js +18 -0
  292. package/src/lib/nest/coerce-row-dto-class.js.map +1 -0
  293. package/src/lib/nest/coerce-submit-data-grid-operation.d.ts +5 -0
  294. package/src/lib/nest/coerce-submit-data-grid-operation.js +14 -0
  295. package/src/lib/nest/coerce-submit-data-grid-operation.js.map +1 -0
  296. package/src/lib/nest/coerce-table-select-operation.d.ts +6 -0
  297. package/src/lib/nest/coerce-table-select-operation.js +23 -0
  298. package/src/lib/nest/coerce-table-select-operation.js.map +1 -0
  299. package/src/lib/nest/coerce-table-select-value-resolve-operation.d.ts +8 -0
  300. package/src/lib/nest/coerce-table-select-value-resolve-operation.js +39 -0
  301. package/src/lib/nest/coerce-table-select-value-resolve-operation.js.map +1 -0
  302. package/src/lib/nest/coerce-tree-operation.d.ts +6 -0
  303. package/src/lib/nest/coerce-tree-operation.js +59 -0
  304. package/src/lib/nest/coerce-tree-operation.js.map +1 -0
  305. package/src/lib/nest/create-dto-class.d.ts +19 -0
  306. package/src/lib/nest/create-dto-class.js +192 -0
  307. package/src/lib/nest/create-dto-class.js.map +1 -0
  308. package/src/lib/nest/find-nest-module-declaration.js +7 -0
  309. package/src/lib/nest/find-nest-module-declaration.js.map +1 -0
  310. package/src/lib/nest/find-nest-module-source-file.js +6 -0
  311. package/src/lib/nest/find-nest-module-source-file.js.map +1 -0
  312. package/src/lib/nest/get-nest-module-metadata.js +15 -0
  313. package/src/lib/nest/get-nest-module-metadata.js.map +1 -0
  314. package/src/lib/nest/has-nest-controller.d.ts +9 -0
  315. package/src/lib/nest/has-nest-controller.js +12 -0
  316. package/src/lib/nest/has-nest-controller.js.map +1 -0
  317. package/src/lib/nest/has-nest-module-class.js +7 -0
  318. package/src/lib/nest/has-nest-module-class.js.map +1 -0
  319. package/src/lib/nest/has-nest-module.d.ts +8 -0
  320. package/src/lib/nest/has-nest-module.js +14 -0
  321. package/src/lib/nest/has-nest-module.js.map +1 -0
  322. package/src/lib/nest/is-nest-module-class.js +4 -0
  323. package/src/lib/nest/is-nest-module-class.js.map +1 -0
  324. package/src/lib/nest/nest-provider-object.js +2 -0
  325. package/src/lib/nest/nest-provider-object.js.map +1 -0
  326. package/src/lib/nest/operation-id-utilities.d.ts +16 -0
  327. package/src/lib/nest/operation-id-utilities.js +89 -0
  328. package/src/lib/nest/operation-id-utilities.js.map +1 -0
  329. package/src/lib/nest/project-utilities.d.ts +13 -0
  330. package/src/lib/nest/project-utilities.js +19 -0
  331. package/src/lib/nest/project-utilities.js.map +1 -0
  332. package/src/lib/nest/remove-nest-module-provider.d.ts +3 -0
  333. package/src/lib/nest/remove-nest-module-provider.js +9 -0
  334. package/src/lib/nest/remove-nest-module-provider.js.map +1 -0
  335. package/src/lib/nest/remove-nest-provider-to-array.d.ts +3 -0
  336. package/src/lib/nest/remove-nest-provider-to-array.js +24 -0
  337. package/src/lib/nest/remove-nest-provider-to-array.js.map +1 -0
  338. package/src/lib/organize-imports.js +7 -11
  339. package/src/lib/organize-imports.js.map +1 -1
  340. package/src/lib/overwrite-decorator.d.ts +1 -1
  341. package/src/lib/overwrite-decorator.js +2 -6
  342. package/src/lib/overwrite-decorator.js.map +1 -1
  343. package/src/lib/overwrite-property.js +3 -7
  344. package/src/lib/overwrite-property.js.map +1 -1
  345. package/src/lib/provider-object.js +1 -2
  346. package/src/lib/provider-object.js.map +1 -1
  347. package/src/lib/to-value-context.js +1 -2
  348. package/src/lib/to-value-context.js.map +1 -1
  349. package/src/lib/ts-morph/apply-ts-morph-project.d.ts +3 -0
  350. package/src/lib/ts-morph/apply-ts-morph-project.js +5 -0
  351. package/src/lib/ts-morph/apply-ts-morph-project.js.map +1 -0
  352. package/src/lib/ts-morph/coerce-class-implementation.d.ts +2 -0
  353. package/src/lib/ts-morph/coerce-class-implementation.js +6 -0
  354. package/src/lib/ts-morph/coerce-class-implementation.js.map +1 -0
  355. package/src/lib/ts-morph/coerce-class-property.d.ts +2 -0
  356. package/src/lib/ts-morph/coerce-class-property.js +11 -0
  357. package/src/lib/ts-morph/coerce-class-property.js.map +1 -0
  358. package/src/lib/ts-morph/coerce-decorator.d.ts +9 -0
  359. package/src/lib/ts-morph/coerce-decorator.js +21 -0
  360. package/src/lib/ts-morph/coerce-decorator.js.map +1 -0
  361. package/src/lib/ts-morph/coerce-function.d.ts +2 -0
  362. package/src/lib/ts-morph/coerce-function.js +6 -0
  363. package/src/lib/ts-morph/coerce-function.js.map +1 -0
  364. package/src/lib/ts-morph/coerce-imports.d.ts +2 -0
  365. package/src/lib/ts-morph/coerce-imports.js +21 -0
  366. package/src/lib/ts-morph/coerce-imports.js.map +1 -0
  367. package/src/lib/ts-morph/coerce-interface.d.ts +9 -0
  368. package/src/lib/ts-morph/coerce-interface.js +28 -0
  369. package/src/lib/ts-morph/coerce-interface.js.map +1 -0
  370. package/src/lib/ts-morph/coerce-parameter-declaration.d.ts +2 -0
  371. package/src/lib/ts-morph/coerce-parameter-declaration.js +10 -0
  372. package/src/lib/ts-morph/coerce-parameter-declaration.js.map +1 -0
  373. package/src/lib/ts-morph/coerce-statements.d.ts +2 -0
  374. package/src/lib/ts-morph/coerce-statements.js +7 -0
  375. package/src/lib/ts-morph/coerce-statements.js.map +1 -0
  376. package/src/lib/ts-morph/coerce-type-alias.d.ts +4 -0
  377. package/src/lib/ts-morph/coerce-type-alias.js +12 -0
  378. package/src/lib/ts-morph/coerce-type-alias.js.map +1 -0
  379. package/src/lib/ts-morph/find-function.d.ts +6 -0
  380. package/src/lib/ts-morph/find-function.js +4 -0
  381. package/src/lib/ts-morph/find-function.js.map +1 -0
  382. package/src/lib/ts-morph/write-type.d.ts +6 -0
  383. package/src/lib/ts-morph/write-type.js +30 -0
  384. package/src/lib/ts-morph/write-type.js.map +1 -0
  385. package/src/lib/ts-morph-transform.d.ts +28 -0
  386. package/src/lib/ts-morph-transform.js +11 -0
  387. package/src/lib/ts-morph-transform.js.map +1 -0
  388. package/src/lib/types/form-definition-control.d.ts +9 -0
  389. package/src/lib/types/form-definition-control.js +2 -0
  390. package/src/lib/types/form-definition-control.js.map +1 -0
  391. package/migration.json +0 -4
  392. package/src/lib/add-component-animations.js +0 -18
  393. package/src/lib/add-component-animations.js.map +0 -1
  394. package/src/lib/add-component-fake-provider.js +0 -24
  395. package/src/lib/add-component-fake-provider.js.map +0 -1
  396. package/src/lib/add-component-input.js.map +0 -1
  397. package/src/lib/add-component-provider.js +0 -14
  398. package/src/lib/add-component-provider.js.map +0 -1
  399. package/src/lib/add-control-validator.js.map +0 -1
  400. package/src/lib/add-dependency-injection.js +0 -56
  401. package/src/lib/add-dependency-injection.js.map +0 -1
  402. package/src/lib/add-ng-module-import.js +0 -20
  403. package/src/lib/add-ng-module-import.js.map +0 -1
  404. package/src/lib/add-ng-module-provider.js +0 -14
  405. package/src/lib/add-ng-module-provider.js.map +0 -1
  406. package/src/lib/apply-ts-morph-project.d.ts +0 -3
  407. package/src/lib/apply-ts-morph-project.js +0 -71
  408. package/src/lib/apply-ts-morph-project.js.map +0 -1
  409. package/src/lib/coerce-method-class.d.ts +0 -3
  410. package/src/lib/coerce-method-class.js +0 -14
  411. package/src/lib/coerce-method-class.js.map +0 -1
  412. package/src/lib/find-component-module-source-file.js +0 -9
  413. package/src/lib/find-component-module-source-file.js.map +0 -1
  414. package/src/lib/find-component-source-file.js +0 -19
  415. package/src/lib/find-component-source-file.js.map +0 -1
  416. package/src/lib/find-routing-module.js +0 -17
  417. package/src/lib/find-routing-module.js.map +0 -1
  418. package/src/lib/get-component-class.js +0 -12
  419. package/src/lib/get-component-class.js.map +0 -1
  420. package/src/lib/get-component-options-object.js.map +0 -1
  421. package/src/lib/get-ng-module-options-object.js.map +0 -1
  422. package/src/lib/handle-component-module.js +0 -3
  423. package/src/lib/handle-component-module.js.map +0 -1
  424. package/src/lib/handle-component.js +0 -3
  425. package/src/lib/handle-component.js.map +0 -1
  426. package/src/lib/nestjs/add-nest-controller.js +0 -48
  427. package/src/lib/nestjs/add-nest-controller.js.map +0 -1
  428. package/src/lib/nestjs/add-nest-module-controller.js +0 -14
  429. package/src/lib/nestjs/add-nest-module-controller.js.map +0 -1
  430. package/src/lib/nestjs/add-nest-module-import.js +0 -19
  431. package/src/lib/nestjs/add-nest-module-import.js.map +0 -1
  432. package/src/lib/nestjs/add-nest-module-provider.js +0 -14
  433. package/src/lib/nestjs/add-nest-module-provider.js.map +0 -1
  434. package/src/lib/nestjs/add-nest-provider-to-array.js +0 -40
  435. package/src/lib/nestjs/add-nest-provider-to-array.js.map +0 -1
  436. package/src/lib/nestjs/find-nest-module-declaration.js +0 -11
  437. package/src/lib/nestjs/find-nest-module-declaration.js.map +0 -1
  438. package/src/lib/nestjs/find-nest-module-source-file.js +0 -10
  439. package/src/lib/nestjs/find-nest-module-source-file.js.map +0 -1
  440. package/src/lib/nestjs/get-nest-module-metadata.js +0 -19
  441. package/src/lib/nestjs/get-nest-module-metadata.js.map +0 -1
  442. package/src/lib/nestjs/has-nest-module-class.js +0 -11
  443. package/src/lib/nestjs/has-nest-module-class.js.map +0 -1
  444. package/src/lib/nestjs/is-nest-module-class.js +0 -8
  445. package/src/lib/nestjs/is-nest-module-class.js.map +0 -1
  446. package/src/lib/nestjs/nest-provider-object.js +0 -3
  447. package/src/lib/nestjs/nest-provider-object.js.map +0 -1
  448. /package/src/lib/{add-component-animations.d.ts → angular/add-component-animations.d.ts} +0 -0
  449. /package/src/lib/{add-component-input.d.ts → angular/add-component-input.d.ts} +0 -0
  450. /package/src/lib/{add-control-validator.d.ts → angular/add-control-validator.d.ts} +0 -0
  451. /package/src/lib/{add-dependency-injection.d.ts → angular/add-dependency-injection.d.ts} +0 -0
  452. /package/src/lib/{add-ng-module-import.d.ts → angular/add-ng-module-import.d.ts} +0 -0
  453. /package/src/lib/{find-component-module-source-file.d.ts → angular/find-component-module-source-file.d.ts} +0 -0
  454. /package/src/lib/{find-component-source-file.d.ts → angular/find-component-source-file.d.ts} +0 -0
  455. /package/src/lib/{find-routing-module.d.ts → angular/find-routing-module.d.ts} +0 -0
  456. /package/src/lib/{nestjs → nest}/add-nest-controller.d.ts +0 -0
  457. /package/src/lib/{nestjs → nest}/add-nest-module-controller.d.ts +0 -0
  458. /package/src/lib/{nestjs → nest}/add-nest-module-import.d.ts +0 -0
  459. /package/src/lib/{nestjs → nest}/add-nest-module-provider.d.ts +0 -0
  460. /package/src/lib/{nestjs → nest}/add-nest-provider-to-array.d.ts +0 -0
  461. /package/src/lib/{nestjs → nest}/find-nest-module-declaration.d.ts +0 -0
  462. /package/src/lib/{nestjs → nest}/find-nest-module-source-file.d.ts +0 -0
  463. /package/src/lib/{nestjs → nest}/get-nest-module-metadata.d.ts +0 -0
  464. /package/src/lib/{nestjs → nest}/has-nest-module-class.d.ts +0 -0
  465. /package/src/lib/{nestjs → nest}/is-nest-module-class.d.ts +0 -0
  466. /package/src/lib/{nestjs → nest}/nest-provider-object.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-get-by-id-operation.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-get-by-id-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,UAAU,sBAAsB,CAAC,OAAuC;IAC5E,IAAI,EACF,cAAc,EACd,OAAO,EACP,UAAU,EACV,SAAS,EACT,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,KAAK,EAAE,CAAC;IAEjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,kBAAkB,GAAG,CAAC,UAAU,IAAI,UAAU,KAAK,cAAc,CAAC;IAExE,IAAI,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;QAC5E,YAAY,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;KACJ;IAED,IAAI,kBAAkB,EAAE;QACtB,UAAU,GAAG,cAAc,CAAC;KAC7B;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;QACnD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,UAAW,EAAE,OAAO,CAAC;YAC1E,UAAU,EAAE,CAAC,kBAAkB;SAChC,CAAC,CAAC;KACJ;IAED,OAAO,eAAe,CAAC;QACrB,GAAG,OAAO;QACV,UAAU;QACV,cAAc,EAAE,cAAe;QAC/B,SAAS;QACT,aAAa,EAAE,SAAS;QACxB,gBAAgB,EAAE,CAChB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,EAAE;YAEF,MAAM,EACJ,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,WAAW,GACtB,GAAG,cAAc,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,cAAc;gBACpB,YAAY;aACb,CAAC,CAAC;YAEH,aAAa,CAAC,UAAU,EAAE;gBACxB,YAAY,EAAE,CAAE,YAAY,CAAE;gBAC9B,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;QAEJ,CAAC;KACF,CAAC,CAAC;AAEL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CoerceOperationOptions } from './coerce-operation';
2
+ export type CoerceGetChildrenOperationOptions = Omit<CoerceOperationOptions, 'operationName'>;
3
+ export declare function CoerceGetChildrenOperation(options: Readonly<CoerceGetChildrenOperationOptions>): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,63 @@
1
+ import { classify, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { CoerceImports } from '../ts-morph/coerce-imports';
3
+ import { CoerceDtoClass } from './coerce-dto-class';
4
+ import { CoerceOperation, } from './coerce-operation';
5
+ export function CoerceGetChildrenOperation(options) {
6
+ let { tsMorphTransform, controllerName, paramList, } = options;
7
+ tsMorphTransform ??= () => ({});
8
+ controllerName = CoerceSuffix(controllerName, '-tree-table');
9
+ paramList ??= [];
10
+ paramList.push({
11
+ name: 'parentUuid',
12
+ type: 'string',
13
+ });
14
+ return CoerceOperation({
15
+ ...options,
16
+ // TODO : remove after migration to controllerName
17
+ controllerName,
18
+ operationName: 'get-children',
19
+ paramList,
20
+ tsMorphTransform: (project, sourceFile, classDeclaration, controllerName) => {
21
+ const { className, filePath, } = CoerceDtoClass({
22
+ project,
23
+ name: CoerceSuffix(controllerName, '-item'),
24
+ propertyList: [
25
+ {
26
+ name: 'uuid',
27
+ type: 'string',
28
+ },
29
+ {
30
+ name: 'hasChildren',
31
+ type: 'boolean',
32
+ },
33
+ {
34
+ name: 'children',
35
+ type: classify(CoerceSuffix(controllerName, '-item-dto')),
36
+ isArray: true,
37
+ isOptional: true,
38
+ isType: true,
39
+ },
40
+ ],
41
+ });
42
+ CoerceImports(sourceFile, [
43
+ {
44
+ namedImports: ['plainToInstance'],
45
+ moduleSpecifier: 'class-transformer',
46
+ },
47
+ {
48
+ namedImports: ['classTransformOptions'],
49
+ moduleSpecifier: '@rxap/nest-utilities',
50
+ },
51
+ {
52
+ namedImports: [className],
53
+ moduleSpecifier: filePath,
54
+ },
55
+ ]);
56
+ return {
57
+ returnType: className + '[]',
58
+ ...tsMorphTransform(project, sourceFile, classDeclaration, controllerName),
59
+ };
60
+ },
61
+ });
62
+ }
63
+ //# sourceMappingURL=coerce-get-children-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-get-children-operation.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-get-children-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,UAAU,0BAA0B,CAAC,OAAoD;IAC7F,IAAI,EACF,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,GAAG,OAAO,CAAC;IACZ,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,cAAc,GAAG,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7D,SAAS,KAAK,EAAE,CAAC;IACjB,SAAS,CAAC,IAAI,CAAC;QACb,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;QACrB,GAAG,OAAO;QACV,kDAAkD;QAClD,cAAc;QACd,aAAa,EAAE,cAAc;QAC7B,SAAS;QACT,gBAAgB,EAAE,CAChB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,EAAE;YAEF,MAAM,EACJ,SAAS,EACT,QAAQ,GACT,GAAG,cAAc,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;gBAC3C,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;wBACzD,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI;wBAChB,MAAM,EAAE,IAAI;qBACb;iBACF;aACF,CAAC,CAAC;YAEH,aAAa,CAAC,UAAU,EAAE;gBACxB;oBACE,YAAY,EAAE,CAAE,iBAAiB,CAAE;oBACnC,eAAe,EAAE,mBAAmB;iBACrC;gBACD;oBACE,YAAY,EAAE,CAAE,uBAAuB,CAAE;oBACzC,eAAe,EAAE,sBAAsB;iBACxC;gBACD;oBACE,YAAY,EAAE,CAAE,SAAS,CAAE;oBAC3B,eAAe,EAAE,QAAQ;iBAC1B;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,SAAS,GAAG,IAAI;gBAC5B,GAAG,gBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;aAC5E,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CoerceOperationOptions } from './coerce-operation';
2
+ import { DtoClassProperty } from './create-dto-class';
3
+ export interface CoerceGetDataGridOperationOptions extends Omit<CoerceOperationOptions, 'operationName'> {
4
+ collection?: boolean;
5
+ propertyList?: DtoClassProperty[];
6
+ }
7
+ export declare function CoerceGetDataGridOperation(options: Readonly<CoerceGetDataGridOperationOptions>): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,33 @@
1
+ import { CoerceSuffix } from '@rxap/schematics-utilities';
2
+ import { CoerceImports } from '../ts-morph/coerce-imports';
3
+ import { CoerceDtoClass } from './coerce-dto-class';
4
+ import { CoerceOperation, } from './coerce-operation';
5
+ export function CoerceGetDataGridOperation(options) {
6
+ let { tsMorphTransform, collection, propertyList, controllerName, } = options;
7
+ collection ??= false;
8
+ tsMorphTransform ??= () => ({});
9
+ propertyList ??= [];
10
+ controllerName =
11
+ CoerceSuffix(controllerName, '-data-grid');
12
+ return CoerceOperation({
13
+ ...options,
14
+ controllerName,
15
+ operationName: 'get',
16
+ tsMorphTransform: (project, sourceFile, classDeclaration, controllerName) => {
17
+ const { className: dtoClassName, filePath: dtoFilePath, } = CoerceDtoClass({
18
+ project,
19
+ name: controllerName,
20
+ propertyList,
21
+ });
22
+ CoerceImports(sourceFile, {
23
+ namedImports: [dtoClassName],
24
+ moduleSpecifier: dtoFilePath,
25
+ });
26
+ return {
27
+ returnType: dtoClassName + (collection ? '[]' : ''),
28
+ ...tsMorphTransform(project, sourceFile, classDeclaration, controllerName),
29
+ };
30
+ },
31
+ });
32
+ }
33
+ //# sourceMappingURL=coerce-get-data-grid-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-get-data-grid-operation.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-get-data-grid-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,UAAU,0BAA0B,CAAC,OAAoD;IAC7F,IAAI,EACF,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,GACf,GAAG,OAAO,CAAC;IACZ,UAAU,KAAK,KAAK,CAAC;IACrB,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,YAAY,KAAK,EAAE,CAAC;IACpB,cAAc;QACZ,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,eAAe,CAAC;QACrB,GAAG,OAAO;QACV,cAAc;QACd,aAAa,EAAE,KAAK;QACpB,gBAAgB,EAAE,CAChB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,EAAE;YAEF,MAAM,EACJ,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,WAAW,GACtB,GAAG,cAAc,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,cAAc;gBACpB,YAAY;aACb,CAAC,CAAC;YAEH,aAAa,CAAC,UAAU,EAAE;gBACxB,YAAY,EAAE,CAAE,YAAY,CAAE;gBAC9B,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,gBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;aAC5E,CAAC;QAEJ,CAAC;KACF,CAAC,CAAC;AAEL,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { ClassDeclaration, Project, SourceFile } from 'ts-morph';
2
+ import { OperationOptions } from './add-operation-to-controller';
3
+ import { CoerceOperationOptions } from './coerce-operation';
4
+ import { DtoClassProperty } from './create-dto-class';
5
+ export interface GetPageOperationColumn {
6
+ name: string;
7
+ type?: string;
8
+ /**
9
+ * the property name of the source object. if not defined the name will be used
10
+ */
11
+ source?: string;
12
+ }
13
+ export interface CoerceGetPageOperationOptions extends Omit<Omit<CoerceOperationOptions, 'operationName'>, 'tsMorphTransform'> {
14
+ columnList: GetPageOperationColumn[];
15
+ tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration, controllerName: string, pageClassName: string, rowClassName: string) => Partial<OperationOptions>;
16
+ /**
17
+ * the name of the property used as row id value. defaults to the value 'uuid'. If null the __rowId property will be
18
+ * set to the absolute row index absolute row index = page * pageSize + rowIndex
19
+ */
20
+ rowIdProperty?: string | null;
21
+ operationName?: string;
22
+ /**
23
+ * true - the suffix '-table' will not be enforced for the controller name
24
+ */
25
+ skipCoerceTableSuffix?: boolean;
26
+ /**
27
+ * The base name of the page and row DTO class name. Defaults to the controller name
28
+ */
29
+ responseDtoName?: string;
30
+ coerceToRowDtoMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, rowClassName: string, options: CoerceGetPageOperationOptions) => void;
31
+ coerceToPageDtoMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, pageClassName: string, rowClassName: string, options: CoerceGetPageOperationOptions) => void;
32
+ coerceGetPageDataMethod?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, options: CoerceGetPageOperationOptions) => void;
33
+ }
34
+ export declare function GetPageOperationColumnToDtoClassProperty(column: GetPageOperationColumn): DtoClassProperty;
35
+ export declare function GetPageOperationColumnToCodeText(column: GetPageOperationColumn): string;
36
+ export declare function CoerceToRowDtoMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, rowClassName: string, options: CoerceGetPageOperationOptions): void;
37
+ export declare function CoerceToPageDtoMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, pageClassName: string, rowClassName: string, options: CoerceGetPageOperationOptions): void;
38
+ export declare function CoerceGetPageDataMethod(sourceFile: SourceFile, classDeclaration: ClassDeclaration, options: CoerceGetPageOperationOptions): void;
39
+ export declare function CoerceGetPageOperation(options: Readonly<CoerceGetPageOperationOptions>): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,248 @@
1
+ import { camelize, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { joinWithDash } from '@rxap/utilities';
3
+ import { Scope, } from 'ts-morph';
4
+ import { CoerceClassMethod } from '../coerce-class-method';
5
+ import { CoerceImports } from '../ts-morph/coerce-imports';
6
+ import { CoerceTypeAlias } from '../ts-morph/coerce-type-alias';
7
+ import { CoerceOperation, } from './coerce-operation';
8
+ import { CoercePageDtoClass } from './coerce-page-dto-class';
9
+ import { CoerceRowDtoClass } from './coerce-row-dto-class';
10
+ export function GetPageOperationColumnToDtoClassProperty(column) {
11
+ return {
12
+ name: column.name,
13
+ type: column.type?.replace(/\[]$/, '').replace(/^Array<(.+)>/, '$1') ?? 'unknown',
14
+ isArray: column.type?.endsWith('[]') || column.type?.startsWith('Array<'),
15
+ isOptional: false,
16
+ isType: false,
17
+ };
18
+ }
19
+ export function GetPageOperationColumnToCodeText(column) {
20
+ let propertyName = camelize(column.name);
21
+ const prefixMatch = column.name.match(/^(_+)/);
22
+ if (prefixMatch) {
23
+ propertyName = camelize(column.name.replace(/^_+/, ''));
24
+ propertyName = prefixMatch[0] + propertyName;
25
+ }
26
+ return `${propertyName}: item.${column.source ?? camelize(column.name)}`;
27
+ }
28
+ export function CoerceToRowDtoMethod(sourceFile, classDeclaration, rowClassName, options) {
29
+ CoerceClassMethod(classDeclaration, 'toRowDto', {
30
+ scope: Scope.Private,
31
+ returnType: rowClassName,
32
+ parameters: [
33
+ {
34
+ name: 'item',
35
+ type: 'RawRowData',
36
+ },
37
+ {
38
+ name: 'index',
39
+ type: 'number',
40
+ },
41
+ {
42
+ name: 'pageIndex',
43
+ type: 'number',
44
+ },
45
+ {
46
+ name: 'pageSize',
47
+ type: 'number',
48
+ },
49
+ {
50
+ name: 'list',
51
+ type: 'RawRowData[]',
52
+ },
53
+ ],
54
+ statements: [
55
+ 'return {',
56
+ ' __rowId: ' +
57
+ (options.rowIdProperty === null ?
58
+ '(pageIndex * pageSize + index).toFixed(0)' :
59
+ `item.${options.rowIdProperty ?? 'uuid'}`) + ',\n ',
60
+ options.columnList.map(GetPageOperationColumnToCodeText).join(',\n '),
61
+ '};',
62
+ ],
63
+ });
64
+ }
65
+ export function CoerceToPageDtoMethod(sourceFile, classDeclaration, pageClassName, rowClassName, options) {
66
+ CoerceClassMethod(classDeclaration, 'toPageDto', {
67
+ scope: Scope.Private,
68
+ returnType: pageClassName,
69
+ parameters: [
70
+ {
71
+ name: 'list',
72
+ type: 'RawRowData[]',
73
+ },
74
+ {
75
+ name: 'total',
76
+ type: 'number',
77
+ },
78
+ {
79
+ name: 'pageIndex',
80
+ type: 'number',
81
+ },
82
+ {
83
+ name: 'pageSize',
84
+ type: 'number',
85
+ },
86
+ {
87
+ name: 'sortBy',
88
+ type: 'string',
89
+ },
90
+ {
91
+ name: 'sortDirection',
92
+ type: 'string',
93
+ },
94
+ {
95
+ name: 'filter',
96
+ type: 'FilterQuery[]',
97
+ },
98
+ ],
99
+ statements: [
100
+ 'return {',
101
+ ' total, pageIndex, pageSize, sortBy, sortDirection, filter,',
102
+ ` rows: list.map((item, index) => this.toRowDto(item, index, pageIndex, pageSize, list))`,
103
+ '};',
104
+ ],
105
+ });
106
+ }
107
+ export function CoerceGetPageDataMethod(sourceFile, classDeclaration, options) {
108
+ CoerceClassMethod(classDeclaration, 'getPageData', {
109
+ scope: Scope.Public,
110
+ returnType: 'Promise<{ list: RawRowData[], total: number }>',
111
+ isAsync: true,
112
+ parameters: [
113
+ {
114
+ name: 'sortBy',
115
+ type: 'string',
116
+ },
117
+ {
118
+ name: 'sortDirection',
119
+ type: 'string',
120
+ },
121
+ {
122
+ name: 'pageSize',
123
+ type: 'number',
124
+ },
125
+ {
126
+ name: 'pageIndex',
127
+ type: 'number',
128
+ },
129
+ {
130
+ name: 'filter',
131
+ type: 'FilterQuery[]',
132
+ },
133
+ ],
134
+ statements: [
135
+ `const response = await ((() => { throw new NotImplementedException() })() as any).execute({
136
+ parameters: {
137
+ page: pageIndex,
138
+ size: pageSize,
139
+ sort: sortBy,
140
+ order: sortDirection,
141
+ filter: filter.map((item) => \`\${ item.column }:\${ item.filter }\`).join(';'),
142
+ },
143
+ });`,
144
+ 'return {',
145
+ ' list: response.entities ?? [],',
146
+ ' total: response.maxCount ?? 0,',
147
+ '};',
148
+ ],
149
+ });
150
+ }
151
+ export function CoerceGetPageOperation(options) {
152
+ let { skipCoerceTableSuffix, operationName, rowIdProperty, tsMorphTransform, columnList, controllerName, responseDtoName, context, coerceToRowDtoMethod, coerceToPageDtoMethod, coerceGetPageDataMethod, } = options;
153
+ tsMorphTransform ??= () => ({});
154
+ controllerName = skipCoerceTableSuffix ? controllerName : CoerceSuffix(controllerName, '-table');
155
+ operationName ??= 'get-page';
156
+ responseDtoName ??= joinWithDash([context, controllerName]);
157
+ coerceToRowDtoMethod ??= CoerceToRowDtoMethod;
158
+ coerceToPageDtoMethod ??= CoerceToPageDtoMethod;
159
+ coerceGetPageDataMethod ??= CoerceGetPageDataMethod;
160
+ return CoerceOperation({
161
+ ...options,
162
+ controllerName,
163
+ operationName,
164
+ tsMorphTransform: (project, sourceFile, classDeclaration, controllerName) => {
165
+ const { className: rowClassName, filePath: rowFilePath, } = CoerceRowDtoClass({
166
+ project,
167
+ name: responseDtoName,
168
+ propertyList: columnList.map(GetPageOperationColumnToDtoClassProperty),
169
+ rowIdType: rowIdProperty === null ? null : undefined,
170
+ });
171
+ const { className: pageClassName, filePath: pageFilePath, } = CoercePageDtoClass({
172
+ project,
173
+ name: responseDtoName,
174
+ rowClassName,
175
+ rowFilePath,
176
+ });
177
+ coerceGetPageDataMethod(sourceFile, classDeclaration, options);
178
+ coerceToRowDtoMethod(sourceFile, classDeclaration, rowClassName, options);
179
+ coerceToPageDtoMethod(sourceFile, classDeclaration, pageClassName, rowClassName, options);
180
+ CoerceImports(sourceFile, [
181
+ {
182
+ namedImports: ['FilterQuery', 'FilterQueryPipe'],
183
+ moduleSpecifier: '@rxap/nest-utilities',
184
+ },
185
+ {
186
+ namedImports: ['plainToInstance'],
187
+ moduleSpecifier: 'class-transformer',
188
+ },
189
+ {
190
+ namedImports: ['classTransformOptions'],
191
+ moduleSpecifier: '@rxap/nest-utilities',
192
+ },
193
+ {
194
+ namedImports: [pageClassName],
195
+ moduleSpecifier: pageFilePath,
196
+ },
197
+ {
198
+ namedImports: [rowClassName],
199
+ moduleSpecifier: rowFilePath,
200
+ },
201
+ ]);
202
+ CoerceTypeAlias(sourceFile, 'RawRowData', {
203
+ isExported: false,
204
+ type: 'any',
205
+ });
206
+ return {
207
+ queryList: [
208
+ {
209
+ name: 'pageIndex',
210
+ type: 'number',
211
+ defaultValue: '0',
212
+ },
213
+ {
214
+ name: 'pageSize',
215
+ type: 'number',
216
+ defaultValue: '5',
217
+ },
218
+ {
219
+ name: 'sortDirection',
220
+ type: 'string',
221
+ defaultValue: w => w.quote('desc'),
222
+ },
223
+ {
224
+ name: 'sortBy',
225
+ type: 'string',
226
+ defaultValue: w => w.quote('__updatedAt'),
227
+ },
228
+ {
229
+ name: 'filter',
230
+ type: 'FilterQuery[]',
231
+ pipeList: ['new FilterQueryPipe()'],
232
+ },
233
+ ],
234
+ returnType: pageClassName,
235
+ statements: [
236
+ 'const data = await this.getPageData(sortBy, sortDirection, pageSize, pageIndex, filter);',
237
+ 'return plainToInstance(',
238
+ ' ' + pageClassName + ',',
239
+ ` this.toPageDto(data.list, data.total, pageIndex, pageSize, sortBy, sortDirection, filter),`,
240
+ ' classTransformOptions',
241
+ ');',
242
+ ],
243
+ ...tsMorphTransform(project, sourceFile, classDeclaration, controllerName, pageClassName, rowClassName),
244
+ };
245
+ },
246
+ });
247
+ }
248
+ //# sourceMappingURL=coerce-get-page-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-get-page-operation.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-get-page-operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CoerceOperationOptions } from './coerce-operation';
2
+ export type CoerceGetRootOperationOptions = Omit<CoerceOperationOptions, 'operationName'>;
3
+ export declare function CoerceGetRootOperation(options: Readonly<CoerceGetRootOperationOptions>): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,56 @@
1
+ import { classify, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { CoerceImports } from '../ts-morph/coerce-imports';
3
+ import { CoerceDtoClass } from './coerce-dto-class';
4
+ import { CoerceOperation, } from './coerce-operation';
5
+ export function CoerceGetRootOperation(options) {
6
+ let { tsMorphTransform, controllerName, } = options;
7
+ tsMorphTransform ??= () => ({});
8
+ controllerName = CoerceSuffix(controllerName, '-tree-table');
9
+ return CoerceOperation({
10
+ ...options,
11
+ controllerName,
12
+ operationName: 'get-root',
13
+ tsMorphTransform: (project, sourceFile, classDeclaration, controllerName) => {
14
+ const { className, filePath, } = CoerceDtoClass({
15
+ project,
16
+ name: CoerceSuffix(controllerName, '-item'),
17
+ propertyList: [
18
+ {
19
+ name: 'uuid',
20
+ type: 'string',
21
+ },
22
+ {
23
+ name: 'hasChildren',
24
+ type: 'boolean',
25
+ },
26
+ {
27
+ name: 'children',
28
+ type: classify(CoerceSuffix(controllerName, '-item-dto')),
29
+ isArray: true,
30
+ isOptional: true,
31
+ isType: true,
32
+ },
33
+ ],
34
+ });
35
+ CoerceImports(sourceFile, [
36
+ {
37
+ namedImports: ['plainToInstance'],
38
+ moduleSpecifier: 'class-transformer',
39
+ },
40
+ {
41
+ namedImports: ['classTransformOptions'],
42
+ moduleSpecifier: '@rxap/nest-utilities',
43
+ },
44
+ {
45
+ namedImports: [className],
46
+ moduleSpecifier: filePath,
47
+ },
48
+ ]);
49
+ return {
50
+ returnType: className + '[]',
51
+ ...tsMorphTransform(project, sourceFile, classDeclaration, controllerName),
52
+ };
53
+ },
54
+ });
55
+ }
56
+ //# sourceMappingURL=coerce-get-root-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-get-root-operation.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-get-root-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,UAAU,sBAAsB,CAAC,OAAgD;IACrF,IAAI,EACF,gBAAgB,EAChB,cAAc,GACf,GAAG,OAAO,CAAC;IACZ,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,cAAc,GAAG,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7D,OAAO,eAAe,CAAC;QACrB,GAAG,OAAO;QACV,cAAc;QACd,aAAa,EAAE,UAAU;QACzB,gBAAgB,EAAE,CAChB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,EAAE;YAEF,MAAM,EACJ,SAAS,EACT,QAAQ,GACT,GAAG,cAAc,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;gBAC3C,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;wBACzD,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI;wBAChB,MAAM,EAAE,IAAI;qBACb;iBACF;aACF,CAAC,CAAC;YAEH,aAAa,CAAC,UAAU,EAAE;gBACxB;oBACE,YAAY,EAAE,CAAE,iBAAiB,CAAE;oBACnC,eAAe,EAAE,mBAAmB;iBACrC;gBACD;oBACE,YAAY,EAAE,CAAE,uBAAuB,CAAE;oBACzC,eAAe,EAAE,sBAAsB;iBACxC;gBACD;oBACE,YAAY,EAAE,CAAE,SAAS,CAAE;oBAC3B,eAAe,EAAE,QAAQ;iBAC1B;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE,SAAS,GAAG,IAAI;gBAC5B,GAAG,gBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;aAC5E,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { ClassDeclaration, Project, SourceFile } from 'ts-morph';
3
+ import { TsMorphNestProjectTransformOptions } from '../ts-morph-transform';
4
+ export interface CoerceNestControllerOptions extends TsMorphNestProjectTransformOptions {
5
+ name: string;
6
+ nestModule?: string;
7
+ controllerPrefix?: string;
8
+ coerceModule?: boolean;
9
+ tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration, options: CoerceNestControllerOptions) => void;
10
+ skipModuleImport?: boolean;
11
+ overwrite?: boolean;
12
+ }
13
+ export declare function CoerceNestController(options: CoerceNestControllerOptions): Rule;
@@ -0,0 +1,73 @@
1
+ import { chain, noop, } from '@angular-devkit/schematics';
2
+ import { classify, dasherize, } from '@rxap/utilities';
3
+ import { CoerceClass } from '../coerce-class';
4
+ import { TsMorphNestProjectTransformRule, } from '../ts-morph-transform';
5
+ import { CoerceDecorator } from '../ts-morph/coerce-decorator';
6
+ import { CoerceImports } from '../ts-morph/coerce-imports';
7
+ import { AddNestModuleController } from './add-nest-module-controller';
8
+ import { AssertNestProject } from './assert-nest-project';
9
+ import { CoerceNestModule } from './coerce-nest-module';
10
+ export function CoerceNestController(options) {
11
+ const { project, feature, shared, directory, coerceModule, skipModuleImport, overwrite, } = options;
12
+ let { name, tsMorphTransform, nestModule, controllerPrefix, } = options;
13
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
14
+ tsMorphTransform ??= () => { };
15
+ name = dasherize(name);
16
+ nestModule ??= name;
17
+ controllerPrefix ??= name;
18
+ return chain([
19
+ AssertNestProject({ project, feature, shared }),
20
+ coerceModule ? CoerceNestModule({
21
+ project,
22
+ feature,
23
+ shared,
24
+ name: nestModule,
25
+ directory,
26
+ }) : noop(),
27
+ TsMorphNestProjectTransformRule({
28
+ project,
29
+ feature,
30
+ shared,
31
+ directory,
32
+ }, (project, [controllerSourceFile, moduleSourceFile]) => {
33
+ const controllerDecoratorArguments = controllerPrefix ?
34
+ [w => w.quote(controllerPrefix)] :
35
+ [];
36
+ const classDeclaration = CoerceClass(controllerSourceFile, classify(name) + 'Controller', {
37
+ isExported: true,
38
+ decorators: [
39
+ {
40
+ name: 'Controller',
41
+ arguments: controllerDecoratorArguments,
42
+ },
43
+ ],
44
+ });
45
+ if (overwrite) {
46
+ CoerceDecorator(classDeclaration, 'Controller').set({
47
+ arguments: controllerDecoratorArguments,
48
+ });
49
+ }
50
+ CoerceImports(controllerSourceFile, [
51
+ {
52
+ namedImports: ['Controller'],
53
+ moduleSpecifier: '@nestjs/common',
54
+ },
55
+ ]);
56
+ if (!skipModuleImport) {
57
+ if (moduleSourceFile.getClass(classify(nestModule) + 'Module')) {
58
+ AddNestModuleController(moduleSourceFile, classify(name) + 'Controller', [
59
+ {
60
+ namedImports: [classify(name) + 'Controller'],
61
+ moduleSpecifier: './' + dasherize(name) + '.controller',
62
+ },
63
+ ]);
64
+ }
65
+ }
66
+ tsMorphTransform(project, controllerSourceFile, classDeclaration, options);
67
+ }, [
68
+ `${dasherize(name)}.controller.ts?`,
69
+ `${dasherize(nestModule)}.module.ts?`,
70
+ ]),
71
+ ]);
72
+ }
73
+ //# sourceMappingURL=coerce-nest-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-nest-controller.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/nest/coerce-nest-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { ClassDeclaration, Project, SourceFile } from 'ts-morph';
3
+ import { TsMorphNestProjectTransformOptions } from '../ts-morph-transform';
4
+ export interface CoerceNestModuleOptions extends TsMorphNestProjectTransformOptions {
5
+ name: string;
6
+ tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration) => void;
7
+ }
8
+ export declare function CoerceNestModule(options: CoerceNestModuleOptions): Rule;
@@ -0,0 +1,51 @@
1
+ import { chain, noop, } from '@angular-devkit/schematics';
2
+ import { classify, dasherize, } from '@rxap/utilities';
3
+ import { CoerceClass } from '../coerce-class';
4
+ import { TsMorphNestProjectTransformRule, } from '../ts-morph-transform';
5
+ import { CoerceImports } from '../ts-morph/coerce-imports';
6
+ import { AddNestModuleToAppModule } from './add-nest-module-to-app-module';
7
+ import { AssertNestProject } from './assert-nest-project';
8
+ export function CoerceNestModule(options) {
9
+ const { name, project, feature, shared, directory, } = options;
10
+ let { tsMorphTransform } = options;
11
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
12
+ tsMorphTransform ??= () => { };
13
+ return chain([
14
+ AssertNestProject({
15
+ project,
16
+ feature,
17
+ shared,
18
+ }),
19
+ TsMorphNestProjectTransformRule({
20
+ project,
21
+ feature,
22
+ shared,
23
+ directory,
24
+ }, (project, [sourceFile]) => {
25
+ const classDeclaration = CoerceClass(sourceFile, classify(name) + 'Module', {
26
+ isExported: true,
27
+ decorators: [
28
+ {
29
+ name: 'Module',
30
+ arguments: ['{}'],
31
+ },
32
+ ],
33
+ });
34
+ CoerceImports(sourceFile, [
35
+ {
36
+ namedImports: ['Module'],
37
+ moduleSpecifier: '@nestjs/common',
38
+ },
39
+ ]);
40
+ tsMorphTransform(project, sourceFile, classDeclaration);
41
+ }, [`${dasherize(name)}.module.ts?`]),
42
+ name !== 'app' ? AddNestModuleToAppModule({
43
+ project,
44
+ feature,
45
+ shared,
46
+ name,
47
+ directory,
48
+ }) : noop(),
49
+ ]);
50
+ }
51
+ //# sourceMappingURL=coerce-nest-module.js.map