@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,80 @@
1
+ import { classify, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { Writers } from 'ts-morph';
3
+ import { CoerceSourceFile } from '../coerce-source-file';
4
+ import { TsMorphAngularProjectTransformRule } from '../ts-morph-transform';
5
+ import { CoerceFunction } from '../ts-morph/coerce-function';
6
+ import { CoerceImports } from '../ts-morph/coerce-imports';
7
+ import { CoerceStatements } from '../ts-morph/coerce-statements';
8
+ import { CoerceFormBuilderProvider } from './coerce-form-builder-provider';
9
+ import { CoerceFormComponentProvider } from './coerce-form-component-provider';
10
+ import { CoerceFormProvider } from './coerce-form-provider';
11
+ export function CoerceFormProvidersFile(options) {
12
+ const { name } = options;
13
+ const className = CoerceSuffix(classify(name), 'Form');
14
+ const interfaceName = `I${className}`;
15
+ return TsMorphAngularProjectTransformRule(options, (project) => {
16
+ const sourceFile = CoerceSourceFile(project, '/form.providers.ts');
17
+ CoerceFormProvider(sourceFile, className);
18
+ CoerceFormComponentProvider(sourceFile, {
19
+ provide: 'RXAP_FORM_DEFINITION',
20
+ useFactory: 'FormFactory',
21
+ deps: ['INJECTOR', '[ new Optional(), RXAP_FORM_INITIAL_STATE ]'],
22
+ });
23
+ CoerceFormBuilderProvider(sourceFile, {
24
+ provide: 'RXAP_FORM_DEFINITION_BUILDER',
25
+ useFactory: 'FormBuilderFactory',
26
+ deps: ['INJECTOR'],
27
+ });
28
+ const formFactoryFunctionDeclaration = CoerceFunction(sourceFile, 'FormFactory', {
29
+ parameters: [
30
+ {
31
+ name: 'injector',
32
+ type: 'Injector',
33
+ },
34
+ {
35
+ name: 'state',
36
+ type: Writers.unionType(interfaceName, 'null'),
37
+ },
38
+ ],
39
+ returnType: className,
40
+ isExported: true,
41
+ });
42
+ CoerceStatements(formFactoryFunctionDeclaration, [
43
+ `return new RxapFormBuilder<${interfaceName}>(${className}, injector).build(state ?? {});`,
44
+ ]);
45
+ const formBuilderFactoryDeclaration = CoerceFunction(sourceFile, 'FormBuilderFactory', {
46
+ parameters: [
47
+ {
48
+ name: 'injector',
49
+ type: 'Injector',
50
+ },
51
+ ],
52
+ returnType: `RxapFormBuilder<I${className}>`,
53
+ });
54
+ CoerceStatements(formBuilderFactoryDeclaration, [
55
+ `return new RxapFormBuilder<${interfaceName}>(${className}, injector);`,
56
+ ]);
57
+ CoerceImports(sourceFile, {
58
+ namedImports: [className, interfaceName],
59
+ moduleSpecifier: `./${name}.form`,
60
+ });
61
+ CoerceImports(sourceFile, {
62
+ namedImports: [
63
+ 'INJECTOR',
64
+ 'Injector',
65
+ 'Optional',
66
+ ],
67
+ moduleSpecifier: '@angular/core',
68
+ });
69
+ CoerceImports(sourceFile, {
70
+ namedImports: [
71
+ 'RxapFormBuilder',
72
+ 'RXAP_FORM_DEFINITION_BUILDER',
73
+ 'RXAP_FORM_DEFINITION',
74
+ 'RXAP_FORM_INITIAL_STATE',
75
+ ],
76
+ moduleSpecifier: '@rxap/forms',
77
+ });
78
+ });
79
+ }
80
+ //# sourceMappingURL=coerce-form-providers-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-form-providers-file.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-form-providers-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CoerceTableActionOptions } from './coerce-table-action';
2
+ export interface CoerceFormTableActionOptions extends CoerceTableActionOptions {
3
+ loadOperationId?: string;
4
+ scope?: string | null;
5
+ }
6
+ export declare function CoerceFormTableActionRule(options: CoerceFormTableActionOptions): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,91 @@
1
+ import { classify } from '@rxap/schematics-utilities';
2
+ import { Scope, } from 'ts-morph';
3
+ import { CoerceClassConstructor } from '../coerce-class-constructor';
4
+ import { OperationIdToClassImportPath, OperationIdToClassName, } from '../nest/operation-id-utilities';
5
+ import { CoerceImports } from '../ts-morph/coerce-imports';
6
+ import { CoerceParameterDeclaration } from '../ts-morph/coerce-parameter-declaration';
7
+ import { CoerceTableActionRule, } from './coerce-table-action';
8
+ export function CoerceFormTableActionRule(options) {
9
+ let { type, loadOperationId, tsMorphTransform, scope, } = options;
10
+ tsMorphTransform ??= () => ({});
11
+ return CoerceTableActionRule({
12
+ ...options,
13
+ tsMorphTransform: (project, sourceFile, classDeclaration) => {
14
+ CoerceImports(sourceFile, {
15
+ moduleSpecifier: '@angular/core',
16
+ namedImports: ['ChangeDetectorRef', 'Inject', 'INJECTOR', 'Injector'],
17
+ });
18
+ const openFormWindowMethod = `Open${classify(type)}FormWindowMethod`;
19
+ CoerceImports(sourceFile, {
20
+ moduleSpecifier: `../../${type}-form/open-${type}-form-window.method`,
21
+ namedImports: [openFormWindowMethod],
22
+ });
23
+ CoerceImports(sourceFile, {
24
+ namedImports: ['firstValueFrom'],
25
+ moduleSpecifier: 'rxjs',
26
+ });
27
+ if (loadOperationId) {
28
+ CoerceImports(sourceFile, {
29
+ moduleSpecifier: OperationIdToClassImportPath(loadOperationId, scope),
30
+ namedImports: [OperationIdToClassName(loadOperationId)],
31
+ });
32
+ }
33
+ const [constructorDeclaration] = CoerceClassConstructor(classDeclaration);
34
+ CoerceParameterDeclaration(constructorDeclaration, 'openFormWindow').set({
35
+ name: 'openFormWindow',
36
+ type: openFormWindowMethod,
37
+ isReadonly: true,
38
+ scope: Scope.Private,
39
+ decorators: [
40
+ {
41
+ name: 'Inject',
42
+ arguments: [openFormWindowMethod],
43
+ },
44
+ ],
45
+ });
46
+ CoerceParameterDeclaration(constructorDeclaration, 'injector').set({
47
+ type: 'Injector',
48
+ isReadonly: true,
49
+ scope: Scope.Private,
50
+ decorators: [
51
+ {
52
+ name: 'Inject',
53
+ arguments: ['INJECTOR'],
54
+ },
55
+ ],
56
+ });
57
+ CoerceParameterDeclaration(constructorDeclaration, 'cdr').set({
58
+ type: 'ChangeDetectorRef',
59
+ isReadonly: true,
60
+ scope: Scope.Private,
61
+ });
62
+ if (loadOperationId) {
63
+ CoerceParameterDeclaration(constructorDeclaration, 'getInitial').set({
64
+ isReadonly: true,
65
+ scope: Scope.Private,
66
+ type: OperationIdToClassName(loadOperationId),
67
+ });
68
+ }
69
+ const statements = [];
70
+ statements.push(`console.log(\`action row type: ${type}\`, parameters);`);
71
+ if (loadOperationId) {
72
+ statements.push(`const { __rowId: rowId } = parameters;`);
73
+ statements.push(`if (!rowId) { throw new Error('The table action ${type} is called with a row object that does not have the property __rowId.'); }`);
74
+ statements.push(`const initial = await this.getInitial.call({parameters: { rowId }});`);
75
+ }
76
+ else {
77
+ statements.push(`const initial = parameters;`);
78
+ }
79
+ statements.push(`this.cdr.markForCheck();`);
80
+ statements.push(`return firstValueFrom(this.openFormWindow.call(initial, {injector: this.injector, context: { rowId }}));`);
81
+ return {
82
+ statements,
83
+ isAsync: true,
84
+ scope: Scope.Public,
85
+ returnType: 'Promise<any>',
86
+ ...tsMorphTransform(project, sourceFile, classDeclaration),
87
+ };
88
+ },
89
+ });
90
+ }
91
+ //# sourceMappingURL=coerce-form-table-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-form-table-action.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-form-table-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ClassDeclaration, MethodDeclarationStructure, OptionalKind, Project, SourceFile } from 'ts-morph';
2
+ import { TsMorphAngularProjectTransformOptions } from '../ts-morph-transform';
3
+ export interface CoerceMethodClassOptions extends TsMorphAngularProjectTransformOptions {
4
+ name: string;
5
+ overwrite?: boolean;
6
+ providedIn?: string;
7
+ tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration) => Partial<Omit<OptionalKind<MethodDeclarationStructure>, 'name'>>;
8
+ }
9
+ export declare function CoerceMethodClass(options: CoerceMethodClassOptions): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,48 @@
1
+ import { classify, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { Writers, } from 'ts-morph';
3
+ import { CoerceClass } from '../coerce-class';
4
+ import { CoerceClassMethod } from '../coerce-class-method';
5
+ import { CoerceSourceFile } from '../coerce-source-file';
6
+ import { TsMorphAngularProjectTransformRule, } from '../ts-morph-transform';
7
+ import { CoerceImports } from '../ts-morph/coerce-imports';
8
+ export function CoerceMethodClass(options) {
9
+ let { overwrite, name, tsMorphTransform, providedIn, } = options;
10
+ tsMorphTransform ??= () => ({});
11
+ const className = classify(CoerceSuffix(name, 'Method'));
12
+ const fileName = CoerceSuffix(name, '.method.ts');
13
+ return TsMorphAngularProjectTransformRule(options, (project) => {
14
+ const sourceFile = CoerceSourceFile(project, fileName);
15
+ const classDeclaration = CoerceClass(sourceFile, className, {
16
+ isExported: true,
17
+ decorators: [
18
+ {
19
+ name: 'Injectable',
20
+ arguments: providedIn ? [Writers.object({ providedIn })] : [],
21
+ },
22
+ ],
23
+ implements: ['Method'],
24
+ });
25
+ CoerceImports(sourceFile, {
26
+ moduleSpecifier: '@rxap/pattern',
27
+ namedImports: ['Method'],
28
+ });
29
+ CoerceImports(sourceFile, {
30
+ moduleSpecifier: '@angular/core',
31
+ namedImports: ['Injectable'],
32
+ });
33
+ const methodStructure = tsMorphTransform(project, sourceFile, classDeclaration);
34
+ methodStructure.parameters ??= [
35
+ {
36
+ name: 'parameters',
37
+ hasQuestionToken: true,
38
+ type: 'any',
39
+ },
40
+ ];
41
+ methodStructure.returnType ??= 'any';
42
+ const methodDeclaration = CoerceClassMethod(classDeclaration, 'call', methodStructure);
43
+ if (overwrite) {
44
+ methodDeclaration.set(methodStructure);
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=coerce-method-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-method-class.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-method-class.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAML,OAAO,GACR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAEL,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAa3D,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,IAAI,EACF,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,UAAU,GACX,GAAG,OAAO,CAAC;IACZ,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,OAAO,kCAAkC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QAE7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE;YAC1D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE;iBAChE;aACF;YACD,UAAU,EAAE,CAAE,QAAQ,CAAE;SACzB,CAAC,CAAC;QACH,aAAa,CAAC,UAAU,EAAE;YACxB,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,CAAE,QAAQ,CAAE;SAC3B,CAAC,CAAC;QACH,aAAa,CAAC,UAAU,EAAE;YACxB,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,CAAE,YAAY,CAAE;SAC/B,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,gBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACjF,eAAe,CAAC,UAAU,KAAK;YAC7B;gBACE,IAAI,EAAE,YAAY;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,IAAI,EAAE,KAAK;aACZ;SACF,CAAC;QACF,eAAe,CAAC,UAAU,KAAK,KAAK,CAAC;QACrC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QACvF,IAAI,SAAS,EAAE;YACb,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SACxC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { CoerceTableActionOptions } from './coerce-table-action';
2
+ export interface CoerceLinkTableActionRuleOptions extends CoerceTableActionOptions {
3
+ route?: string | null;
4
+ }
5
+ export declare function CoerceNavigationTableActionRule(options: CoerceLinkTableActionRuleOptions): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,68 @@
1
+ import { CoerceTableActionRule, } from './coerce-table-action';
2
+ import { CoerceClassConstructor } from '../coerce-class-constructor';
3
+ import { Scope, } from 'ts-morph';
4
+ import { CoerceParameterDeclaration } from '../ts-morph/coerce-parameter-declaration';
5
+ import { CoerceImports } from '../ts-morph/coerce-imports';
6
+ function extractAllProperties(route) {
7
+ const match = route.match(/\{\{([^}]+)}}/g);
8
+ if (!match) {
9
+ return [];
10
+ }
11
+ return Array.from(match).map(m => m.replace('{{', '').replace('}}', ''));
12
+ }
13
+ function buildDynamicRoute(route) {
14
+ const properties = extractAllProperties(route);
15
+ if (!properties.length) {
16
+ return route;
17
+ }
18
+ for (const property of properties) {
19
+ route = route.replace(`{{${property}}}`, `\${${property}}`);
20
+ }
21
+ return route;
22
+ }
23
+ export function CoerceNavigationTableActionRule(options) {
24
+ let { tsMorphTransform, tableName, type, route, } = options;
25
+ tsMorphTransform ??= () => ({});
26
+ route ??= '{{uuid}}';
27
+ return CoerceTableActionRule({
28
+ ...options,
29
+ tsMorphTransform: (project, sourceFile, classDeclaration) => {
30
+ CoerceImports(sourceFile, {
31
+ namedImports: ['Router', 'ActivatedRoute'],
32
+ moduleSpecifier: '@angular/router',
33
+ });
34
+ const [constructorDeclaration] = CoerceClassConstructor(classDeclaration);
35
+ CoerceParameterDeclaration(constructorDeclaration, 'router').set({
36
+ name: 'router',
37
+ type: 'Router',
38
+ isReadonly: true,
39
+ scope: Scope.Private,
40
+ });
41
+ CoerceParameterDeclaration(constructorDeclaration, 'route').set({
42
+ type: 'ActivatedRoute',
43
+ isReadonly: true,
44
+ scope: Scope.Private,
45
+ });
46
+ const properties = extractAllProperties(route);
47
+ const statements = [];
48
+ statements.push(`console.log(\`action row type: ${type}\`, parameters);`);
49
+ if (properties.length) {
50
+ statements.push(`const { ${properties.join(', ')} } = parameters;`);
51
+ for (const property of properties) {
52
+ statements.push(`if (!${property}) { throw new Error('The table action ${type} is called with a row object that does not have the property ${property}.'); }`);
53
+ }
54
+ statements.push(`return this.router.navigate([ \`${buildDynamicRoute(route)}\` ], { relativeTo: this.route } );`);
55
+ }
56
+ else {
57
+ statements.push(`return this.router.navigate([ '${route}' ], { relativeTo: this.route } );`);
58
+ }
59
+ return {
60
+ statements,
61
+ scope: Scope.Public,
62
+ returnType: 'Promise<any>',
63
+ ...tsMorphTransform(project, sourceFile, classDeclaration),
64
+ };
65
+ },
66
+ });
67
+ }
68
+ //# sourceMappingURL=coerce-navigation-table-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-navigation-table-action.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-navigation-table-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CoerceTableActionOptions } from './coerce-table-action';
2
+ export interface CoerceOperationTableActionRuleOptions extends CoerceTableActionOptions {
3
+ operationId: string;
4
+ scope?: string | null;
5
+ }
6
+ export declare function CoerceOperationTableActionRule(options: CoerceOperationTableActionRuleOptions): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,36 @@
1
+ import { Scope } from 'ts-morph';
2
+ import { CoerceClassConstructor } from '../coerce-class-constructor';
3
+ import { OperationIdToClassImportPath, OperationIdToClassName, } from '../nest/operation-id-utilities';
4
+ import { CoerceImports } from '../ts-morph/coerce-imports';
5
+ import { CoerceParameterDeclaration } from '../ts-morph/coerce-parameter-declaration';
6
+ import { CoerceTableActionRule, } from './coerce-table-action';
7
+ export function CoerceOperationTableActionRule(options) {
8
+ let { tsMorphTransform, operationId, tableName, type, scope, } = options;
9
+ tsMorphTransform ??= () => ({});
10
+ return CoerceTableActionRule({
11
+ ...options,
12
+ tsMorphTransform: (project, sourceFile, classDeclaration) => {
13
+ const [constructorDeclaration] = CoerceClassConstructor(classDeclaration);
14
+ CoerceParameterDeclaration(constructorDeclaration, 'method').set({
15
+ type: OperationIdToClassName(operationId),
16
+ isReadonly: true,
17
+ scope: Scope.Private,
18
+ });
19
+ CoerceImports(sourceFile, {
20
+ namedImports: [OperationIdToClassName(operationId)],
21
+ moduleSpecifier: OperationIdToClassImportPath(operationId, scope),
22
+ });
23
+ return {
24
+ statements: [
25
+ `console.log(\`action row type: ${type}\`, parameters);`,
26
+ `const { __rowId: rowId } = parameters;`,
27
+ `if (!rowId) { throw new Error('The table action ${type} is called with a row object that does not have the property rowId.'); }`,
28
+ `return this.method.call({ parameters: { rowId } });`,
29
+ ],
30
+ returnType: `Promise<void>`,
31
+ ...tsMorphTransform(project, sourceFile, classDeclaration),
32
+ };
33
+ },
34
+ });
35
+ }
36
+ //# sourceMappingURL=coerce-operation-table-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-operation-table-action.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-operation-table-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAEL,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,UAAU,8BAA8B,CAAC,OAA8C;IAC3F,IAAI,EACF,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,IAAI,EACJ,KAAK,GACN,GAAG,OAAO,CAAC;IACZ,gBAAgB,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAGhC,OAAO,qBAAqB,CAAC;QAC3B,GAAG,OAAO;QACV,gBAAgB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE;YAE1D,MAAM,CAAE,sBAAsB,CAAE,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YAE5E,0BAA0B,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC;gBAC/D,IAAI,EAAE,sBAAsB,CAAC,WAAW,CAAC;gBACzC,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;YAEH,aAAa,CAAC,UAAU,EAAE;gBACxB,YAAY,EAAE,CAAE,sBAAsB,CAAC,WAAW,CAAC,CAAE;gBACrD,eAAe,EAAE,4BAA4B,CAAC,WAAW,EAAE,KAAK,CAAC;aAClE,CAAC,CAAC;YAEH,OAAO;gBACL,UAAU,EAAE;oBACV,kCAAmC,IAAK,kBAAkB;oBAC1D,wCAAwC;oBACxC,mDAAoD,IAAK,0EAA0E;oBACnI,qDAAqD;iBACtD;gBACD,UAAU,EAAE,eAAe;gBAC3B,GAAG,gBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC;aAC5D,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AAEL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TsMorphAngularProjectTransformOptions } from '../ts-morph-transform';
2
+ import { Rule } from '@angular-devkit/schematics';
3
+ export interface CoerceOptionsDataSourceRuleOptions extends TsMorphAngularProjectTransformOptions {
4
+ name: string;
5
+ }
6
+ export declare function CoerceOptionsDataSourceRule(options: Readonly<CoerceOptionsDataSourceRuleOptions>): Rule;
@@ -0,0 +1,43 @@
1
+ import { CoerceDataSourceClass } from './coerce-data-source-class';
2
+ import { CoerceImports } from '../ts-morph/coerce-imports';
3
+ import { CoerceDecorator } from '../ts-morph/coerce-decorator';
4
+ import { Writers } from 'ts-morph';
5
+ import { dasherize } from '@rxap/schematics-utilities';
6
+ export function CoerceOptionsDataSourceRule(options) {
7
+ const { name, project, feature, directory, shared, } = options;
8
+ return CoerceDataSourceClass({
9
+ project,
10
+ feature,
11
+ directory,
12
+ shared,
13
+ name,
14
+ coerceExtends: (sourceFile, classDeclaration, options) => {
15
+ classDeclaration.setExtends(`StaticDataSource<ControlOptions>`);
16
+ CoerceImports(sourceFile, [
17
+ {
18
+ moduleSpecifier: '@rxap/data-source',
19
+ namedImports: ['StaticDataSource'],
20
+ },
21
+ {
22
+ moduleSpecifier: '@rxap/utilities',
23
+ namedImports: ['ControlOptions'],
24
+ },
25
+ ]);
26
+ },
27
+ coerceDecorator: (sourceFile, classDeclaration, options) => {
28
+ CoerceDecorator(classDeclaration, 'RxapStaticDataSource', {
29
+ arguments: [
30
+ Writers.object({
31
+ id: w => w.quote(dasherize(name)),
32
+ data: '[]',
33
+ }),
34
+ ],
35
+ });
36
+ CoerceImports(sourceFile, {
37
+ moduleSpecifier: '@rxap/data-source',
38
+ namedImports: ['RxapStaticDataSource'],
39
+ });
40
+ },
41
+ });
42
+ }
43
+ //# sourceMappingURL=coerce-options-data-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-options-data-source.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-options-data-source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAMvD,MAAM,UAAU,2BAA2B,CAAC,OAAqD;IAC/F,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,SAAS,EACT,MAAM,GACP,GAAG,OAAO,CAAC;IACZ,OAAO,qBAAqB,CAAC;QAC3B,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;QACJ,aAAa,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE;YACvD,gBAAgB,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;YAChE,aAAa,CAAC,UAAU,EAAE;gBACxB;oBACE,eAAe,EAAE,mBAAmB;oBACpC,YAAY,EAAE,CAAE,kBAAkB,CAAE;iBACrC;gBACD;oBACE,eAAe,EAAE,iBAAiB;oBAClC,YAAY,EAAE,CAAE,gBAAgB,CAAE;iBACnC;aACF,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE;YACzD,eAAe,CAAC,gBAAgB,EAAE,sBAAsB,EAAE;gBACxD,SAAS,EAAE;oBACT,OAAO,CAAC,MAAM,CAAC;wBACb,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,EAAE,IAAI;qBACX,CAAC;iBACH;aACF,CAAC,CAAC;YACH,aAAa,CAAC,UAAU,EAAE;gBACxB,eAAe,EAAE,mBAAmB;gBACpC,YAAY,EAAE,CAAE,sBAAsB,CAAE;aACzC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { TsMorphAngularProjectTransformOptions } from '../ts-morph-transform';
3
+ export type CoerceProjectFeatureOptions = Omit<TsMorphAngularProjectTransformOptions, 'directory' | 'shared'>;
4
+ export declare function CoerceProjectFeature(options: CoerceProjectFeatureOptions): Rule;
@@ -0,0 +1,30 @@
1
+ import { CoerceVariableDeclaration } from '../coerce-variable-declaration';
2
+ import { TsMorphAngularProjectTransformRule, } from '../ts-morph-transform';
3
+ import { CoerceImports } from '../ts-morph/coerce-imports';
4
+ import { HasProjectFeature } from './has-project-feature';
5
+ export function CoerceProjectFeature(options) {
6
+ const { project, feature, } = options;
7
+ return tree => {
8
+ if (!HasProjectFeature(tree, { project, feature })) {
9
+ console.log(`The project '${project}' does not have the feature '${feature}'. The feature will new be created ...`);
10
+ return TsMorphAngularProjectTransformRule({
11
+ project,
12
+ feature,
13
+ }, (project, [sourceFile]) => {
14
+ CoerceVariableDeclaration(sourceFile, 'ROUTES', {
15
+ initializer: `[]`,
16
+ type: 'Route[]',
17
+ });
18
+ CoerceVariableDeclaration(sourceFile, 'ROUTES', {}, {
19
+ isDefaultExport: true,
20
+ });
21
+ CoerceImports(sourceFile, {
22
+ moduleSpecifier: '@angular/router',
23
+ namedImports: ['Route'],
24
+ });
25
+ }, [`feature/${feature}/routes.ts`]);
26
+ }
27
+ return undefined;
28
+ };
29
+ }
30
+ //# sourceMappingURL=coerce-project-feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-project-feature.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-project-feature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAEL,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,MAAM,EACJ,OAAO,EACP,OAAO,GACR,GAAG,OAAO,CAAC;IACZ,OAAO,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;YAClD,OAAO,CAAC,GAAG,CAAC,gBAAiB,OAAQ,gCAAiC,OAAQ,wCAAwC,CAAC,CAAC;YACxH,OAAO,kCAAkC,CACvC;gBACE,OAAO;gBACP,OAAO;aACR,EACD,CAAC,OAAO,EAAE,CAAE,UAAU,CAAE,EAAE,EAAE;gBAC1B,yBAAyB,CAAC,UAAU,EAAE,QAAQ,EAAE;oBAC9C,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBACH,yBAAyB,CACvB,UAAU,EACV,QAAQ,EACR,EAAE,EACF;oBACE,eAAe,EAAE,IAAI;iBACtB,CACF,CAAC;gBACF,aAAa,CAAC,UAAU,EAAE;oBACxB,eAAe,EAAE,iBAAiB;oBAClC,YAAY,EAAE,CAAE,OAAO,CAAE;iBAC1B,CAAC,CAAC;YACL,CAAC,EACD,CAAE,WAAY,OAAQ,YAAY,CAAE,CACrC,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ClassDeclaration, MethodDeclarationStructure, Project, SourceFile, WriterFunction } from 'ts-morph';
2
+ import { TsMorphAngularProjectTransformOptions } from '../ts-morph-transform';
3
+ export interface CoerceProxyRemoteMethodClassOptions extends TsMorphAngularProjectTransformOptions {
4
+ name: string;
5
+ override?: boolean;
6
+ tsMorphTransform?: (project: Project, sourceFile: SourceFile, classDeclaration: ClassDeclaration) => Partial<MethodDeclarationStructure>;
7
+ sourceType: string | WriterFunction;
8
+ targetType: string | WriterFunction;
9
+ proxyMethod: string | WriterFunction;
10
+ }
11
+ export declare function CoerceProxyRemoteMethodClass(options: CoerceProxyRemoteMethodClassOptions): import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,99 @@
1
+ import { classify, CoerceSuffix, } from '@rxap/schematics-utilities';
2
+ import { CoerceClass } from '../coerce-class';
3
+ import { CoerceClassMethod } from '../coerce-class-method';
4
+ import { CoerceSourceFile } from '../coerce-source-file';
5
+ import { TsMorphAngularProjectTransformRule, } from '../ts-morph-transform';
6
+ import { CoerceImports } from '../ts-morph/coerce-imports';
7
+ export function CoerceProxyRemoteMethodClass(options) {
8
+ let { override, name, tsMorphTransform, sourceType, targetType, proxyMethod, } = options;
9
+ tsMorphTransform ??= () => ({});
10
+ const className = classify(CoerceSuffix(name, 'ProxyMethod'));
11
+ const fileName = CoerceSuffix(name, '-proxy.method.ts');
12
+ return TsMorphAngularProjectTransformRule(options, (project) => {
13
+ const sourceFile = CoerceSourceFile(project, fileName);
14
+ const classDeclaration = CoerceClass(sourceFile, className, {
15
+ isExported: true,
16
+ decorators: [
17
+ {
18
+ name: 'Injectable',
19
+ arguments: [],
20
+ },
21
+ {
22
+ name: 'RxapRemoteMethod',
23
+ arguments: [w => w.quote(CoerceSuffix(name, '-proxy'))],
24
+ },
25
+ ],
26
+ ctors: [
27
+ {
28
+ parameters: [
29
+ {
30
+ name: 'method',
31
+ type: proxyMethod,
32
+ decorators: [
33
+ {
34
+ name: 'Inject',
35
+ arguments: [proxyMethod],
36
+ },
37
+ ],
38
+ },
39
+ ],
40
+ statements: ['super(method);'],
41
+ },
42
+ ],
43
+ extends: w => {
44
+ w.write('ProxyRemoteMethod<');
45
+ if (typeof sourceType === 'string') {
46
+ w.write(sourceType);
47
+ }
48
+ else {
49
+ sourceType(w);
50
+ }
51
+ w.write(', ');
52
+ if (typeof targetType === 'string') {
53
+ w.write(targetType);
54
+ }
55
+ else {
56
+ targetType(w);
57
+ }
58
+ w.write('>');
59
+ },
60
+ });
61
+ CoerceImports(sourceFile, {
62
+ moduleSpecifier: '@rxap/pattern',
63
+ namedImports: ['Method'],
64
+ });
65
+ CoerceImports(sourceFile, {
66
+ moduleSpecifier: '@angular/core',
67
+ namedImports: ['Injectable', 'Inject'],
68
+ });
69
+ CoerceImports(sourceFile, {
70
+ moduleSpecifier: '@rxap/remote-method',
71
+ namedImports: ['RxapRemoteMethod', 'ProxyRemoteMethod'],
72
+ });
73
+ const methodStructure = tsMorphTransform(project, sourceFile, classDeclaration);
74
+ methodStructure.parameters ??= [
75
+ {
76
+ name: 'source',
77
+ type: sourceType,
78
+ },
79
+ ];
80
+ methodStructure.statements ??= ['return source as any'];
81
+ methodStructure.returnType ??= w => {
82
+ w.write('Promise<');
83
+ if (typeof targetType ===
84
+ 'string') {
85
+ w.write(targetType);
86
+ }
87
+ else {
88
+ targetType(w);
89
+ }
90
+ w.write('>');
91
+ };
92
+ methodStructure.isAsync ??= true;
93
+ const methodDeclaration = CoerceClassMethod(classDeclaration, 'transformParameters', methodStructure);
94
+ if (override) {
95
+ methodDeclaration.set(methodStructure);
96
+ }
97
+ });
98
+ }
99
+ //# sourceMappingURL=coerce-proxy-remote-method-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-proxy-remote-method-class.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/ts-morph/src/lib/angular/coerce-proxy-remote-method-class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { TsMorphAngularProjectTransformOptions } from '../ts-morph-transform';
2
+ export interface CoerceTableActionIndexProviderOptions extends TsMorphAngularProjectTransformOptions {
3
+ tableName: string;
4
+ }
5
+ export declare function CoerceTableActionIndexProviderRule(options: Readonly<CoerceTableActionIndexProviderOptions>): import("@angular-devkit/schematics").Rule;