@magic-xpa/cli 4.901.0-dev491.335 → 4.901.0-dev491.337

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 (186) hide show
  1. package/README.md +28 -28
  2. package/index.js.map +1 -1
  3. package/index.ts +1 -1
  4. package/package.json +1 -1
  5. package/src/collection.json +68 -68
  6. package/src/public_api.js.map +1 -1
  7. package/src/public_api.ts +5 -5
  8. package/src/schematics/magic-utils/config.js.map +1 -1
  9. package/src/schematics/magic-utils/config.ts +68 -68
  10. package/src/schematics/magic-utils/env.js.map +1 -1
  11. package/src/schematics/magic-utils/env.ts +44 -44
  12. package/src/schematics/magic-utils/manifest.js.map +1 -1
  13. package/src/schematics/magic-utils/manifest.ts +46 -46
  14. package/src/schematics/magic-utils/metadata.class.js.map +1 -1
  15. package/src/schematics/magic-utils/metadata.class.ts +145 -145
  16. package/src/schematics/magic-utils/rules/generate.rule.js.map +1 -1
  17. package/src/schematics/magic-utils/rules/generate.rule.ts +61 -61
  18. package/src/schematics/magic-utils/rules/init-add-modules.rule.js.map +1 -1
  19. package/src/schematics/magic-utils/rules/init-add-modules.rule.ts +343 -343
  20. package/src/schematics/magic-utils/rules/init-magic-metadata.rule.js.map +1 -1
  21. package/src/schematics/magic-utils/rules/init-magic-metadata.rule.ts +18 -18
  22. package/src/schematics/magic-utils/rules/magic-option.scheme.js.map +1 -1
  23. package/src/schematics/magic-utils/rules/magic-option.scheme.ts +22 -22
  24. package/src/schematics/magic-utils/utils.js.map +1 -1
  25. package/src/schematics/magic-utils/utils.ts +134 -134
  26. package/src/schematics/mg-Install-prerequisites/index.js.map +1 -1
  27. package/src/schematics/mg-Install-prerequisites/index.ts +30 -30
  28. package/src/schematics/mg-Install-prerequisites/schema.json +14 -14
  29. package/src/schematics/mg-add/files/src/app/app.component.html +17 -17
  30. package/src/schematics/mg-add/files/src/app/app.routes.ts +14 -14
  31. package/src/schematics/mg-add/files/src/app/magic/component-list.g.ts +9 -9
  32. package/src/schematics/mg-add/files/src/magic-styles.css +131 -131
  33. package/src/schematics/mg-add/schema.json +29 -29
  34. package/src/schematics/mg-add/utils/add-declaration-to-root-module.js.map +1 -1
  35. package/src/schematics/mg-add/utils/add-declaration-to-root-module.ts +12 -12
  36. package/src/schematics/mg-add/webModule/app.routes.ts +14 -14
  37. package/src/schematics/mg-add-tasks/index.js.map +1 -1
  38. package/src/schematics/mg-add-tasks/index.ts +53 -53
  39. package/src/schematics/mg-add-tasks/schema.json +41 -41
  40. package/src/schematics/mg-delete-files/index.js.map +1 -1
  41. package/src/schematics/mg-delete-files/index.ts +12 -12
  42. package/src/schematics/mg-delete-files/schema.json +14 -14
  43. package/src/schematics/mg-gen-module/index.js.map +1 -1
  44. package/src/schematics/mg-gen-module/index.ts +14 -14
  45. package/src/schematics/mg-gen-module/schema.json +24 -24
  46. package/src/schematics/mg-generate/index.js.map +1 -1
  47. package/src/schematics/mg-generate/index.ts +12 -12
  48. package/src/schematics/mg-generate/schema.json +34 -34
  49. package/src/schematics/mg-install/index.js.map +1 -1
  50. package/src/schematics/mg-install/index.ts +37 -37
  51. package/src/schematics/mg-install/schema.json +24 -24
  52. package/src/schematics/mg-routes/schema.json +14 -14
  53. package/src/schematics/mg-single-control/schema.json +24 -24
  54. package/src/schematics/utils/ast.js.map +1 -1
  55. package/src/schematics/utils/ast.ts +103 -103
  56. package/src/schematics/utils/devkit-utils/README.md +1 -1
  57. package/src/schematics/utils/devkit-utils/ast-utils.js.map +1 -1
  58. package/src/schematics/utils/devkit-utils/ast-utils.ts +570 -570
  59. package/src/schematics/utils/devkit-utils/ast-utils_old.js.map +1 -1
  60. package/src/schematics/utils/devkit-utils/ast-utils_old.ts +478 -478
  61. package/src/schematics/utils/devkit-utils/change.js.map +1 -1
  62. package/src/schematics/utils/devkit-utils/change.ts +127 -127
  63. package/src/schematics/utils/devkit-utils/component.js.map +1 -1
  64. package/src/schematics/utils/devkit-utils/component.ts +136 -136
  65. package/src/schematics/utils/devkit-utils/config.js.map +1 -1
  66. package/src/schematics/utils/devkit-utils/config.ts +120 -120
  67. package/src/schematics/utils/devkit-utils/find-module.js.map +1 -1
  68. package/src/schematics/utils/devkit-utils/find-module.ts +108 -108
  69. package/src/schematics/utils/devkit-utils/ng-ast-utils.js.map +1 -1
  70. package/src/schematics/utils/devkit-utils/ng-ast-utils.ts +84 -84
  71. package/src/schematics/utils/devkit-utils/parse-name.js.map +1 -1
  72. package/src/schematics/utils/devkit-utils/parse-name.ts +24 -24
  73. package/src/schematics/utils/devkit-utils/route-utils.js.map +1 -1
  74. package/src/schematics/utils/devkit-utils/route-utils.ts +180 -180
  75. package/src/schematics/utils/devkit-utils/validation.js +1 -1
  76. package/src/schematics/utils/devkit-utils/validation.js.map +1 -1
  77. package/src/schematics/utils/devkit-utils/validation.ts +16 -16
  78. package/src/schematics/utils/html.js.map +1 -1
  79. package/src/schematics/utils/html.ts +63 -63
  80. package/src/schematics/utils/lib-versions.js.map +1 -1
  81. package/src/schematics/utils/lib-versions.ts +3 -3
  82. package/src/schematics/utils/package.js.map +1 -1
  83. package/src/schematics/utils/package.ts +22 -22
  84. package/src/schematics/utils/testing.js.map +1 -1
  85. package/src/schematics/utils/testing.ts +25 -25
  86. package/src/types/enums/Enums.js.map +1 -1
  87. package/src/types/enums/Enums.ts +2063 -2063
  88. package/src/types/enums/generated-file-types.enum.js.map +1 -1
  89. package/src/types/enums/generated-file-types.enum.ts +6 -6
  90. package/src/types/enums/horizontal-alignments.enum.js.map +1 -1
  91. package/src/types/enums/horizontal-alignments.enum.ts +6 -6
  92. package/src/types/enums/themes.enum.js.map +1 -1
  93. package/src/types/enums/themes.enum.ts +6 -6
  94. package/src/types/index.js.map +1 -1
  95. package/src/types/index.ts +8 -8
  96. package/src/types/interfaces/app.js.map +1 -1
  97. package/src/types/interfaces/app.ts +89 -89
  98. package/src/types/interfaces/control.js.map +1 -1
  99. package/src/types/interfaces/control.ts +106 -106
  100. package/src/types/interfaces/template.config.js.map +1 -1
  101. package/src/types/interfaces/template.config.ts +11 -11
  102. package/templates/angular/src/app/app.component.html.ejs +17 -17
  103. package/templates/angular/src/app/cmp-array.ejs +3 -3
  104. package/templates/angular/src/app/cmp-hash.ejs +3 -3
  105. package/templates/angular/src/app/component-list.g.ts +21 -21
  106. package/templates/angular/src/app.component.ts +14 -14
  107. package/templates/angular/src/app.module.ts +72 -72
  108. package/templates/angular/src/app.routes.ts +73 -73
  109. package/templates/angular/src/styles/app.css +5 -5
  110. package/templates/attributes/button_attributes.ejs +2 -2
  111. package/templates/attributes/common/base/class.ejs +6 -6
  112. package/templates/attributes/common/base/control_type.ejs +53 -53
  113. package/templates/attributes/common/base/enabled.ejs +9 -9
  114. package/templates/attributes/common/base/imageFileName.ejs +3 -3
  115. package/templates/attributes/common/base/no_control_class.ejs +3 -3
  116. package/templates/attributes/common/base/rtol.ejs +3 -3
  117. package/templates/attributes/common/base/tabindex.ejs +11 -11
  118. package/templates/attributes/common/base/testingId.ejs +8 -8
  119. package/templates/attributes/common/base/tooltip.ejs +7 -7
  120. package/templates/attributes/common/base/visible.ejs +6 -6
  121. package/templates/attributes/common/base/wallpaper.ejs +3 -3
  122. package/templates/attributes/common/base_attributes.ejs +10 -10
  123. package/templates/attributes/common/container_attributes.ejs +6 -6
  124. package/templates/attributes/common/control_attributes.ejs +3 -3
  125. package/templates/attributes/common/format.ejs +5 -5
  126. package/templates/attributes/common/input/hint.ejs +13 -13
  127. package/templates/attributes/common/input/multiline_edit.ejs +3 -3
  128. package/templates/attributes/common/input/must_input.ejs +8 -8
  129. package/templates/attributes/common/input/password_edit.ejs +7 -7
  130. package/templates/attributes/common/input/row_editing_input_attributes.ejs +6 -6
  131. package/templates/attributes/common/input/validation.ejs +5 -5
  132. package/templates/attributes/common/input_attributes.ejs +4 -4
  133. package/templates/attributes/common/no_control_base_attributes.ejs +4 -4
  134. package/templates/attributes/common/row_editing_button_attributes.ejs +10 -10
  135. package/templates/component/view.component.html +14 -14
  136. package/templates/component/view.component.ts +122 -122
  137. package/templates/themes/basicHTML/Code/theme.module.ts +10 -10
  138. package/templates/themes/basicHTML/combobox.ejs +37 -37
  139. package/templates/themes/basicHTML/edit.ejs +168 -168
  140. package/templates/themes/basicHTML/form.ejs +4 -4
  141. package/templates/themes/basicHTML/group.ejs +4 -4
  142. package/templates/themes/basicHTML/image.ejs +6 -6
  143. package/templates/themes/basicHTML/label.ejs +11 -11
  144. package/templates/themes/basicHTML/listbox.ejs +21 -21
  145. package/templates/themes/basicHTML/push-button.ejs +28 -28
  146. package/templates/themes/basicHTML/radio.ejs +20 -20
  147. package/templates/themes/basicHTML/subform.ejs +6 -6
  148. package/templates/themes/basicHTML/tab.ejs +31 -31
  149. package/templates/themes/basicHTML/tabpage.ejs +5 -5
  150. package/templates/themes/basicHiddenHTML/Code/theme.module.ts +10 -10
  151. package/templates/themes/basicHiddenHTML/combobox.ejs +5 -5
  152. package/templates/themes/basicHiddenHTML/form.ejs +3 -3
  153. package/templates/themes/basicHiddenHTML/group.ejs +2 -2
  154. package/templates/themes/basicHiddenHTML/image.ejs +4 -4
  155. package/templates/themes/basicHiddenHTML/label.ejs +1 -1
  156. package/templates/themes/basicHiddenHTML/listbox.ejs +8 -8
  157. package/templates/themes/basicHiddenHTML/push-button.ejs +26 -26
  158. package/templates/themes/basicHiddenHTML/radio.ejs +17 -17
  159. package/templates/themes/basicHiddenHTML/tab.ejs +13 -13
  160. package/templates/themes/basicHiddenHTML/table.ejs +18 -18
  161. package/templates/themes/basicHiddenHTML/tabpage.ejs +2 -2
  162. package/templates/themes/container.ejs +26 -26
  163. package/templates/themes/control.ejs +52 -52
  164. package/templates/themes/editTypeSelector.ejs +1 -1
  165. package/templates/themes/material/Code/theme.module.ts +68 -68
  166. package/templates/themes/material/base_attributes_date.ejs +8 -8
  167. package/templates/themes/material/combobox.ejs +43 -43
  168. package/templates/themes/material/edit.ejs +204 -204
  169. package/templates/themes/material/group.ejs +3 -3
  170. package/templates/themes/material/listbox.ejs +23 -23
  171. package/templates/themes/material/push-button.ejs +28 -28
  172. package/templates/themes/material/radio.ejs +22 -22
  173. package/templates/themes/material/subform.ejs +8 -8
  174. package/templates/themes/material/tab.ejs +19 -19
  175. package/templates/themes/router_outlet.ejs +5 -5
  176. package/templates/themes/table/HTMLTable/table.ejs +37 -37
  177. package/templates/themes/table/TextEditDialog/textedit.dialog.css +16 -16
  178. package/templates/themes/table/TextEditDialog/textedit.dialog.html +28 -28
  179. package/templates/themes/table/TextEditDialog/textedit.dialog.ts +29 -29
  180. package/templates/themes/table/grid/additionalComponentCode.ejs +26 -26
  181. package/templates/themes/table/grid/additionalIncludes.ejs +1 -1
  182. package/templates/themes/table/grid/table.ejs +37 -37
  183. package/templates/themes/table/repeatable/column.ejs +11 -11
  184. package/templates/themes/table/repeatable/table.ejs +28 -28
  185. package/templates/themes/tableTypeSelector.ejs +21 -21
  186. package/tsconfig.json +36 -36
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.class.js","sourceRoot":"","sources":["metadata.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { SchematicContext, Tree } from \"@angular-devkit/schematics\";\r\nimport { AppConfig, ComponentId, Route, RouteTable } from \"../../types/interfaces/app\";\r\nimport { MagicOptionScheme } from \"./rules/magic-option.scheme\";\r\nimport { Project } from \"../utils/devkit-utils/config\";\r\nimport { env, GEN_FOLDER, METADATA_DIR } from \"./env\";\r\nimport { Manifest } from \"./manifest\";\r\nimport { getProject, readJson } from \"./utils\";\r\n\r\n\r\nexport class MagicPaths {\r\n\r\n // return the current module path\r\n // for example : for module \"WebModule1\" it returns 'src/app/magic/WebModule1'\r\n currentModulePath(module_name:string) {\r\n if (module_name !== \"\") {\r\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}`;\r\n }\r\n\r\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}`;\r\n\r\n\r\n }\r\n\r\n // return the destanation path for create the component\r\n // for example : for module \"WebModule1\" component \"WebModule1/folder1/bb/cc/it returns 'src/app/magic/WebModule1'\r\n getDestPathForComponent(module_name:string, componentPath:string) {\r\n return `${this.currentModulePath(module_name)}/${componentPath}`;\r\n }\r\n\r\n getJsonPathForComponent(cmpJsonPath:string) {\r\n return `${this.metadataFolderPath}/${cmpJsonPath}.json`;\r\n }\r\n\r\n getRelativePathForComponentInModule(module_name:string, cmpJsonPath:string) {\r\n let relativePathForComponentInModule = `${cmpJsonPath}`;\r\n if (module_name !== \"\")\r\n relativePathForComponentInModule = `${module_name}/${cmpJsonPath}`;\r\n\r\n return relativePathForComponentInModule;\r\n }\r\n\r\n getRoutePathForWebModule(module_name:string) {\r\n\r\n if (module_name == \"\")\r\n return this.appRoutesPath;\r\n\r\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}/app.routes.ts`;\r\n }\r\n get rootMagicGenFolder(){ return `./${this.project.root}/src/app`; }\r\n get appComponentPath(){ return `./${this.project.root}/src/app/app.component.html`}\r\n get appRoutesPath(){ return `./${this.project.root}/src/app/app.routes.ts`}\r\n get appModulePath(){ return `./${this.project.root}/src/app/app.module.ts`}\r\n get executionPath(){ return `./${this.project.root}/src/assets/execution.properties`}\r\n get magicStylePath(){ return `./${this.project.root}/src/magic-styles.css`}\r\n get angularJsonPath(){ return `./angular.json`}\r\n get tsConfigAppJsonPath(){ return `./${this.project.root}/tsconfig.app.json`}\r\n\r\n // get the relative path of module to be used in LazyLoadMap\r\n magicGenLibModulePath (moduleName){\r\n\r\n let rootPath = this.project.root == '' ? this.project.root: this.project.root + '/';\r\n let modulepath = rootPath+`src/app/${GEN_FOLDER}`;\r\n if (moduleName !== \"\") {\r\n return `${modulepath}/${moduleName}/magic.gen.lib.module`;\r\n }\r\n return `${modulepath}/magic.gen.lib.module`;\r\n }\r\n\r\n // Files under gen folder\r\n get magicGenFolderPath (){ return `./${this.project.root}/src/app/${GEN_FOLDER}`}\r\n\r\n componentListPathForCurrentModuleName (module_name:string):string{\r\n return `./${this.project.root}/src/app/${GEN_FOLDER}/${module_name}/component-list.g.ts`\r\n }\r\n componentListPath (module_name:string):string{\r\n\r\n if (module_name !== \"\"){\r\n return this.componentListPathForCurrentModuleName(module_name);\r\n }\r\n return this.rootMagicComponentListPath;\r\n }\r\n\r\n get rootMagicComponentListPath (){\r\n\r\n return `./${this.project.root}/src/app/${GEN_FOLDER}/component-list.g.ts`\r\n }\r\n\r\n get magicGenLibModule (){ return `./${this.project.root}/src/app/${GEN_FOLDER}/magic.gen.lib.module.ts`}\r\n\r\n get favIconPath(){ return `./${this.project.root}/src/favicon.ico`; }\r\n\r\n get metadataFolderPath(){ return `./${this.project.root}/${METADATA_DIR}`; }\r\n get manifestPath (){ return `./${this.project.root}/${METADATA_DIR}/manifest.json`; }\r\n get configPath (){ return `./${this.project.root}/${METADATA_DIR}/config.json`; }\r\n get routesPath (){ return `./${this.project.root}/${METADATA_DIR}/routes.json`; }\r\n\r\n constructor(protected project:Project){\r\n }\r\n}\r\n\r\n\r\nexport class MagicMetadata {\r\n\r\n private _config: AppConfig;\r\n private _routesTable: RouteTable[];\r\n\r\n paths: MagicPaths;\r\n\r\n get theme() {\r\n if (!this.options.theme) {\r\n this.options.theme = env.metadata.config ?env.metadata.config.theme : 'basicHTML';\r\n }\r\n return this.options.theme;\r\n }\r\n\r\n get allow_testing() {\r\n if (!this.options.allowTesting) {\r\n this.options.allowTesting = env.metadata.config ?env.metadata.config.allow_testing: false;\r\n }\r\n return this.options.allowTesting;\r\n }\r\n get config() {\r\n if (this._config) return this._config;\r\n return this.loadConfig();\r\n }\r\n get routesTable(){\r\n if (this._routesTable) return this._routesTable;\r\n return this.loadRoutes();\r\n }\r\n\r\n constructor(public host: Tree, public context: SchematicContext, public options: MagicOptionScheme) {\r\n this.paths = new MagicPaths(getProject(host, options.project));\r\n }\r\n\r\n loadConfig() {\r\n this._config = readJson(this.host, this.paths.configPath);\r\n return this._config;\r\n }\r\n loadRoutes() {\r\n this._routesTable = readJson(this.host, this.paths.routesPath);\r\n return this._routesTable;\r\n }\r\n}\r\n\r\n\r\n"]}
1
+ {"version":3,"file":"metadata.class.js","sourceRoot":"","sources":["metadata.class.ts"],"names":[],"mappings":";;;AAIA,+BAAsD;AAEtD,mCAA+C;AAG/C,MAAa,UAAU;IAErB,iCAAiC;IACjC,8EAA8E;IAC/E,iBAAiB,CAAC,WAAkB;QACjC,IAAI,WAAW,KAAK,EAAE,EAAE;YACtB,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,gBAAU,IAAI,WAAW,EAAE,CAAC;SAClE;QAED,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,gBAAU,EAAE,CAAC;IAGpD,CAAC;IAED,uDAAuD;IACvD,kHAAkH;IAClH,uBAAuB,CAAC,WAAkB,EAAE,aAAoB;QAC5D,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC;IACrE,CAAC;IAED,uBAAuB,CAAC,WAAkB;QACxC,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,WAAW,OAAO,CAAC;IAC1D,CAAC;IAED,mCAAmC,CAAC,WAAkB,EAAE,WAAkB;QACxE,IAAI,gCAAgC,GAAG,GAAG,WAAW,EAAE,CAAC;QACxD,IAAI,WAAW,KAAK,EAAE;YACpB,gCAAgC,GAAG,GAAG,WAAW,IAAI,WAAW,EAAE,CAAC;QAErE,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,wBAAwB,CAAC,WAAkB;QAEzC,IAAI,WAAW,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC,aAAa,CAAC;QAE5B,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,gBAAU,IAAI,WAAW,gBAAgB,CAAC;IACjF,CAAC;IACD,IAAI,kBAAkB,KAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IACpE,IAAI,gBAAgB,KAAM,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,6BAA6B,CAAA,CAAA,CAAC;IACrF,IAAI,aAAa,KAAS,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAA,CAAA,CAAC;IAChF,IAAI,aAAa,KAAS,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAA,CAAA,CAAC;IAChF,IAAI,aAAa,KAAS,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,kCAAkC,CAAA,CAAA,CAAC;IAC1F,IAAI,cAAc,KAAQ,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAA,CAAA,CAAC;IAC/E,IAAI,eAAe,KAAO,OAAO,gBAAgB,CAAA,CAAA,CAAC;IAClD,IAAI,mBAAmB,KAAS,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAA,CAAA,CAAC;IAElF,4DAA4D;IAC5D,qBAAqB,CAAE,UAAU;QAEhC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;QACnF,IAAI,UAAU,GAAG,QAAQ,GAAC,WAAW,gBAAU,EAAE,CAAC;QAClD,IAAI,UAAU,KAAK,EAAE,EAAE;YACrB,OAAO,GAAG,UAAU,IAAI,UAAU,uBAAuB,CAAC;SAC3D;QACD,OAAO,GAAG,UAAU,uBAAuB,CAAC;IAC9C,CAAC;IAED,yBAAyB;IACzB,IAAI,kBAAkB,KAAK,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,gBAAU,EAAE,CAAA,CAAA,CAAC;IAEjF,qCAAqC,CAAE,WAAkB;QACvD,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,gBAAU,IAAI,WAAW,sBAAsB,CAAA;IAC1F,CAAC;IACD,iBAAiB,CAAE,WAAkB;QAEnC,IAAI,WAAW,KAAK,EAAE,EAAC;YACrB,OAAO,IAAI,CAAC,qCAAqC,CAAC,WAAW,CAAC,CAAC;SAChE;QACC,OAAO,IAAI,CAAC,0BAA0B,CAAC;IAC3C,CAAC;IAED,IAAI,0BAA0B;QAE5B,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,gBAAU,sBAAsB,CAAA;IAC3E,CAAC;IAED,IAAI,iBAAiB,KAAK,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,gBAAU,0BAA0B,CAAA,CAAA,CAAC;IAExG,IAAI,WAAW,KAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC;IAErE,IAAI,kBAAkB,KAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAY,EAAE,CAAC,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAU,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAY,gBAAgB,CAAC,CAAC,CAAC;IAC1F,IAAI,UAAU,KAAY,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAY,cAAc,CAAC,CAAC,CAAC;IACxF,IAAI,UAAU,KAAY,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAY,cAAc,CAAC,CAAC,CAAC;IAExF,YAAsB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IACrC,CAAC;CACF;AAzFD,gCAyFC;AAGD,MAAa,aAAa;IAOxB,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,SAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,WAAW,CAAC;SACpF;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,SAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,SAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAA,CAAC,CAAC,KAAK,CAAC;SAC3F;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IACnC,CAAC;IACD,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,YAAmB,IAAU,EAAS,OAAyB,EAAS,OAA0B;QAA/E,SAAI,GAAJ,IAAI,CAAM;QAAS,YAAO,GAAP,OAAO,CAAkB;QAAS,YAAO,GAAP,OAAO,CAAmB;QAChG,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAA,kBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,OAAO,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAzCD,sCAyCC","sourcesContent":["import { SchematicContext, Tree } from \"@angular-devkit/schematics\";\nimport { AppConfig, ComponentId, Route, RouteTable } from \"../../types/interfaces/app\";\nimport { MagicOptionScheme } from \"./rules/magic-option.scheme\";\nimport { Project } from \"../utils/devkit-utils/config\";\nimport { env, GEN_FOLDER, METADATA_DIR } from \"./env\";\nimport { Manifest } from \"./manifest\";\nimport { getProject, readJson } from \"./utils\";\n\n\nexport class MagicPaths {\n\n // return the current module path\n // for example : for module \"WebModule1\" it returns 'src/app/magic/WebModule1'\n currentModulePath(module_name:string) {\n if (module_name !== \"\") {\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}`;\n }\n\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}`;\n\n\n }\n\n // return the destanation path for create the component\n // for example : for module \"WebModule1\" component \"WebModule1/folder1/bb/cc/it returns 'src/app/magic/WebModule1'\n getDestPathForComponent(module_name:string, componentPath:string) {\n return `${this.currentModulePath(module_name)}/${componentPath}`;\n }\n\n getJsonPathForComponent(cmpJsonPath:string) {\n return `${this.metadataFolderPath}/${cmpJsonPath}.json`;\n }\n\n getRelativePathForComponentInModule(module_name:string, cmpJsonPath:string) {\n let relativePathForComponentInModule = `${cmpJsonPath}`;\n if (module_name !== \"\")\n relativePathForComponentInModule = `${module_name}/${cmpJsonPath}`;\n\n return relativePathForComponentInModule;\n }\n\n getRoutePathForWebModule(module_name:string) {\n\n if (module_name == \"\")\n return this.appRoutesPath;\n\n return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}/app.routes.ts`;\n }\n get rootMagicGenFolder(){ return `./${this.project.root}/src/app`; }\n get appComponentPath(){ return `./${this.project.root}/src/app/app.component.html`}\n get appRoutesPath(){ return `./${this.project.root}/src/app/app.routes.ts`}\n get appModulePath(){ return `./${this.project.root}/src/app/app.module.ts`}\n get executionPath(){ return `./${this.project.root}/src/assets/execution.properties`}\n get magicStylePath(){ return `./${this.project.root}/src/magic-styles.css`}\n get angularJsonPath(){ return `./angular.json`}\n get tsConfigAppJsonPath(){ return `./${this.project.root}/tsconfig.app.json`}\n\n // get the relative path of module to be used in LazyLoadMap\n magicGenLibModulePath (moduleName){\n\n let rootPath = this.project.root == '' ? this.project.root: this.project.root + '/';\n let modulepath = rootPath+`src/app/${GEN_FOLDER}`;\n if (moduleName !== \"\") {\n return `${modulepath}/${moduleName}/magic.gen.lib.module`;\n }\n return `${modulepath}/magic.gen.lib.module`;\n }\n\n // Files under gen folder\n get magicGenFolderPath (){ return `./${this.project.root}/src/app/${GEN_FOLDER}`}\n\n componentListPathForCurrentModuleName (module_name:string):string{\n return `./${this.project.root}/src/app/${GEN_FOLDER}/${module_name}/component-list.g.ts`\n }\n componentListPath (module_name:string):string{\n\n if (module_name !== \"\"){\n return this.componentListPathForCurrentModuleName(module_name);\n }\n return this.rootMagicComponentListPath;\n }\n\n get rootMagicComponentListPath (){\n\n return `./${this.project.root}/src/app/${GEN_FOLDER}/component-list.g.ts`\n }\n\n get magicGenLibModule (){ return `./${this.project.root}/src/app/${GEN_FOLDER}/magic.gen.lib.module.ts`}\n\n get favIconPath(){ return `./${this.project.root}/src/favicon.ico`; }\n\n get metadataFolderPath(){ return `./${this.project.root}/${METADATA_DIR}`; }\n get manifestPath (){ return `./${this.project.root}/${METADATA_DIR}/manifest.json`; }\n get configPath (){ return `./${this.project.root}/${METADATA_DIR}/config.json`; }\n get routesPath (){ return `./${this.project.root}/${METADATA_DIR}/routes.json`; }\n\n constructor(protected project:Project){\n }\n}\n\n\nexport class MagicMetadata {\n\n private _config: AppConfig;\n private _routesTable: RouteTable[];\n\n paths: MagicPaths;\n\n get theme() {\n if (!this.options.theme) {\n this.options.theme = env.metadata.config ?env.metadata.config.theme : 'basicHTML';\n }\n return this.options.theme;\n }\n\n get allow_testing() {\n if (!this.options.allowTesting) {\n this.options.allowTesting = env.metadata.config ?env.metadata.config.allow_testing: false;\n }\n return this.options.allowTesting;\n }\n get config() {\n if (this._config) return this._config;\n return this.loadConfig();\n }\n get routesTable(){\n if (this._routesTable) return this._routesTable;\n return this.loadRoutes();\n }\n\n constructor(public host: Tree, public context: SchematicContext, public options: MagicOptionScheme) {\n this.paths = new MagicPaths(getProject(host, options.project));\n }\n\n loadConfig() {\n this._config = readJson(this.host, this.paths.configPath);\n return this._config;\n }\n loadRoutes() {\n this._routesTable = readJson(this.host, this.paths.routesPath);\n return this._routesTable;\n }\n}\n\n\n"]}
@@ -1,145 +1,145 @@
1
- import { SchematicContext, Tree } from "@angular-devkit/schematics";
2
- import { AppConfig, ComponentId, Route, RouteTable } from "../../types/interfaces/app";
3
- import { MagicOptionScheme } from "./rules/magic-option.scheme";
4
- import { Project } from "../utils/devkit-utils/config";
5
- import { env, GEN_FOLDER, METADATA_DIR } from "./env";
6
- import { Manifest } from "./manifest";
7
- import { getProject, readJson } from "./utils";
8
-
9
-
10
- export class MagicPaths {
11
-
12
- // return the current module path
13
- // for example : for module "WebModule1" it returns 'src/app/magic/WebModule1'
14
- currentModulePath(module_name:string) {
15
- if (module_name !== "") {
16
- return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}`;
17
- }
18
-
19
- return `${this.rootMagicGenFolder}/${GEN_FOLDER}`;
20
-
21
-
22
- }
23
-
24
- // return the destanation path for create the component
25
- // for example : for module "WebModule1" component "WebModule1/folder1/bb/cc/it returns 'src/app/magic/WebModule1'
26
- getDestPathForComponent(module_name:string, componentPath:string) {
27
- return `${this.currentModulePath(module_name)}/${componentPath}`;
28
- }
29
-
30
- getJsonPathForComponent(cmpJsonPath:string) {
31
- return `${this.metadataFolderPath}/${cmpJsonPath}.json`;
32
- }
33
-
34
- getRelativePathForComponentInModule(module_name:string, cmpJsonPath:string) {
35
- let relativePathForComponentInModule = `${cmpJsonPath}`;
36
- if (module_name !== "")
37
- relativePathForComponentInModule = `${module_name}/${cmpJsonPath}`;
38
-
39
- return relativePathForComponentInModule;
40
- }
41
-
42
- getRoutePathForWebModule(module_name:string) {
43
-
44
- if (module_name == "")
45
- return this.appRoutesPath;
46
-
47
- return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}/app.routes.ts`;
48
- }
49
- get rootMagicGenFolder(){ return `./${this.project.root}/src/app`; }
50
- get appComponentPath(){ return `./${this.project.root}/src/app/app.component.html`}
51
- get appRoutesPath(){ return `./${this.project.root}/src/app/app.routes.ts`}
52
- get appModulePath(){ return `./${this.project.root}/src/app/app.module.ts`}
53
- get executionPath(){ return `./${this.project.root}/src/assets/execution.properties`}
54
- get magicStylePath(){ return `./${this.project.root}/src/magic-styles.css`}
55
- get angularJsonPath(){ return `./angular.json`}
56
- get tsConfigAppJsonPath(){ return `./${this.project.root}/tsconfig.app.json`}
57
-
58
- // get the relative path of module to be used in LazyLoadMap
59
- magicGenLibModulePath (moduleName){
60
-
61
- let rootPath = this.project.root == '' ? this.project.root: this.project.root + '/';
62
- let modulepath = rootPath+`src/app/${GEN_FOLDER}`;
63
- if (moduleName !== "") {
64
- return `${modulepath}/${moduleName}/magic.gen.lib.module`;
65
- }
66
- return `${modulepath}/magic.gen.lib.module`;
67
- }
68
-
69
- // Files under gen folder
70
- get magicGenFolderPath (){ return `./${this.project.root}/src/app/${GEN_FOLDER}`}
71
-
72
- componentListPathForCurrentModuleName (module_name:string):string{
73
- return `./${this.project.root}/src/app/${GEN_FOLDER}/${module_name}/component-list.g.ts`
74
- }
75
- componentListPath (module_name:string):string{
76
-
77
- if (module_name !== ""){
78
- return this.componentListPathForCurrentModuleName(module_name);
79
- }
80
- return this.rootMagicComponentListPath;
81
- }
82
-
83
- get rootMagicComponentListPath (){
84
-
85
- return `./${this.project.root}/src/app/${GEN_FOLDER}/component-list.g.ts`
86
- }
87
-
88
- get magicGenLibModule (){ return `./${this.project.root}/src/app/${GEN_FOLDER}/magic.gen.lib.module.ts`}
89
-
90
- get favIconPath(){ return `./${this.project.root}/src/favicon.ico`; }
91
-
92
- get metadataFolderPath(){ return `./${this.project.root}/${METADATA_DIR}`; }
93
- get manifestPath (){ return `./${this.project.root}/${METADATA_DIR}/manifest.json`; }
94
- get configPath (){ return `./${this.project.root}/${METADATA_DIR}/config.json`; }
95
- get routesPath (){ return `./${this.project.root}/${METADATA_DIR}/routes.json`; }
96
-
97
- constructor(protected project:Project){
98
- }
99
- }
100
-
101
-
102
- export class MagicMetadata {
103
-
104
- private _config: AppConfig;
105
- private _routesTable: RouteTable[];
106
-
107
- paths: MagicPaths;
108
-
109
- get theme() {
110
- if (!this.options.theme) {
111
- this.options.theme = env.metadata.config ?env.metadata.config.theme : 'basicHTML';
112
- }
113
- return this.options.theme;
114
- }
115
-
116
- get allow_testing() {
117
- if (!this.options.allowTesting) {
118
- this.options.allowTesting = env.metadata.config ?env.metadata.config.allow_testing: false;
119
- }
120
- return this.options.allowTesting;
121
- }
122
- get config() {
123
- if (this._config) return this._config;
124
- return this.loadConfig();
125
- }
126
- get routesTable(){
127
- if (this._routesTable) return this._routesTable;
128
- return this.loadRoutes();
129
- }
130
-
131
- constructor(public host: Tree, public context: SchematicContext, public options: MagicOptionScheme) {
132
- this.paths = new MagicPaths(getProject(host, options.project));
133
- }
134
-
135
- loadConfig() {
136
- this._config = readJson(this.host, this.paths.configPath);
137
- return this._config;
138
- }
139
- loadRoutes() {
140
- this._routesTable = readJson(this.host, this.paths.routesPath);
141
- return this._routesTable;
142
- }
143
- }
144
-
145
-
1
+ import { SchematicContext, Tree } from "@angular-devkit/schematics";
2
+ import { AppConfig, ComponentId, Route, RouteTable } from "../../types/interfaces/app";
3
+ import { MagicOptionScheme } from "./rules/magic-option.scheme";
4
+ import { Project } from "../utils/devkit-utils/config";
5
+ import { env, GEN_FOLDER, METADATA_DIR } from "./env";
6
+ import { Manifest } from "./manifest";
7
+ import { getProject, readJson } from "./utils";
8
+
9
+
10
+ export class MagicPaths {
11
+
12
+ // return the current module path
13
+ // for example : for module "WebModule1" it returns 'src/app/magic/WebModule1'
14
+ currentModulePath(module_name:string) {
15
+ if (module_name !== "") {
16
+ return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}`;
17
+ }
18
+
19
+ return `${this.rootMagicGenFolder}/${GEN_FOLDER}`;
20
+
21
+
22
+ }
23
+
24
+ // return the destanation path for create the component
25
+ // for example : for module "WebModule1" component "WebModule1/folder1/bb/cc/it returns 'src/app/magic/WebModule1'
26
+ getDestPathForComponent(module_name:string, componentPath:string) {
27
+ return `${this.currentModulePath(module_name)}/${componentPath}`;
28
+ }
29
+
30
+ getJsonPathForComponent(cmpJsonPath:string) {
31
+ return `${this.metadataFolderPath}/${cmpJsonPath}.json`;
32
+ }
33
+
34
+ getRelativePathForComponentInModule(module_name:string, cmpJsonPath:string) {
35
+ let relativePathForComponentInModule = `${cmpJsonPath}`;
36
+ if (module_name !== "")
37
+ relativePathForComponentInModule = `${module_name}/${cmpJsonPath}`;
38
+
39
+ return relativePathForComponentInModule;
40
+ }
41
+
42
+ getRoutePathForWebModule(module_name:string) {
43
+
44
+ if (module_name == "")
45
+ return this.appRoutesPath;
46
+
47
+ return `${this.rootMagicGenFolder}/${GEN_FOLDER}/${module_name}/app.routes.ts`;
48
+ }
49
+ get rootMagicGenFolder(){ return `./${this.project.root}/src/app`; }
50
+ get appComponentPath(){ return `./${this.project.root}/src/app/app.component.html`}
51
+ get appRoutesPath(){ return `./${this.project.root}/src/app/app.routes.ts`}
52
+ get appModulePath(){ return `./${this.project.root}/src/app/app.module.ts`}
53
+ get executionPath(){ return `./${this.project.root}/src/assets/execution.properties`}
54
+ get magicStylePath(){ return `./${this.project.root}/src/magic-styles.css`}
55
+ get angularJsonPath(){ return `./angular.json`}
56
+ get tsConfigAppJsonPath(){ return `./${this.project.root}/tsconfig.app.json`}
57
+
58
+ // get the relative path of module to be used in LazyLoadMap
59
+ magicGenLibModulePath (moduleName){
60
+
61
+ let rootPath = this.project.root == '' ? this.project.root: this.project.root + '/';
62
+ let modulepath = rootPath+`src/app/${GEN_FOLDER}`;
63
+ if (moduleName !== "") {
64
+ return `${modulepath}/${moduleName}/magic.gen.lib.module`;
65
+ }
66
+ return `${modulepath}/magic.gen.lib.module`;
67
+ }
68
+
69
+ // Files under gen folder
70
+ get magicGenFolderPath (){ return `./${this.project.root}/src/app/${GEN_FOLDER}`}
71
+
72
+ componentListPathForCurrentModuleName (module_name:string):string{
73
+ return `./${this.project.root}/src/app/${GEN_FOLDER}/${module_name}/component-list.g.ts`
74
+ }
75
+ componentListPath (module_name:string):string{
76
+
77
+ if (module_name !== ""){
78
+ return this.componentListPathForCurrentModuleName(module_name);
79
+ }
80
+ return this.rootMagicComponentListPath;
81
+ }
82
+
83
+ get rootMagicComponentListPath (){
84
+
85
+ return `./${this.project.root}/src/app/${GEN_FOLDER}/component-list.g.ts`
86
+ }
87
+
88
+ get magicGenLibModule (){ return `./${this.project.root}/src/app/${GEN_FOLDER}/magic.gen.lib.module.ts`}
89
+
90
+ get favIconPath(){ return `./${this.project.root}/src/favicon.ico`; }
91
+
92
+ get metadataFolderPath(){ return `./${this.project.root}/${METADATA_DIR}`; }
93
+ get manifestPath (){ return `./${this.project.root}/${METADATA_DIR}/manifest.json`; }
94
+ get configPath (){ return `./${this.project.root}/${METADATA_DIR}/config.json`; }
95
+ get routesPath (){ return `./${this.project.root}/${METADATA_DIR}/routes.json`; }
96
+
97
+ constructor(protected project:Project){
98
+ }
99
+ }
100
+
101
+
102
+ export class MagicMetadata {
103
+
104
+ private _config: AppConfig;
105
+ private _routesTable: RouteTable[];
106
+
107
+ paths: MagicPaths;
108
+
109
+ get theme() {
110
+ if (!this.options.theme) {
111
+ this.options.theme = env.metadata.config ?env.metadata.config.theme : 'basicHTML';
112
+ }
113
+ return this.options.theme;
114
+ }
115
+
116
+ get allow_testing() {
117
+ if (!this.options.allowTesting) {
118
+ this.options.allowTesting = env.metadata.config ?env.metadata.config.allow_testing: false;
119
+ }
120
+ return this.options.allowTesting;
121
+ }
122
+ get config() {
123
+ if (this._config) return this._config;
124
+ return this.loadConfig();
125
+ }
126
+ get routesTable(){
127
+ if (this._routesTable) return this._routesTable;
128
+ return this.loadRoutes();
129
+ }
130
+
131
+ constructor(public host: Tree, public context: SchematicContext, public options: MagicOptionScheme) {
132
+ this.paths = new MagicPaths(getProject(host, options.project));
133
+ }
134
+
135
+ loadConfig() {
136
+ this._config = readJson(this.host, this.paths.configPath);
137
+ return this._config;
138
+ }
139
+ loadRoutes() {
140
+ this._routesTable = readJson(this.host, this.paths.routesPath);
141
+ return this._routesTable;
142
+ }
143
+ }
144
+
145
+
@@ -1 +1 @@
1
- {"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,0CAA0C;AAC1C,0CAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAjBD,wCAiBC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBAAE,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;gBAAC,OAAM;aAAE;YAEhC,IAAI;gBACF,0CAA0C;gBACxC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG;gBAEH,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;iBAC3D;qBAAK;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;iBACzD;aACF;YACD,OAAO,GAAG,EAAE;gBACV,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC;AA7BD,4BA6BC","sourcesContent":["import * as EJS from \"ejs\";\r\n//import * as prettier from \"prettier\";\r\nimport * as jsbeautify from \"js-beautify\";\r\n\r\nimport { Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\r\n\r\nimport { logErr } from \"../Util\";\r\nimport { MAGIC_CLI_FOLDER } from \"../env\";\r\nimport { GeneratedFileTypes, TemplateConfig } from \"../../../types\";\r\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\r\nimport { prettierConfig } from \"../config\";\r\n\r\nexport function createGenFuncs(output : string,type: GeneratedFileTypes ) {\r\n const htmlFn = jsbeautify.html.bind(this, output, {\r\n \"max_preserve_newlines\": 0,\r\n \"wrap_line_length\" : 0,\r\n \"wrap_attributes\" : \"force-expand-multiline\",\r\n \"brace_style\" : 'collapse,preserve-inline'\r\n });\r\n\r\n const fnMap = {\r\n [GeneratedFileTypes.HTML]: htmlFn,\r\n //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),\r\n [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {\"brace_style\" : 'collapse,preserve-inline'}),\r\n [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),\r\n [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })\r\n };\r\n\r\n return fnMap[type]();\r\n}\r\n\r\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\r\n return (host:Tree, context: SchematicContext) => {\r\n EJS.renderFile(\r\n `${MAGIC_CLI_FOLDER}/${file.template}`,\r\n file.data,\r\n {\"rmWhitespace\" : true},\r\n (err, output) => {\r\n if (err) { logErr(err); return }\r\n\r\n try {\r\n //if(file.type != GeneratedFileTypes.TS) {\r\n output = createGenFuncs(output, file.type);\r\n //}\r\n\r\n let path = `${file.destination}/${file.name}`;\r\n\r\n if(host.exists(path)){\r\n host.overwrite(`${file.destination}/${file.name}`, output)\r\n } else{\r\n host.create(`${file.destination}/${file.name}`, output);\r\n }\r\n }\r\n catch (err) {\r\n logErr(output);\r\n logErr(err);\r\n }\r\n });\r\n return host;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,0CAA0C;AAC1C,0CAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAjBD,wCAiBC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;gBAAE,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;gBAAC,OAAM;aAAE;YAEhC,IAAI;gBACF,0CAA0C;gBACxC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG;gBAEH,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;iBAC3D;qBAAK;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;iBACzD;aACF;YACD,OAAO,GAAG,EAAE;gBACV,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC;AA7BD,4BA6BC","sourcesContent":["import * as EJS from \"ejs\";\n//import * as prettier from \"prettier\";\nimport * as jsbeautify from \"js-beautify\";\n\nimport { Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\n\nimport { logErr } from \"../Util\";\nimport { MAGIC_CLI_FOLDER } from \"../env\";\nimport { GeneratedFileTypes, TemplateConfig } from \"../../../types\";\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\nimport { prettierConfig } from \"../config\";\n\nexport function createGenFuncs(output : string,type: GeneratedFileTypes ) {\n const htmlFn = jsbeautify.html.bind(this, output, {\n \"max_preserve_newlines\": 0,\n \"wrap_line_length\" : 0,\n \"wrap_attributes\" : \"force-expand-multiline\",\n \"brace_style\" : 'collapse,preserve-inline'\n });\n\n const fnMap = {\n [GeneratedFileTypes.HTML]: htmlFn,\n //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),\n [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {\"brace_style\" : 'collapse,preserve-inline'}),\n [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),\n [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })\n };\n\n return fnMap[type]();\n}\n\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\n return (host:Tree, context: SchematicContext) => {\n EJS.renderFile(\n `${MAGIC_CLI_FOLDER}/${file.template}`,\n file.data,\n {\"rmWhitespace\" : true},\n (err, output) => {\n if (err) { logErr(err); return }\n\n try {\n //if(file.type != GeneratedFileTypes.TS) {\n output = createGenFuncs(output, file.type);\n //}\n\n let path = `${file.destination}/${file.name}`;\n\n if(host.exists(path)){\n host.overwrite(`${file.destination}/${file.name}`, output)\n } else{\n host.create(`${file.destination}/${file.name}`, output);\n }\n }\n catch (err) {\n logErr(output);\n logErr(err);\n }\n });\n return host;\n }\n}\n"]}
@@ -1,61 +1,61 @@
1
- import * as EJS from "ejs";
2
- //import * as prettier from "prettier";
3
- import * as jsbeautify from "js-beautify";
4
-
5
- import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics";
6
-
7
- import { logErr } from "../Util";
8
- import { MAGIC_CLI_FOLDER } from "../env";
9
- import { GeneratedFileTypes, TemplateConfig } from "../../../types";
10
- import { MagicOptionScheme } from "./magic-option.scheme";
11
- import { prettierConfig } from "../config";
12
-
13
- export function createGenFuncs(output : string,type: GeneratedFileTypes ) {
14
- const htmlFn = jsbeautify.html.bind(this, output, {
15
- "max_preserve_newlines": 0,
16
- "wrap_line_length" : 0,
17
- "wrap_attributes" : "force-expand-multiline",
18
- "brace_style" : 'collapse,preserve-inline'
19
- });
20
-
21
- const fnMap = {
22
- [GeneratedFileTypes.HTML]: htmlFn,
23
- //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),
24
- [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {"brace_style" : 'collapse,preserve-inline'}),
25
- [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),
26
- [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })
27
- };
28
-
29
- return fnMap[type]();
30
- }
31
-
32
- export function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{
33
- return (host:Tree, context: SchematicContext) => {
34
- EJS.renderFile(
35
- `${MAGIC_CLI_FOLDER}/${file.template}`,
36
- file.data,
37
- {"rmWhitespace" : true},
38
- (err, output) => {
39
- if (err) { logErr(err); return }
40
-
41
- try {
42
- //if(file.type != GeneratedFileTypes.TS) {
43
- output = createGenFuncs(output, file.type);
44
- //}
45
-
46
- let path = `${file.destination}/${file.name}`;
47
-
48
- if(host.exists(path)){
49
- host.overwrite(`${file.destination}/${file.name}`, output)
50
- } else{
51
- host.create(`${file.destination}/${file.name}`, output);
52
- }
53
- }
54
- catch (err) {
55
- logErr(output);
56
- logErr(err);
57
- }
58
- });
59
- return host;
60
- }
61
- }
1
+ import * as EJS from "ejs";
2
+ //import * as prettier from "prettier";
3
+ import * as jsbeautify from "js-beautify";
4
+
5
+ import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics";
6
+
7
+ import { logErr } from "../Util";
8
+ import { MAGIC_CLI_FOLDER } from "../env";
9
+ import { GeneratedFileTypes, TemplateConfig } from "../../../types";
10
+ import { MagicOptionScheme } from "./magic-option.scheme";
11
+ import { prettierConfig } from "../config";
12
+
13
+ export function createGenFuncs(output : string,type: GeneratedFileTypes ) {
14
+ const htmlFn = jsbeautify.html.bind(this, output, {
15
+ "max_preserve_newlines": 0,
16
+ "wrap_line_length" : 0,
17
+ "wrap_attributes" : "force-expand-multiline",
18
+ "brace_style" : 'collapse,preserve-inline'
19
+ });
20
+
21
+ const fnMap = {
22
+ [GeneratedFileTypes.HTML]: htmlFn,
23
+ //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),
24
+ [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {"brace_style" : 'collapse,preserve-inline'}),
25
+ [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),
26
+ [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })
27
+ };
28
+
29
+ return fnMap[type]();
30
+ }
31
+
32
+ export function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{
33
+ return (host:Tree, context: SchematicContext) => {
34
+ EJS.renderFile(
35
+ `${MAGIC_CLI_FOLDER}/${file.template}`,
36
+ file.data,
37
+ {"rmWhitespace" : true},
38
+ (err, output) => {
39
+ if (err) { logErr(err); return }
40
+
41
+ try {
42
+ //if(file.type != GeneratedFileTypes.TS) {
43
+ output = createGenFuncs(output, file.type);
44
+ //}
45
+
46
+ let path = `${file.destination}/${file.name}`;
47
+
48
+ if(host.exists(path)){
49
+ host.overwrite(`${file.destination}/${file.name}`, output)
50
+ } else{
51
+ host.create(`${file.destination}/${file.name}`, output);
52
+ }
53
+ }
54
+ catch (err) {
55
+ logErr(output);
56
+ logErr(err);
57
+ }
58
+ });
59
+ return host;
60
+ }
61
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"init-add-modules.rule.js","sourceRoot":"","sources":["init-add-modules.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n apply, branchAndMerge,\r\n chain,\r\n MergeStrategy, mergeWith,\r\n move,\r\n Rule,\r\n SchematicContext, SchematicsException,\r\n Tree,\r\n url\r\n} from \"@angular-devkit/schematics\";\r\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\r\nimport {env, GEN_FOLDER, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\r\nimport { LogLn } from \"../Util\";\r\nimport { Route, RouteTable, webModuleItem } from \"../../../types/interfaces/app\";\r\nimport {addModuleImportToModule, getSourceFile} from \"../../utils/ast\";\r\nimport { ModuleInfo } from \"../../../types/interfaces/env.interface\";\r\n\r\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\r\nimport * as ts from \"typescript\";\r\n//-------------------------------------------------------------------------------------------------\r\n// init generate module into env.modulesGen\r\n//-------------------------------------------------------------------------------------------------\r\nexport function initGenModules(options: MagicOptionScheme): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n let metadata = env.metadata;\r\n env.modulesGen = [];\r\n let web_modules:webModuleItem [] = metadata.config.web_modules;\r\n\r\n // Generate only one module from --module=xxxx\r\n if (options.module) {\r\n let moduleInfo : ModuleInfo = new ModuleInfo(options.module, options.loadOnDemand);\r\n env.modulesGen.push(moduleInfo)\r\n } else {\r\n\r\n // Generate list of components from config.json, properties web_modules.module_name\r\n for (let modulePath of web_modules) {\r\n //LogLn(` Web Module name: [${modulePath.module_name}] IsLoadOnDemand? [${modulePath.load_on_demand}]`);\r\n let moduleInfo : ModuleInfo = new ModuleInfo(modulePath.module_name, modulePath.load_on_demand);\r\n env.modulesGen.push(moduleInfo);\r\n }\r\n }\r\n LogLn(` Number of modules to be check for generate: ${web_modules.length}`);\r\n\r\n\r\n\r\n return tree;\r\n };\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// overwrite the web module file name with the new content\r\n//-------------------------------------------------------------------------------------------------\r\nexport function overwriteWebModuleFileName(options: any, moduleNameFileName:string, content:string): Rule {\r\n return (tree: Tree, _context: SchematicContext) => {\r\n\r\n if(!tree.exists(moduleNameFileName)){\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${moduleNameFileName}`);\r\n }\r\n\r\n tree.overwrite(moduleNameFileName, content);\r\n return tree;\r\n };\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// update the the web module file name with the new class name\r\n//-------------------------------------------------------------------------------------------------\r\nexport function updateWebModuleFileWithNewClassName(options: any, webModuleName:string): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n let rules:Rule[] = [];\r\n\r\n const origModuleFileName = getWebModuleFullFileName(webModuleName)\r\n\r\n // create new class name for \"web Module Name\"\r\n let newClassModuleName = getWebModuleClass(webModuleName );\r\n\r\n //read the exist module file name\r\n const text = tree.read(origModuleFileName);\r\n\r\n if (text === null) {\r\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\r\n }\r\n let sourceText = text.toString('utf-8');\r\n\r\n if (sourceText !== \"\") {\r\n let newsourceText: string = sourceText.replace(`MagicGenLibModule`, newClassModuleName);\r\n rules.push(overwriteWebModuleFileName(options, origModuleFileName, newsourceText));\r\n\r\n }\r\n return chain(rules)(tree, context);\r\n };\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// copy the two default files into the web module path\r\n//-------------------------------------------------------------------------------------------------\r\nfunction copyDefaultMagicFilesToWebModule(options:MagicOptionScheme, webModuleName:string): Rule {\r\n return (tree: Tree,context:SchematicContext) => {\r\n const webModulePath = getDestinationModulePathByWebModuleName(webModuleName);\r\n\r\n return chain([\r\n branchAndMerge(chain([\r\n mergeWith(\r\n apply(url(`./../mg-add/files/src/app/magic/`), [\r\n\r\n move(webModulePath)\r\n ]), MergeStrategy.AllowCreationConflict)\r\n ]))\r\n ])(tree,context);\r\n }\r\n}\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// delete LazyLoadService for non root modules\r\n//-------------------------------------------------------------------------------------------------\r\nfunction deleteLazyLoadService( webModuleName:string): Rule {\r\n return (tree: Tree) => {\r\n const lazyLoaderServicePath = getDestinationModulePathByWebModuleName(webModuleName) + '/lazy-loader.service.ts';\r\n\r\n if(webModuleName != '') {\r\n if (!tree.exists(lazyLoaderServicePath)) {\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! :lazyLoaderServicePath`);\r\n }\r\n\r\n tree.delete(lazyLoaderServicePath);\r\n return tree;\r\n }\r\n }\r\n}\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// get destination path according to the send webModuleName\r\n//-------------------------------------------------------------------------------------------------\r\n export function getDestinationModulePathByWebModuleName(webModuleName:string):string {\r\n const newDestModulePath = `${env.metadata.paths.rootMagicGenFolder}/${GEN_FOLDER}/${webModuleName}`;\r\n return newDestModulePath;\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// get web module full file name according to the send webModuleName\r\n//-------------------------------------------------------------------------------------------------\r\nfunction getWebModuleFullFileName(webModuleName:string):string {\r\n// calc the path of new the module\r\n const newDestModulePath = getDestinationModulePathByWebModuleName(webModuleName);\r\n return `${newDestModulePath}/magic.gen.lib.module.ts`;\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// get web module class according to the send webModuleName\r\n//-------------------------------------------------------------------------------------------------\r\nfunction getWebModuleClass(webModuleName:string):string {\r\n return `Magic` + webModuleName + `Module`;\r\n}\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// add magic module to app module\r\n//-------------------------------------------------------------------------------------------------\r\nfunction addMagicModuleToAppModule(options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\r\n return (tree: Tree , context : SchematicContext)=>{\r\n const project = env.project;\r\n\r\n LogLn(` [>] add New Web Module :[${moduleName}] `);\r\n LogLn(` [>] from :[${srcModuleName}]`);\r\n LogLn(` [>] To App Module :[${modulePath}]`);\r\n addModuleImportToModule(\r\n tree,\r\n modulePath, // for now we will update env.metadata.paths.magicGenLibModule\r\n moduleName, // 'MagicXXXModule',\r\n srcModuleName, // `./XXX/magic.gen.lib.module`\r\n );\r\n return tree;\r\n }\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// create module\r\n//-------------------------------------------------------------------------------------------------\r\nexport function checkAndCreateModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand: boolean ): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules: Rule[] = [];\r\n const webModuleFullFileName = getWebModuleFullFileName(webModuleName);\r\n // only if not exist create the new 2 files magic.gen.lib.module.ts & component-list.g.ts\r\n if (!tree.exists(webModuleFullFileName)) {\r\n rules.push(copyDefaultMagicFilesToWebModule(options, webModuleName));\r\n rules.push(updateWebModuleFileWithNewClassName(tree, webModuleName));\r\n rules.push(deleteLazyLoadService(webModuleName));\r\n // for NON load on demand we need to update magic root module\r\n if (!loadOnDemand) {\r\n const newDestModulePath = `./${webModuleName}/magic.gen.lib.module`;\r\n const webModuleClass = getWebModuleClass(webModuleName);\r\n rules.push(addMagicModuleToAppModule(options, env.metadata.paths.magicGenLibModule, webModuleClass, newDestModulePath));\r\n }\r\n return chain(rules)(tree, context);\r\n }\r\n ;\r\n }\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// check if module is exist, only if not exist create the web module\r\n//-------------------------------------------------------------------------------------------------\r\nexport function generateWebModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand:boolean ): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules:Rule[] = [];\r\n\r\n LogLn(` [>]Handling Web Module named: [${webModuleName}] isLoadOnDemand: [${loadOnDemand}]`);\r\n rules.push(checkAndCreateModule(options, webModuleName, loadOnDemand));\r\n rules.push(checkAndCreateRouteForModule(options, webModuleName, loadOnDemand));\r\n\r\n return chain(rules)(tree,context);\r\n };\r\n}\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// generate all the modules in env.modulesGen\r\n//-------------------------------------------------------------------------------------------------\r\nexport function generateWebModules(options: MagicOptionScheme): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules:Rule[] = [];\r\n\r\n for (let webModuleInfo of env.modulesGen){\r\n if (webModuleInfo.moduleName !== undefined && webModuleInfo.moduleName !== \"\") {\r\n rules.push(generateWebModule(options, webModuleInfo.moduleName, webModuleInfo.loadOnDemand));\r\n }\r\n }\r\n\r\n return chain(rules)(tree,context);\r\n };\r\n}\r\n\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// check if module is exist, only if not exist create the web module\r\n//-------------------------------------------------------------------------------------------------\r\nexport function checkAndCreateRouteForModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand :boolean): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules:Rule[] = [];\r\n\r\n if (loadOnDemand) {\r\n const newDestRoutePathForModule = env.metadata.paths.getRoutePathForWebModule(webModuleName);\r\n\r\n // only if file not exist then copy the default route\r\n if (!tree.exists(newDestRoutePathForModule)) {\r\n rules.push(createRoute(options, webModuleName));\r\n }\r\n else{\r\n // if file exist then only update the magic.gen.lib.module.ts\r\n rules.push(addRouteFileToModuleFile(options, webModuleName));\r\n }\r\n }\r\n return chain(rules)(tree,context);\r\n };\r\n}\r\n\r\n\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// create route for module\r\n//-------------------------------------------------------------------------------------------------\r\nexport function createRoute(options: MagicOptionScheme, webModuleName:string): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules:Rule[] = [];\r\n\r\n rules.push(copyDefaultRouteMagicFilesToWebModule(options, webModuleName));\r\n // --------------------------------------------------------\r\n // // generate the route for module /////\r\n // let routeItem : RouteTable = new RouteTable();\r\n // routeItem.module_name = webModuleName;\r\n //\r\n // let route:Route = new Route();\r\n // route.ModuleName = webModuleName;\r\n // route.OutletName=\"\";\r\n // route.RouteName=\"\";\r\n // route.children=null;\r\n //\r\n // routeItem.routesArray = [route];\r\n // rules.push(genRouteFile(options, routeItem ));\r\n // --------------------------------------------------------\r\n // update the new MagicRoutingModule in file magic.gen.lib.module.ts of the module\r\n\r\n\r\n rules.push(addRouteFileToModuleFile(options, webModuleName));\r\n\r\n return chain(rules)(tree,context);\r\n };\r\n}\r\n\r\n//-------------------------------------------------------------------------------------------------\r\n// create route for module\r\n//-------------------------------------------------------------------------------------------------\r\nexport function addRouteFileToModuleFile(options: MagicOptionScheme, webModuleName:string): Rule {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let rules:Rule[] = [];\r\n\r\n const modulePath = getWebModuleFullFileName(webModuleName); // get the magic.gen.lib.module.ts according to the module name\r\n const moduleName = `MagicRoutingModule`;//for now it will be the same for all modules ... getWebModuleClass(webModuleName);\r\n const srcModuleName = `./app.routes`;\r\n\r\n rules.push(addMagicModuleToAppModule(options, modulePath, moduleName, srcModuleName));\r\n\r\n return chain(rules)(tree,context);\r\n };\r\n}\r\n//-------------------------------------------------------------------------------------------------\r\n// copy the two default files into the web module path\r\n//-------------------------------------------------------------------------------------------------\r\nfunction copyDefaultRouteMagicFilesToWebModule(options:MagicOptionScheme, webModuleName:string): Rule {\r\n return (tree: Tree,context:SchematicContext) => {\r\n const routeFileForWebModulePath = env.metadata.paths.getRoutePathForWebModule(webModuleName);\r\n\r\n\r\n if(tree.exists(routeFileForWebModulePath))\r\n {\r\n let rules:Rule[] = [];\r\n return chain(rules)(tree,context);\r\n }\r\n else\r\n {\r\n const webModulePath = getDestinationModulePathByWebModuleName(webModuleName);\r\n LogLn(`[ >] copy default Route file to webModule [${webModuleName}]`)\r\n return chain([\r\n branchAndMerge(chain([\r\n mergeWith(\r\n apply(url(`./../mg-add/webModule/`), [\r\n\r\n move(webModulePath)\r\n ]), MergeStrategy.AllowCreationConflict)\r\n ]))\r\n ])(tree,context);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"init-add-modules.rule.js","sourceRoot":"","sources":["init-add-modules.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n apply, branchAndMerge,\n chain,\n MergeStrategy, mergeWith,\n move,\n Rule,\n SchematicContext, SchematicsException,\n Tree,\n url\n} from \"@angular-devkit/schematics\";\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\nimport {env, GEN_FOLDER, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\nimport { LogLn } from \"../Util\";\nimport { Route, RouteTable, webModuleItem } from \"../../../types/interfaces/app\";\nimport {addModuleImportToModule, getSourceFile} from \"../../utils/ast\";\nimport { ModuleInfo } from \"../../../types/interfaces/env.interface\";\n\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\nimport * as ts from \"typescript\";\n//-------------------------------------------------------------------------------------------------\n// init generate module into env.modulesGen\n//-------------------------------------------------------------------------------------------------\nexport function initGenModules(options: MagicOptionScheme): Rule {\n return (tree: Tree, context: SchematicContext) => {\n let metadata = env.metadata;\n env.modulesGen = [];\n let web_modules:webModuleItem [] = metadata.config.web_modules;\n\n // Generate only one module from --module=xxxx\n if (options.module) {\n let moduleInfo : ModuleInfo = new ModuleInfo(options.module, options.loadOnDemand);\n env.modulesGen.push(moduleInfo)\n } else {\n\n // Generate list of components from config.json, properties web_modules.module_name\n for (let modulePath of web_modules) {\n //LogLn(` Web Module name: [${modulePath.module_name}] IsLoadOnDemand? [${modulePath.load_on_demand}]`);\n let moduleInfo : ModuleInfo = new ModuleInfo(modulePath.module_name, modulePath.load_on_demand);\n env.modulesGen.push(moduleInfo);\n }\n }\n LogLn(` Number of modules to be check for generate: ${web_modules.length}`);\n\n\n\n return tree;\n };\n}\n\n//-------------------------------------------------------------------------------------------------\n// overwrite the web module file name with the new content\n//-------------------------------------------------------------------------------------------------\nexport function overwriteWebModuleFileName(options: any, moduleNameFileName:string, content:string): Rule {\n return (tree: Tree, _context: SchematicContext) => {\n\n if(!tree.exists(moduleNameFileName)){\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${moduleNameFileName}`);\n }\n\n tree.overwrite(moduleNameFileName, content);\n return tree;\n };\n}\n\n//-------------------------------------------------------------------------------------------------\n// update the the web module file name with the new class name\n//-------------------------------------------------------------------------------------------------\nexport function updateWebModuleFileWithNewClassName(options: any, webModuleName:string): Rule {\n return (tree: Tree, context: SchematicContext) => {\n let rules:Rule[] = [];\n\n const origModuleFileName = getWebModuleFullFileName(webModuleName)\n\n // create new class name for \"web Module Name\"\n let newClassModuleName = getWebModuleClass(webModuleName );\n\n //read the exist module file name\n const text = tree.read(origModuleFileName);\n\n if (text === null) {\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\n }\n let sourceText = text.toString('utf-8');\n\n if (sourceText !== \"\") {\n let newsourceText: string = sourceText.replace(`MagicGenLibModule`, newClassModuleName);\n rules.push(overwriteWebModuleFileName(options, origModuleFileName, newsourceText));\n\n }\n return chain(rules)(tree, context);\n };\n}\n\n//-------------------------------------------------------------------------------------------------\n// copy the two default files into the web module path\n//-------------------------------------------------------------------------------------------------\nfunction copyDefaultMagicFilesToWebModule(options:MagicOptionScheme, webModuleName:string): Rule {\n return (tree: Tree,context:SchematicContext) => {\n const webModulePath = getDestinationModulePathByWebModuleName(webModuleName);\n\n return chain([\n branchAndMerge(chain([\n mergeWith(\n apply(url(`./../mg-add/files/src/app/magic/`), [\n\n move(webModulePath)\n ]), MergeStrategy.AllowCreationConflict)\n ]))\n ])(tree,context);\n }\n}\n\n\n//-------------------------------------------------------------------------------------------------\n// delete LazyLoadService for non root modules\n//-------------------------------------------------------------------------------------------------\nfunction deleteLazyLoadService( webModuleName:string): Rule {\n return (tree: Tree) => {\n const lazyLoaderServicePath = getDestinationModulePathByWebModuleName(webModuleName) + '/lazy-loader.service.ts';\n\n if(webModuleName != '') {\n if (!tree.exists(lazyLoaderServicePath)) {\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! :lazyLoaderServicePath`);\n }\n\n tree.delete(lazyLoaderServicePath);\n return tree;\n }\n }\n}\n\n\n//-------------------------------------------------------------------------------------------------\n// get destination path according to the send webModuleName\n//-------------------------------------------------------------------------------------------------\n export function getDestinationModulePathByWebModuleName(webModuleName:string):string {\n const newDestModulePath = `${env.metadata.paths.rootMagicGenFolder}/${GEN_FOLDER}/${webModuleName}`;\n return newDestModulePath;\n}\n\n//-------------------------------------------------------------------------------------------------\n// get web module full file name according to the send webModuleName\n//-------------------------------------------------------------------------------------------------\nfunction getWebModuleFullFileName(webModuleName:string):string {\n// calc the path of new the module\n const newDestModulePath = getDestinationModulePathByWebModuleName(webModuleName);\n return `${newDestModulePath}/magic.gen.lib.module.ts`;\n}\n\n//-------------------------------------------------------------------------------------------------\n// get web module class according to the send webModuleName\n//-------------------------------------------------------------------------------------------------\nfunction getWebModuleClass(webModuleName:string):string {\n return `Magic` + webModuleName + `Module`;\n}\n\n\n//-------------------------------------------------------------------------------------------------\n// add magic module to app module\n//-------------------------------------------------------------------------------------------------\nfunction addMagicModuleToAppModule(options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\n return (tree: Tree , context : SchematicContext)=>{\n const project = env.project;\n\n LogLn(` [>] add New Web Module :[${moduleName}] `);\n LogLn(` [>] from :[${srcModuleName}]`);\n LogLn(` [>] To App Module :[${modulePath}]`);\n addModuleImportToModule(\n tree,\n modulePath, // for now we will update env.metadata.paths.magicGenLibModule\n moduleName, // 'MagicXXXModule',\n srcModuleName, // `./XXX/magic.gen.lib.module`\n );\n return tree;\n }\n}\n\n//-------------------------------------------------------------------------------------------------\n// create module\n//-------------------------------------------------------------------------------------------------\nexport function checkAndCreateModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand: boolean ): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules: Rule[] = [];\n const webModuleFullFileName = getWebModuleFullFileName(webModuleName);\n // only if not exist create the new 2 files magic.gen.lib.module.ts & component-list.g.ts\n if (!tree.exists(webModuleFullFileName)) {\n rules.push(copyDefaultMagicFilesToWebModule(options, webModuleName));\n rules.push(updateWebModuleFileWithNewClassName(tree, webModuleName));\n rules.push(deleteLazyLoadService(webModuleName));\n // for NON load on demand we need to update magic root module\n if (!loadOnDemand) {\n const newDestModulePath = `./${webModuleName}/magic.gen.lib.module`;\n const webModuleClass = getWebModuleClass(webModuleName);\n rules.push(addMagicModuleToAppModule(options, env.metadata.paths.magicGenLibModule, webModuleClass, newDestModulePath));\n }\n return chain(rules)(tree, context);\n }\n ;\n }\n}\n\n//-------------------------------------------------------------------------------------------------\n// check if module is exist, only if not exist create the web module\n//-------------------------------------------------------------------------------------------------\nexport function generateWebModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand:boolean ): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules:Rule[] = [];\n\n LogLn(` [>]Handling Web Module named: [${webModuleName}] isLoadOnDemand: [${loadOnDemand}]`);\n rules.push(checkAndCreateModule(options, webModuleName, loadOnDemand));\n rules.push(checkAndCreateRouteForModule(options, webModuleName, loadOnDemand));\n\n return chain(rules)(tree,context);\n };\n}\n\n\n//-------------------------------------------------------------------------------------------------\n// generate all the modules in env.modulesGen\n//-------------------------------------------------------------------------------------------------\nexport function generateWebModules(options: MagicOptionScheme): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules:Rule[] = [];\n\n for (let webModuleInfo of env.modulesGen){\n if (webModuleInfo.moduleName !== undefined && webModuleInfo.moduleName !== \"\") {\n rules.push(generateWebModule(options, webModuleInfo.moduleName, webModuleInfo.loadOnDemand));\n }\n }\n\n return chain(rules)(tree,context);\n };\n}\n\n\n\n//-------------------------------------------------------------------------------------------------\n// check if module is exist, only if not exist create the web module\n//-------------------------------------------------------------------------------------------------\nexport function checkAndCreateRouteForModule(options: MagicOptionScheme, webModuleName:string, loadOnDemand :boolean): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules:Rule[] = [];\n\n if (loadOnDemand) {\n const newDestRoutePathForModule = env.metadata.paths.getRoutePathForWebModule(webModuleName);\n\n // only if file not exist then copy the default route\n if (!tree.exists(newDestRoutePathForModule)) {\n rules.push(createRoute(options, webModuleName));\n }\n else{\n // if file exist then only update the magic.gen.lib.module.ts\n rules.push(addRouteFileToModuleFile(options, webModuleName));\n }\n }\n return chain(rules)(tree,context);\n };\n}\n\n\n\n//-------------------------------------------------------------------------------------------------\n// create route for module\n//-------------------------------------------------------------------------------------------------\nexport function createRoute(options: MagicOptionScheme, webModuleName:string): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules:Rule[] = [];\n\n rules.push(copyDefaultRouteMagicFilesToWebModule(options, webModuleName));\n // --------------------------------------------------------\n // // generate the route for module /////\n // let routeItem : RouteTable = new RouteTable();\n // routeItem.module_name = webModuleName;\n //\n // let route:Route = new Route();\n // route.ModuleName = webModuleName;\n // route.OutletName=\"\";\n // route.RouteName=\"\";\n // route.children=null;\n //\n // routeItem.routesArray = [route];\n // rules.push(genRouteFile(options, routeItem ));\n // --------------------------------------------------------\n // update the new MagicRoutingModule in file magic.gen.lib.module.ts of the module\n\n\n rules.push(addRouteFileToModuleFile(options, webModuleName));\n\n return chain(rules)(tree,context);\n };\n}\n\n//-------------------------------------------------------------------------------------------------\n// create route for module\n//-------------------------------------------------------------------------------------------------\nexport function addRouteFileToModuleFile(options: MagicOptionScheme, webModuleName:string): Rule {\n return (tree: Tree, context: SchematicContext) => {\n\n let rules:Rule[] = [];\n\n const modulePath = getWebModuleFullFileName(webModuleName); // get the magic.gen.lib.module.ts according to the module name\n const moduleName = `MagicRoutingModule`;//for now it will be the same for all modules ... getWebModuleClass(webModuleName);\n const srcModuleName = `./app.routes`;\n\n rules.push(addMagicModuleToAppModule(options, modulePath, moduleName, srcModuleName));\n\n return chain(rules)(tree,context);\n };\n}\n//-------------------------------------------------------------------------------------------------\n// copy the two default files into the web module path\n//-------------------------------------------------------------------------------------------------\nfunction copyDefaultRouteMagicFilesToWebModule(options:MagicOptionScheme, webModuleName:string): Rule {\n return (tree: Tree,context:SchematicContext) => {\n const routeFileForWebModulePath = env.metadata.paths.getRoutePathForWebModule(webModuleName);\n\n\n if(tree.exists(routeFileForWebModulePath))\n {\n let rules:Rule[] = [];\n return chain(rules)(tree,context);\n }\n else\n {\n const webModulePath = getDestinationModulePathByWebModuleName(webModuleName);\n LogLn(`[ >] copy default Route file to webModule [${webModuleName}]`)\n return chain([\n branchAndMerge(chain([\n mergeWith(\n apply(url(`./../mg-add/webModule/`), [\n\n move(webModulePath)\n ]), MergeStrategy.AllowCreationConflict)\n ]))\n ])(tree,context);\n }\n }\n}\n"]}