@wavemaker-ai/angular-codegen 1.0.0-rc.647469

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 (177) hide show
  1. package/.npmrc +1 -0
  2. package/angular-app/.npmrc +1 -0
  3. package/angular-app/angular.json +274 -0
  4. package/angular-app/build-scripts/build.js +36 -0
  5. package/angular-app/build-scripts/index-html-transform-ng-serve.ts +20 -0
  6. package/angular-app/build-scripts/index-html-transform.js +28 -0
  7. package/angular-app/build-scripts/optimize-css.gulpfile.js +101 -0
  8. package/angular-app/build-scripts/post-build.js +217 -0
  9. package/angular-app/build-scripts/update-version.js +25 -0
  10. package/angular-app/dependency-report.html +124 -0
  11. package/angular-app/generate-dependency-report.js +240 -0
  12. package/angular-app/npm-shrinkwrap.json +24224 -0
  13. package/angular-app/package-lock.json +24224 -0
  14. package/angular-app/package.json +129 -0
  15. package/angular-app/proxy.conf.js +14 -0
  16. package/angular-app/src/.browserslistrc +12 -0
  17. package/angular-app/src/app/app.component.css +0 -0
  18. package/angular-app/src/app/app.component.script.js +3 -0
  19. package/angular-app/src/app/app.component.variables.ts +3 -0
  20. package/angular-app/src/app/app.routes.ts +5 -0
  21. package/angular-app/src/app/lazy-load-scripts.resolve.ts +13 -0
  22. package/angular-app/src/app/prefabs/prefab-config.js +2 -0
  23. package/angular-app/src/app/wm-project-properties.ts +3 -0
  24. package/angular-app/src/assets/.gitkeep +0 -0
  25. package/angular-app/src/assets/print.css +32 -0
  26. package/angular-app/src/assets/styles/css/bootstrap.css.map +1 -0
  27. package/angular-app/src/assets/styles/css/font/summernote.eot +0 -0
  28. package/angular-app/src/assets/styles/css/font/summernote.ttf +0 -0
  29. package/angular-app/src/assets/styles/css/font/summernote.woff +0 -0
  30. package/angular-app/src/assets/styles/css/font/summernote.woff2 +0 -0
  31. package/angular-app/src/assets/styles/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. package/angular-app/src/assets/styles/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. package/angular-app/src/assets/styles/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. package/angular-app/src/assets/styles/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. package/angular-app/src/assets/styles/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. package/angular-app/src/assets/styles/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. package/angular-app/src/assets/styles/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. package/angular-app/src/assets/styles/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. package/angular-app/src/assets/styles/css/images/ui-icons_222222_256x240.png +0 -0
  40. package/angular-app/src/assets/styles/css/images/ui-icons_2e83ff_256x240.png +0 -0
  41. package/angular-app/src/assets/styles/css/images/ui-icons_444444_256x240.png +0 -0
  42. package/angular-app/src/assets/styles/css/images/ui-icons_454545_256x240.png +0 -0
  43. package/angular-app/src/assets/styles/css/images/ui-icons_555555_256x240.png +0 -0
  44. package/angular-app/src/assets/styles/css/images/ui-icons_777620_256x240.png +0 -0
  45. package/angular-app/src/assets/styles/css/images/ui-icons_777777_256x240.png +0 -0
  46. package/angular-app/src/assets/styles/css/images/ui-icons_888888_256x240.png +0 -0
  47. package/angular-app/src/assets/styles/css/images/ui-icons_cc0000_256x240.png +0 -0
  48. package/angular-app/src/assets/styles/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  49. package/angular-app/src/assets/styles/css/images/ui-icons_ffffff_256x240.png +0 -0
  50. package/angular-app/src/assets/styles/css/wm-responsive.css +1 -0
  51. package/angular-app/src/assets/styles/css/wm-style.css +1 -0
  52. package/angular-app/src/assets/styles/fonts/FontAwesome.otf +0 -0
  53. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.eot +0 -0
  54. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.svg +2671 -0
  55. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.ttf +0 -0
  56. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff +0 -0
  57. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff2 +0 -0
  58. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.eot +0 -0
  59. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.svg +288 -0
  60. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.ttf +0 -0
  61. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff +0 -0
  62. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff2 +0 -0
  63. package/angular-app/src/assets/styles/fonts/wavicon.eot +0 -0
  64. package/angular-app/src/assets/styles/fonts/wavicon.ttf +0 -0
  65. package/angular-app/src/assets/styles/fonts/wavicon.woff +0 -0
  66. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.eot +0 -0
  67. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.ttf +0 -0
  68. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.woff +0 -0
  69. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.eot +0 -0
  70. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.ttf +0 -0
  71. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.woff +0 -0
  72. package/angular-app/src/assets/styles/images/live-sync-icon.png +0 -0
  73. package/angular-app/src/assets/styles/images/live-sync-touch-icon.png +0 -0
  74. package/angular-app/src/assets/styles/images/loader.gif +0 -0
  75. package/angular-app/src/assets/styles/images/spinner-small.gif +0 -0
  76. package/angular-app/src/assets/styles/images/ui-icons.png +0 -0
  77. package/angular-app/src/environments/environment.dev.ts +3 -0
  78. package/angular-app/src/environments/environment.prod.ts +3 -0
  79. package/angular-app/src/environments/environment.ts +16 -0
  80. package/angular-app/src/framework/services/app-extension.service.ts +20 -0
  81. package/angular-app/src/framework/services/app-js-provider.service.ts +15 -0
  82. package/angular-app/src/framework/services/app-variables-provider.service.ts +15 -0
  83. package/angular-app/src/framework/services/component-ref-provider.service.ts +44 -0
  84. package/angular-app/src/framework/services/customwidget-config-provider.service.ts +13 -0
  85. package/angular-app/src/framework/services/lazy-component-ref-provider.service.ts +56 -0
  86. package/angular-app/src/framework/services/prefab-config-provider.service.ts +13 -0
  87. package/angular-app/src/framework/util/lazy-module-routes.ts +4 -0
  88. package/angular-app/src/framework/util/page-util.ts +7 -0
  89. package/angular-app/src/index.html +17 -0
  90. package/angular-app/src/main.ts +70 -0
  91. package/angular-app/src/polyfills.ts +53 -0
  92. package/angular-app/src/setup-jest.js +121 -0
  93. package/angular-app/src/styles.css +1 -0
  94. package/angular-app/src/tsconfig.app.json +17 -0
  95. package/angular-app/src/tslint.json +17 -0
  96. package/angular-app/src/wm-namespace.js +13 -0
  97. package/angular-app/tsconfig.json +94 -0
  98. package/angular-app/tsconfig.web-app.json +81 -0
  99. package/angular-app/wm-custom-webpack.config.js +51 -0
  100. package/build-angular-app.js +522 -0
  101. package/build-util.js +89 -0
  102. package/dependencies/app.component.html +40 -0
  103. package/dependencies/custom-widgets-bundle.cjs.js +421 -0
  104. package/dependencies/expression-parser.cjs.js +30154 -0
  105. package/dependencies/pipe-provider.cjs.js +208853 -0
  106. package/dependencies/transpilation-web.cjs.js +106547 -0
  107. package/download-packages.js +197 -0
  108. package/generate-angular-app.js +41 -0
  109. package/npm-shrinkwrap.json +8093 -0
  110. package/package-lock.json +8093 -0
  111. package/package.json +44 -0
  112. package/pwa-assets/icons/icon-128x128.png +0 -0
  113. package/pwa-assets/icons/icon-144x144.png +0 -0
  114. package/pwa-assets/icons/icon-152x152.png +0 -0
  115. package/pwa-assets/icons/icon-192x192.png +0 -0
  116. package/pwa-assets/icons/icon-384x384.png +0 -0
  117. package/pwa-assets/icons/icon-512x512.png +0 -0
  118. package/pwa-assets/icons/icon-72x72.png +0 -0
  119. package/pwa-assets/icons/icon-96x96.png +0 -0
  120. package/pwa-assets/manifest.json +59 -0
  121. package/pwa-assets/ngsw-config.json +30 -0
  122. package/pwa-assets/wmsw-worker.js +24 -0
  123. package/src/codegen-args-cli.js +1 -0
  124. package/src/codegen-cli.js +1 -0
  125. package/src/codegen.js +1 -0
  126. package/src/copy-utils.js +1 -0
  127. package/src/eslintrc_config.js +1 -0
  128. package/src/expr-parser-utils.js +1 -0
  129. package/src/gen-app-codegen-module.js +1 -0
  130. package/src/gen-app-js.js +1 -0
  131. package/src/gen-app-override-css.js +1 -0
  132. package/src/gen-app-prefabs-module.js +1 -0
  133. package/src/gen-app-routes.js +1 -0
  134. package/src/gen-app-skeleton.js +1 -0
  135. package/src/gen-app-variables.js +1 -0
  136. package/src/gen-components.js +1 -0
  137. package/src/gen-customwidget-config.js +1 -0
  138. package/src/gen-index-html.js +1 -0
  139. package/src/gen-layouts.js +1 -0
  140. package/src/gen-lazy-module-routes.js +1 -0
  141. package/src/gen-prefabs.js +1 -0
  142. package/src/gen-pwa-files.js +1 -0
  143. package/src/gen-tsconfig.js +1 -0
  144. package/src/gen-wm-project-properties.js +1 -0
  145. package/src/handlebar-helpers.js +1 -0
  146. package/src/pages-util.js +1 -0
  147. package/src/project-meta.js +1 -0
  148. package/src/update-angular-json.js +1 -0
  149. package/src/wm-namespace.js +1 -0
  150. package/src/wm-utils.js +1 -0
  151. package/templates/app-codegen.module.ts.hbs +21 -0
  152. package/templates/app-prefabs.module.ts.hbs +31 -0
  153. package/templates/app-routes.ts.hbs +14 -0
  154. package/templates/app.component.script.js.hbs +8 -0
  155. package/templates/app.config.ts.hbs +211 -0
  156. package/templates/app.module.ts.hbs +294 -0
  157. package/templates/component.config.ts.hbs +1 -0
  158. package/templates/component.expressions.ts.hbs +3 -0
  159. package/templates/component.variables.ts.hbs +3 -0
  160. package/templates/customwidget/customwidget-config.ts.hbs +6 -0
  161. package/templates/customwidget/customwidget.component.script.js.hbs +3 -0
  162. package/templates/customwidget/customwidget.component.ts.hbs +42 -0
  163. package/templates/expr-vs-fn.hbs +3 -0
  164. package/templates/layout/layout.component.ts.hbs +55 -0
  165. package/templates/layout/layout.module.ts.hbs +42 -0
  166. package/templates/lazy-module-routes.ts.hbs +3 -0
  167. package/templates/page/page.component.script.js.hbs +3 -0
  168. package/templates/page/page.component.ts.hbs +74 -0
  169. package/templates/page/page.module.ts.hbs +61 -0
  170. package/templates/partial/partial.component.script.js.hbs +3 -0
  171. package/templates/partial/partial.component.ts.hbs +61 -0
  172. package/templates/partial/partial.module.ts.hbs +43 -0
  173. package/templates/prefab/prefab-config.ts.hbs +6 -0
  174. package/templates/prefab/prefab.component.script.js.hbs +3 -0
  175. package/templates/prefab/prefab.component.ts.hbs +63 -0
  176. package/templates/prefab/prefab.module.ts.hbs +38 -0
  177. package/templates/wm-project-properties.ts.hbs +7 -0
package/.npmrc ADDED
@@ -0,0 +1 @@
1
+ legacy-peer-deps = true
@@ -0,0 +1 @@
1
+ legacy-peer-deps = true
@@ -0,0 +1,274 @@
1
+ {
2
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
+ "version": 1,
4
+ "newProjectRoot": "projects",
5
+ "projects": {
6
+ "angular-app": {
7
+ "root": "",
8
+ "sourceRoot": "src",
9
+ "projectType": "application",
10
+ "prefix": "app",
11
+ "schematics": {},
12
+ "architect": {
13
+ "build": {
14
+ "builder": "@angular-builders/custom-webpack:browser",
15
+ "options": {
16
+ "main": "src/main.ts",
17
+ "polyfills": "src/polyfills.ts",
18
+ "tsConfig": "src/tsconfig.app.json",
19
+ "assets": [
20
+ "src/favicon.ico",
21
+ "src/favicon.png",
22
+ "src/assets",
23
+ {
24
+ "glob": "**/*",
25
+ "input": "libraries/locales/moment-timezone",
26
+ "output": "/locales/moment-timezone"
27
+ },
28
+ {
29
+ "glob": "**/*",
30
+ "input": "node_modules/@wavemaker-ai/app-ng-runtime/locales/moment-timezone",
31
+ "output": "/locales/moment-timezone"
32
+ },
33
+ {
34
+ "glob": "**/*",
35
+ "input": "src/servicedefs",
36
+ "output": "/servicedefs/"
37
+ },
38
+ {
39
+ "glob": "**/*",
40
+ "input": "resources",
41
+ "output": "/resources/",
42
+ "ignore": [
43
+ "**/*.txt"
44
+ ]
45
+ }
46
+ ],
47
+ "styles": [
48
+ "src/styles.css",
49
+ "src/assets/styles/css/wm-style.css",
50
+ "src/assets/styles/css/wm-responsive.css",
51
+ {
52
+ "input": "src/assets/themes/material/style.css",
53
+ "inject": false,
54
+ "bundleName": "wm-styles"
55
+ },
56
+ {
57
+ "input": "src/assets/app.css",
58
+ "inject": false,
59
+ "bundleName": "wm-styles"
60
+ },
61
+ {
62
+ "input": "src/assets/print.css",
63
+ "inject": false,
64
+ "bundleName": "print"
65
+ }
66
+ ],
67
+ "scripts": [
68
+ "./node_modules/d3/dist/d3.min.js",
69
+ "./node_modules/@wavemaker/nvd3/build/nv.d3.min.js",
70
+ "./node_modules/jquery/dist/jquery.min.js",
71
+ "./node_modules/lodash/lodash.min.js",
72
+ "./node_modules/jquery-ui/ui/disable-selection.js",
73
+ "./node_modules/jquery-ui/ui/version.js",
74
+ "./node_modules/jquery-ui/ui/widget.js",
75
+ "./node_modules/jquery-ui/ui/scroll-parent.js",
76
+ "./node_modules/jquery-ui/ui/plugin.js",
77
+ "./node_modules/jquery-ui/ui/data.js",
78
+ "./node_modules/jquery-ui/ui/widgets/mouse.js",
79
+ "./node_modules/jquery-ui/ui/widgets/resizable.js",
80
+ "./node_modules/jquery-ui/ui/widgets/sortable.js",
81
+ "./node_modules/jquery-ui/ui/widgets/draggable.js",
82
+ "./node_modules/jquery-ui/ui/widgets/droppable.js",
83
+ "./node_modules/@wavemaker-ai/app-ng-runtime/scripts/datatable/datatable.js",
84
+ "./node_modules/@wavemaker-ai/app-ng-runtime/scripts/swipey/swipey.jquery.plugin.js",
85
+ "./node_modules/@wavemaker-ai/app-ng-runtime/scripts/jquery.ui.touch-punch/jquery.ui.touch-punch.min.js",
86
+ "./node_modules/summernote/dist/summernote-lite.min.js",
87
+ "./node_modules/iscroll/build/iscroll.js",
88
+ "./node_modules/jssha/dist/sha256.js",
89
+ "./node_modules/@ztree/ztree_v3/js/jquery.ztree.all.js",
90
+ "./node_modules/@wavemaker-ai/app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js"
91
+ ],
92
+ "allowedCommonJsDependencies": [
93
+ "angular2-websocket/angular2-websocket",
94
+ "he",
95
+ "moment",
96
+ "moment-timezone",
97
+ "x2js"
98
+ ]
99
+ },
100
+ "configurations": {
101
+ "production": {
102
+ "customWebpackConfig": {
103
+ "path": "./wm-custom-webpack.config.js"
104
+ },
105
+ "indexTransform": "./build-scripts/index-html-transform.js",
106
+ "deployUrl": "ng-bundle/",
107
+ "outputPath": "dist/ng-bundle",
108
+ "index": {
109
+ "input": "src/index.html",
110
+ "output": "../../index.html"
111
+ },
112
+ "fileReplacements": [
113
+ {
114
+ "replace": "src/environments/environment.ts",
115
+ "with": "src/environments/environment.prod.ts"
116
+ }
117
+ ],
118
+ "optimization": {
119
+ "scripts": true,
120
+ "styles": {
121
+ "minify": true,
122
+ "inlineCritical": false
123
+ },
124
+ "fonts": true
125
+ },
126
+ "outputHashing": "all",
127
+ "sourceMap": false,
128
+ "namedChunks": false,
129
+ "aot": true,
130
+ "extractLicenses": true,
131
+ "vendorChunk": false,
132
+ "buildOptimizer": true,
133
+ "budgets": [
134
+ {
135
+ "type": "initial",
136
+ "maximumWarning": "5mb"
137
+ }
138
+ ]
139
+ },
140
+ "development": {
141
+ "customWebpackConfig": {
142
+ "path": "./wm-custom-webpack.config.js"
143
+ },
144
+ "indexTransform": "./build-scripts/index-html-transform.js",
145
+ "deployUrl": "ng-bundle/",
146
+ "outputPath": "dist/ng-bundle",
147
+ "index": {
148
+ "input": "src/index.html",
149
+ "output": "../../index.html"
150
+ },
151
+ "fileReplacements": [
152
+ {
153
+ "replace": "src/environments/environment.ts",
154
+ "with": "src/environments/environment.dev.ts"
155
+ }
156
+ ],
157
+ "optimization": false,
158
+ "outputHashing": "none",
159
+ "sourceMap": true,
160
+ "namedChunks": true,
161
+ "aot": true,
162
+ "extractLicenses": false,
163
+ "vendorChunk": true,
164
+ "buildOptimizer": false,
165
+ "budgets": [
166
+ {
167
+ "type": "initial",
168
+ "maximumWarning": "2mb"
169
+ }
170
+ ]
171
+ },
172
+ "local": {
173
+ "customWebpackConfig": {
174
+ "path": "./wm-custom-webpack.config.js"
175
+ },
176
+ "indexTransform": "./build-scripts/index-html-transform.js",
177
+ "deployUrl": "ng-bundle/",
178
+ "outputPath": "dist/ng-bundle",
179
+ "index": {
180
+ "input": "src/index.html",
181
+ "output": "../../index.html"
182
+ },
183
+ "fileReplacements": [
184
+ {
185
+ "replace": "src/environments/environment.ts",
186
+ "with": "src/environments/environment.dev.ts"
187
+ }
188
+ ],
189
+ "optimization": {
190
+ "scripts": false,
191
+ "styles": {
192
+ "minify": false,
193
+ "inlineCritical": false
194
+ },
195
+ "fonts": true
196
+ },
197
+ "outputHashing": "none",
198
+ "sourceMap": true,
199
+ "namedChunks": true,
200
+ "aot": true,
201
+ "extractLicenses": false,
202
+ "vendorChunk": false,
203
+ "buildOptimizer": true,
204
+ "budgets": [
205
+ {
206
+ "type": "initial",
207
+ "maximumWarning": "2mb"
208
+ }
209
+ ]
210
+ },
211
+ "ng-serve": {
212
+ "indexTransform": "./build-scripts/index-html-transform-ng-serve.ts",
213
+ "deployUrl": "ng-bundle/",
214
+ "outputPath": "dist/ng-bundle",
215
+ "index": "src/index.html",
216
+ "fileReplacements": [
217
+ {
218
+ "replace": "src/environments/environment.ts",
219
+ "with": "src/environments/environment.dev.ts"
220
+ }
221
+ ],
222
+ "optimization": false,
223
+ "outputHashing": "none",
224
+ "sourceMap": true,
225
+ "namedChunks": true,
226
+ "aot": true,
227
+ "extractLicenses": false,
228
+ "vendorChunk": true,
229
+ "buildOptimizer": false,
230
+ "budgets": [
231
+ {
232
+ "type": "initial",
233
+ "maximumWarning": "2mb"
234
+ }
235
+ ]
236
+ }
237
+ },
238
+ "defaultConfiguration": "production"
239
+ },
240
+ "serve": {
241
+ "builder": "@angular-builders/custom-webpack:dev-server",
242
+ "configurations": {
243
+ "development": {
244
+ "buildTarget": "angular-app:build:ng-serve",
245
+ "proxyConfig": "proxy.conf.js"
246
+ }
247
+ },
248
+ "defaultConfiguration": "development"
249
+ },
250
+ "extract-i18n": {
251
+ "builder": "@angular-devkit/build-angular:extract-i18n",
252
+ "options": {
253
+ "buildTarget": "angular-app:build"
254
+ }
255
+ },
256
+ "lint": {
257
+ "builder": "@angular-eslint/builder:lint",
258
+ "options": {
259
+ "lintFilePatterns": [
260
+ "src/**/*.ts",
261
+ "src/**/*.html"
262
+ ]
263
+ }
264
+ }
265
+ }
266
+ }
267
+ },
268
+ "cli": {
269
+ "analytics": "fe5e8f46-2dff-4044-b3b8-8a1307278ce6",
270
+ "schematicCollections": [
271
+ "@angular-eslint/schematics"
272
+ ]
273
+ }
274
+ }
@@ -0,0 +1,36 @@
1
+ const { spawnSync } = require('child_process');
2
+ const path = require('path');
3
+
4
+ let processArgs = process.argv;
5
+ if (processArgs.findIndex(arg => arg.startsWith('--max-old-space-size')) !== -1) {
6
+ process.env.NODE_OPTIONS = processArgs.pop();
7
+ console.log("Setting node options: ", process.env.NODE_OPTIONS);
8
+ }
9
+
10
+ const args = processArgs.slice(2);
11
+ const ngBuildArgs = ['build', ...args];
12
+ console.log("\x1b[33m", "Angular build params: ", ngBuildArgs);
13
+
14
+ //Trigger angular build with the passed params
15
+ const ngPath = path.resolve(process.cwd(), 'node_modules', '.bin', "ng");
16
+ const ngBuildProcess = spawnSync(ngPath, ngBuildArgs, {stdio: 'inherit', shell: true});
17
+
18
+ if (ngBuildProcess.status === 0) {
19
+ console.log('ng build completed successfully!');
20
+ } else {
21
+ // TODO: JS heap out of memory error handling
22
+ console.error('Error during ng build:', ngBuildProcess.error || ngBuildProcess.stderr);
23
+ process.exit(1);
24
+ }
25
+
26
+ const ngPostBuildArgs = ['build-scripts/post-build.js', ...args];
27
+ console.log("Post build params - ", ngPostBuildArgs);
28
+
29
+ const ngPostBuildProcess = spawnSync('node', ngPostBuildArgs, { stdio: 'inherit' });
30
+
31
+ if (ngPostBuildProcess.status === 0) {
32
+ console.log('ng post build completed successfully!');
33
+ } else {
34
+ console.error('Error during ng build:', ngPostBuildProcess.error || ngPostBuildProcess.stderr);
35
+ process.exit(1);
36
+ }
@@ -0,0 +1,20 @@
1
+ import {TargetOptions} from '@angular-builders/custom-webpack';
2
+
3
+ export default function indexHtmlTransformNgServe(
4
+ targetOptions: TargetOptions,
5
+ indexHtml: string
6
+ ): string {
7
+ const deployUrl = 'ng-bundle/';
8
+ const wmStylesHref = `${deployUrl}wm-styles.css`;
9
+
10
+ const metaDeployUrl = `<meta name="deployUrl" content="${deployUrl}">`;
11
+ const linkWmStyles = `<link rel="stylesheet" type="text/css" href="${wmStylesHref}">`;
12
+
13
+ const injectHtml = `${metaDeployUrl}
14
+ ${linkWmStyles}`;
15
+ const headCloseIndex = indexHtml.indexOf('</head>');
16
+
17
+ return `${indexHtml.slice(0, headCloseIndex)}
18
+ ${injectHtml}
19
+ ${indexHtml.slice(headCloseIndex)}`;
20
+ }
@@ -0,0 +1,28 @@
1
+
2
+ const fs = require('fs');
3
+ const node_path = require('path');
4
+
5
+ const validScript = (path,indexHtml)=>{
6
+ return !indexHtml.includes(path);
7
+ }
8
+ const getScriptTag = (path)=>{
9
+ return `<script src="ng-bundle/${path}"></script>`
10
+ }
11
+ module.exports = (targetOptions, indexHtml) =>{
12
+ const vendor_path = node_path.resolve(__dirname+`/../dist/ng-bundle`);
13
+ let vendorScripts = ``;
14
+ fs.readdirSync(vendor_path).forEach((file)=>{
15
+ if(file.indexOf('vendor-')===0){
16
+ if(!file.includes('.br.js') && !file.includes('.gzip.js') && validScript(file,indexHtml)){
17
+ vendorScripts+=getScriptTag(file);
18
+ }
19
+ }
20
+ });
21
+
22
+ const mainScriptStr = `<script src="ng-bundle/main`;
23
+ const mainIndex = indexHtml.indexOf(mainScriptStr);
24
+
25
+ return `${indexHtml.slice(0,mainIndex)}
26
+ ${vendorScripts}
27
+ ${indexHtml.slice(mainIndex)}`;
28
+ }
@@ -0,0 +1,101 @@
1
+ const gulp = require("gulp");
2
+ const filter = require("gulp-filter");
3
+ const purify = require("gulp-purify-css");
4
+ const gzip = require("gulp-gzip");
5
+ const brotli = require("gulp-brotli");
6
+ const rename = require("gulp-rename");
7
+ const clean = require("gulp-clean");
8
+ const { series, parallel } = require("gulp");
9
+
10
+ // #1 | Optimize CSS
11
+ gulp.task("css", () => {
12
+ return gulp
13
+ .src("../dist/ng-bundle/*")
14
+ .pipe(
15
+ filter([
16
+ "**/styles.*.css",
17
+ "**/wm-styles.css",
18
+ "!**/wm-styles.*.css",
19
+ "!**/*.br.*",
20
+ "!**/*.gzip.*"
21
+ ])
22
+ )
23
+ .pipe(
24
+ purify(["../dist/ng-bundle/*.js"], {
25
+ info: true,
26
+ minify: true,
27
+ rejected: true,
28
+ whitelist: []
29
+ })
30
+ )
31
+ .pipe(gulp.dest("../dist/test/"));
32
+ });
33
+ // # 2 | Genereate GZIP files
34
+ gulp.task("css-gzip", () => {
35
+ return gulp
36
+ .src("../dist/test/*")
37
+ .pipe(filter(["**/*.css", "!**/*.br.*", "!**/*.gzip.*"]))
38
+ .pipe(gzip({ append: false }))
39
+ .pipe(
40
+ rename(path => {
41
+ path.extname = ".gzip" + path.extname;
42
+ })
43
+ )
44
+ .pipe(gulp.dest("../dist/test/"));
45
+ });
46
+ // # 3 | Genereate BROTLI files
47
+ gulp.task("css-br", () => {
48
+ return gulp
49
+ .src("../dist/test/*")
50
+ .pipe(filter(["**/*.css", "!**/*.br.*", "!**/*.gzip.*"]))
51
+ .pipe(brotli.compress())
52
+ .pipe(
53
+ rename(path => {
54
+ path.extname =
55
+ ".br" +
56
+ path.basename.substring(
57
+ path.basename.lastIndexOf("."),
58
+ path.basename.length
59
+ );
60
+ path.basename = path.basename.substring(
61
+ 0,
62
+ path.basename.lastIndexOf(".")
63
+ );
64
+ })
65
+ )
66
+ .pipe(gulp.dest("../dist/test"));
67
+ });
68
+ // # 4 | Clear ng-build CSS
69
+ gulp.task("clear-ng-css", () => {
70
+ return gulp
71
+ .src("../dist/ng-bundle/*")
72
+ .pipe(filter(["**/styles*.css", "**/wm-styles*.css"]))
73
+ .pipe(clean({ force: true }));
74
+ });
75
+ // # 5 | Copy optimized CSS
76
+ gulp.task("copy-op-css", () => {
77
+ return gulp.src("../dist/test/*").pipe(gulp.dest("../dist/ng-bundle/"));
78
+ });
79
+ // #6 | Clear temp folder
80
+ gulp.task("clear-test", () => {
81
+ return gulp
82
+ .src("../dist/test/", { read: false })
83
+ .pipe(clean({ force: true }));
84
+ });
85
+
86
+ /*
87
+ ### Order of Tasks ###
88
+ * Add hash to the wm-styles.css
89
+ * Optimize the styles generated from ng build
90
+ * Create compressed files for optimized css
91
+ * Clear the angular build output css
92
+ * Copy the optimized css to ng-bundle folder
93
+ * Clear the temp folder
94
+ */
95
+ exports.default = series(
96
+ "css",
97
+ parallel("css-gzip", "css-br"),
98
+ "clear-ng-css",
99
+ "copy-op-css",
100
+ "clear-test"
101
+ );