@nathapp/na-cli 1.0.0-rc.4 → 1.0.0-rc.41

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 (252) hide show
  1. package/.gitlab-ci.yml +135 -0
  2. package/Makefile +16 -9
  3. package/README.md +18 -2
  4. package/alias-script.sh +30 -0
  5. package/dist/index.js +106 -128
  6. package/dist/index.js.map +1 -1
  7. package/dist/templates/db-schema/.gitignore-rename +1 -0
  8. package/dist/templates/db-schema/.gitlab-ci.yml +139 -0
  9. package/dist/templates/db-schema/001_Schema.sql +1 -0
  10. package/dist/templates/db-schema/DEV_MODE.txt +1 -0
  11. package/dist/templates/db-schema/Dockerfile +3 -0
  12. package/dist/templates/db-schema/Email-Templates/Individual/README.md +1 -0
  13. package/dist/templates/db-schema/GET_VERSION.sql +47 -0
  14. package/dist/templates/db-schema/Makefile +885 -0
  15. package/dist/templates/db-schema/README.md +117 -0
  16. package/dist/templates/db-schema/SET_VERSION.sql +5 -0
  17. package/dist/templates/db-schema/docker-compose.yaml +47 -0
  18. package/dist/templates/db-schema/package.json +3 -0
  19. package/dist/templates/db-schema/push.sh +0 -0
  20. package/dist/templates/db-schema/samples/899_DB_Grant_User.sql +9 -0
  21. package/dist/templates/db-schema/samples/990_SAMPLE_Init_Data.sql +27 -0
  22. package/dist/templates/k8s-deployment/.gitignore-rename +1 -0
  23. package/dist/templates/k8s-deployment/.gitlab-ci.yml +128 -0
  24. package/dist/templates/k8s-deployment/.helmignore +23 -0
  25. package/dist/templates/k8s-deployment/Chart.yaml +23 -0
  26. package/dist/templates/k8s-deployment/Makefile +196 -0
  27. package/dist/templates/k8s-deployment/README.md +32 -0
  28. package/dist/templates/k8s-deployment/resources/charts/mysql/Chart.yaml +23 -0
  29. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/Chart.yaml +23 -0
  30. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/script/Makefile +12 -0
  31. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/_helpers.tpl +62 -0
  32. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/configmap.yaml +1 -0
  33. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/job.yaml +1 -0
  34. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/secret.yaml +1 -0
  35. package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/values.yaml +51 -0
  36. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/_helpers.tpl +62 -0
  37. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/configmap.yaml +1 -0
  38. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/deployment.yaml +1 -0
  39. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/ingress.yaml +1 -0
  40. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/job.yaml +1 -0
  41. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/pv.yaml +1 -0
  42. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/pvc.yaml +1 -0
  43. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/sc.yaml +1 -0
  44. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/secret.yaml +1 -0
  45. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/service.yaml +1 -0
  46. package/dist/templates/k8s-deployment/resources/charts/mysql/templates/statefulset.yaml +1 -0
  47. package/dist/templates/k8s-deployment/resources/charts/mysql/values.yaml +15 -0
  48. package/dist/templates/k8s-deployment/resources/charts/redis/Chart.yaml +23 -0
  49. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/Chart.yaml +23 -0
  50. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/script/Makefile +8 -0
  51. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/_helpers.tpl +62 -0
  52. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/configmap.yaml +1 -0
  53. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/job.yaml +1 -0
  54. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/secret.yaml +1 -0
  55. package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/values.yaml +42 -0
  56. package/dist/templates/k8s-deployment/resources/charts/redis/templates/_helpers.tpl +62 -0
  57. package/dist/templates/k8s-deployment/resources/charts/redis/templates/configmap.yaml +1 -0
  58. package/dist/templates/k8s-deployment/resources/charts/redis/templates/deployment.yaml +1 -0
  59. package/dist/templates/k8s-deployment/resources/charts/redis/templates/ingress.yaml +1 -0
  60. package/dist/templates/k8s-deployment/resources/charts/redis/templates/job.yaml +1 -0
  61. package/dist/templates/k8s-deployment/resources/charts/redis/templates/pv.yaml +1 -0
  62. package/dist/templates/k8s-deployment/resources/charts/redis/templates/pvc.yaml +1 -0
  63. package/dist/templates/k8s-deployment/resources/charts/redis/templates/sc.yaml +1 -0
  64. package/dist/templates/k8s-deployment/resources/charts/redis/templates/secret.yaml +1 -0
  65. package/dist/templates/k8s-deployment/resources/charts/redis/templates/service.yaml +1 -0
  66. package/dist/templates/k8s-deployment/resources/charts/redis/templates/statefulset.yaml +1 -0
  67. package/dist/templates/k8s-deployment/resources/charts/redis/values.yaml +12 -0
  68. package/dist/templates/k8s-deployment/services/charts/hooks/Chart.yaml +23 -0
  69. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/Chart.yaml +23 -0
  70. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/Makefile +49 -0
  71. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/_env.yaml +2 -0
  72. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/_helpers.tpl +62 -0
  73. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/configmap.yaml +1 -0
  74. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/job.yaml +1 -0
  75. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/secret.yaml +1 -0
  76. package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/values.yaml +36 -0
  77. package/dist/templates/k8s-deployment/services/charts/sample-nginx/Chart.yaml +23 -0
  78. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/_helpers.tpl +62 -0
  79. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/cluster-role-binding.yaml +1 -0
  80. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/configmap.yaml +1 -0
  81. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/cronjob.yaml +1 -0
  82. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/deployment.yaml +1 -0
  83. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/ingress.yaml +1 -0
  84. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/pv.yaml +1 -0
  85. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/pvc.yaml +1 -0
  86. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/sc.yaml +1 -0
  87. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/secret.yaml +1 -0
  88. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/service-account.yaml +1 -0
  89. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/service.yaml +1 -0
  90. package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/statefulset.yaml +1 -0
  91. package/dist/templates/k8s-deployment/services/charts/sample-nginx/values.yaml +47 -0
  92. package/dist/templates/k8s-deployment/services/charts/tests/Chart.yaml +23 -0
  93. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Chart.yaml +23 -0
  94. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Makefile +9 -0
  95. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/fixtures/index.json +1 -0
  96. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/login-spec.js +47 -0
  97. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/loginEmailWrong-spec.js +14 -0
  98. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/loginPasswordWrong-spec.js +14 -0
  99. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/profile/updatePassword-spec.js +15 -0
  100. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/profile/updateProfile-spec.js +25 -0
  101. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/test-script.spec.js +9 -0
  102. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/plugins/index.js +22 -0
  103. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/commands.js +258 -0
  104. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/index.js +35 -0
  105. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/misc.js +8 -0
  106. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress.json +4 -0
  107. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/_helpers.tpl +62 -0
  108. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/configmap.yaml +1 -0
  109. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/pod.yaml +1 -0
  110. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/secret.yaml +1 -0
  111. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/values.yaml +70 -0
  112. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/.helmignore +2 -0
  113. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/Chart.yaml +23 -0
  114. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/script/Makefile +14 -0
  115. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/_helpers.tpl +62 -0
  116. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/configmap.yaml +1 -0
  117. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/pod.yaml +1 -0
  118. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/secret.yaml +1 -0
  119. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/_t-0100-readiness-liveness.ts +84 -0
  120. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/hub.ts +372 -0
  121. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contact.ts +158 -0
  122. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contract.ts +328 -0
  123. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-kyc.ts +304 -0
  124. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-app.ts +823 -0
  125. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-web.ts +493 -0
  126. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-profile.ts +277 -0
  127. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-whitelist.ts +133 -0
  128. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/live.jpg +0 -0
  129. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/mykad_front.jpg +0 -0
  130. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/profile.jpg +0 -0
  131. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/t-0200-start.ts +172 -0
  132. package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/values.yaml +59 -0
  133. package/dist/templates/k8s-deployment/templates/_cluster-role-binding.tpl +20 -0
  134. package/dist/templates/k8s-deployment/templates/_configmap.tpl +37 -0
  135. package/dist/templates/k8s-deployment/templates/_cronjob.tpl +225 -0
  136. package/dist/templates/k8s-deployment/templates/_deployment.tpl +246 -0
  137. package/dist/templates/k8s-deployment/templates/_helpers.tpl +31 -0
  138. package/dist/templates/k8s-deployment/templates/_ingress.tpl +77 -0
  139. package/dist/templates/k8s-deployment/templates/_job.tpl +233 -0
  140. package/dist/templates/k8s-deployment/templates/_pod.tpl +214 -0
  141. package/dist/templates/k8s-deployment/templates/_pv.tpl +42 -0
  142. package/dist/templates/k8s-deployment/templates/_pvc.tpl +27 -0
  143. package/dist/templates/k8s-deployment/templates/_root.tpl +314 -0
  144. package/dist/templates/k8s-deployment/templates/_sc.tpl +19 -0
  145. package/dist/templates/k8s-deployment/templates/_secret.tpl +15 -0
  146. package/dist/templates/k8s-deployment/templates/_service-account.tpl +8 -0
  147. package/dist/templates/k8s-deployment/templates/_service.tpl +40 -0
  148. package/dist/templates/k8s-deployment/templates/_statefulset.tpl +244 -0
  149. package/dist/templates/k8s-deployment/templates/root-cm.yaml +10 -0
  150. package/dist/templates/k8s-deployment/templates/root-pull-secret.yaml +11 -0
  151. package/dist/templates/k8s-deployment/templates/root-secret.yaml +24 -0
  152. package/dist/templates/k8s-deployment/values.yaml +38 -0
  153. package/dist/templates/k8s-helm-chart/Chart.yaml +23 -0
  154. package/dist/templates/k8s-helm-chart/templates/_helpers.tpl +62 -0
  155. package/dist/templates/k8s-helm-chart/templates/cluster-role-binding.yaml +1 -0
  156. package/dist/templates/k8s-helm-chart/templates/configmap.yaml +1 -0
  157. package/dist/templates/k8s-helm-chart/templates/cronjob.yaml +1 -0
  158. package/dist/templates/k8s-helm-chart/templates/deployment.yaml +1 -0
  159. package/dist/templates/k8s-helm-chart/templates/ingress.yaml +1 -0
  160. package/dist/templates/k8s-helm-chart/templates/pv.yaml +1 -0
  161. package/dist/templates/k8s-helm-chart/templates/pvc.yaml +1 -0
  162. package/dist/templates/k8s-helm-chart/templates/sc.yaml +1 -0
  163. package/dist/templates/k8s-helm-chart/templates/secret.yaml +1 -0
  164. package/dist/templates/k8s-helm-chart/templates/service-account.yaml +1 -0
  165. package/dist/templates/k8s-helm-chart/templates/service.yaml +1 -0
  166. package/dist/templates/k8s-helm-chart/templates/statefulset.yaml +1 -0
  167. package/dist/templates/k8s-helm-chart/values.yaml +41 -0
  168. package/dist/templates/mxw-base-api-express/.dockerignore +2 -0
  169. package/dist/templates/mxw-base-api-express/.env +10 -0
  170. package/dist/templates/mxw-base-api-express/.gitignore-rename +3 -0
  171. package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +174 -0
  172. package/dist/templates/mxw-base-api-express/.nvmrc +1 -0
  173. package/dist/templates/mxw-base-api-express/Dockerfile +14 -0
  174. package/dist/templates/mxw-base-api-express/Makefile +84 -0
  175. package/dist/templates/mxw-base-api-express/README.md +71 -0
  176. package/dist/templates/mxw-base-api-express/package.json +55 -0
  177. package/dist/templates/mxw-base-api-express/src/app-service.test.ts +94 -0
  178. package/dist/templates/mxw-base-api-express/src/app-service.ts +498 -0
  179. package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +215 -0
  180. package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +86 -0
  181. package/dist/templates/mxw-base-api-express/src/auth/auth.ts +81 -0
  182. package/dist/templates/mxw-base-api-express/src/core-service.ts +72 -0
  183. package/dist/templates/mxw-base-api-express/src/crud.ts +84 -0
  184. package/dist/templates/mxw-base-api-express/src/http-handler.ts +71 -0
  185. package/dist/templates/mxw-base-api-express/src/server.ts +54 -0
  186. package/dist/templates/mxw-base-api-express/src/test.ts +38 -0
  187. package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +52 -0
  188. package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +55 -0
  189. package/dist/templates/mxw-base-api-express/tsconfig.json +32 -0
  190. package/dist/templates/nestjs-api/.dockerignore +2 -0
  191. package/dist/templates/nestjs-api/.env +12 -0
  192. package/dist/templates/nestjs-api/.eslintrc.js +25 -0
  193. package/dist/templates/nestjs-api/.gitignore-rename +35 -0
  194. package/dist/templates/nestjs-api/.gitlab-ci.yml +174 -0
  195. package/dist/templates/nestjs-api/.nvmrc +1 -0
  196. package/dist/templates/nestjs-api/.prettierrc +4 -0
  197. package/dist/templates/nestjs-api/Dockerfile +19 -0
  198. package/dist/templates/nestjs-api/Makefile +84 -0
  199. package/dist/templates/nestjs-api/README.md +67 -0
  200. package/dist/templates/nestjs-api/nest-cli.json +8 -0
  201. package/dist/templates/nestjs-api/package.json +75 -0
  202. package/dist/templates/nestjs-api/src/app.controller.spec.ts +22 -0
  203. package/dist/templates/nestjs-api/src/app.controller.ts +27 -0
  204. package/dist/templates/nestjs-api/src/app.module.ts +10 -0
  205. package/dist/templates/nestjs-api/src/app.service.ts +12 -0
  206. package/dist/templates/nestjs-api/src/main.ts +31 -0
  207. package/dist/templates/nestjs-api/test/app.e2e-spec.ts +24 -0
  208. package/dist/templates/nestjs-api/test/jest-e2e.json +9 -0
  209. package/dist/templates/nestjs-api/tsconfig.build.json +4 -0
  210. package/dist/templates/nestjs-api/tsconfig.json +22 -0
  211. package/dist/templates/nestjs-library/.eslintrc.js +24 -0
  212. package/dist/templates/nestjs-library/.gitignore-rename +39 -0
  213. package/dist/templates/nestjs-library/.gitlab-ci.yml +135 -0
  214. package/dist/templates/nestjs-library/.npmignore-rename +30 -0
  215. package/dist/templates/nestjs-library/.prettierrc +6 -0
  216. package/dist/templates/nestjs-library/LICENSE +21 -0
  217. package/dist/templates/nestjs-library/Makefile +60 -0
  218. package/dist/templates/nestjs-library/README.md +3 -0
  219. package/dist/templates/nestjs-library/index.d.ts +1 -0
  220. package/dist/templates/nestjs-library/index.js +6 -0
  221. package/dist/templates/nestjs-library/index.ts +1 -0
  222. package/dist/templates/nestjs-library/lib/index.ts +2 -0
  223. package/dist/templates/nestjs-library/package.json +41 -0
  224. package/dist/templates/nestjs-library/tsconfig.build.json +4 -0
  225. package/dist/templates/nestjs-library/tsconfig.json +18 -0
  226. package/dist/templates/ts-library/.dockerignore +2 -0
  227. package/dist/templates/ts-library/.eslintrc.js +24 -0
  228. package/dist/templates/ts-library/.gitignore-rename +37 -0
  229. package/dist/templates/ts-library/.gitlab-ci.yml +135 -0
  230. package/dist/templates/ts-library/.npmignore-rename +30 -0
  231. package/dist/templates/ts-library/.prettierrc +6 -0
  232. package/dist/templates/ts-library/LICENSE +21 -0
  233. package/dist/templates/ts-library/Makefile +58 -0
  234. package/dist/templates/ts-library/README.md +1 -0
  235. package/dist/templates/ts-library/index.d.ts +1 -0
  236. package/dist/templates/ts-library/index.js +6 -0
  237. package/dist/templates/ts-library/index.ts +1 -0
  238. package/dist/templates/ts-library/lib/index.ts +1 -0
  239. package/dist/templates/ts-library/lib/samples/index.ts +5 -0
  240. package/dist/templates/ts-library/lib/samples/samples-function.ts +3 -0
  241. package/dist/templates/ts-library/package.json +34 -0
  242. package/dist/templates/ts-library/test/jest-e2e.json +9 -0
  243. package/dist/templates/ts-library/test/sample.e2e-spec.ts +10 -0
  244. package/dist/templates/ts-library/tsconfig.build.json +4 -0
  245. package/dist/templates/ts-library/tsconfig.json +18 -0
  246. package/dist/utils/env.js +146 -0
  247. package/dist/utils/env.js.map +1 -0
  248. package/dist/utils/template.js +362 -1
  249. package/dist/utils/template.js.map +1 -1
  250. package/package.json +9 -5
  251. package/src/index.ts +0 -182
  252. package/src/utils/template.ts +0 -9
@@ -1,9 +1,370 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
2
49
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.render = void 0;
50
+ exports.generateTemplate = exports.render = exports.K8S_REGISTRY_HOST = exports.TEMPLATE_NAME = void 0;
4
51
  var ejs = require("ejs");
52
+ var fs = require("fs");
53
+ var inquirer = require("inquirer");
54
+ var shell = require("shelljs");
55
+ var chalk_1 = require("chalk");
56
+ var yargs = require("yargs");
57
+ var path = require("path");
58
+ var _a = require("../../package.json"), name = _a.name, version = _a.version;
59
+ /**TEMPLATE ENUM NAME */
60
+ var TEMPLATE_NAME;
61
+ (function (TEMPLATE_NAME) {
62
+ TEMPLATE_NAME["DB_SCHEMA"] = "db-schema";
63
+ TEMPLATE_NAME["K8S_DEPLOYMENT"] = "k8s-deployment";
64
+ TEMPLATE_NAME["K8S_DEPLOY_CHART"] = "k8s-helm-chart";
65
+ TEMPLATE_NAME["MXW_BASE_API"] = "mxw-base-api-express";
66
+ TEMPLATE_NAME["TS_LIBRARY"] = "ts-library";
67
+ })(TEMPLATE_NAME = exports.TEMPLATE_NAME || (exports.TEMPLATE_NAME = {}));
68
+ var K8S_REGISTRY_HOST;
69
+ (function (K8S_REGISTRY_HOST) {
70
+ K8S_REGISTRY_HOST["ALIYUN"] = "aliyun";
71
+ K8S_REGISTRY_HOST["AWS"] = "aws";
72
+ K8S_REGISTRY_HOST["DOCKER_HUB"] = "dockerhub";
73
+ K8S_REGISTRY_HOST["CUSTOM"] = "custom";
74
+ })(K8S_REGISTRY_HOST = exports.K8S_REGISTRY_HOST || (exports.K8S_REGISTRY_HOST = {}));
75
+ var ALIYUN_REGION = [{
76
+ value: "cn-hongkong",
77
+ name: "HongKong",
78
+ },
79
+ {
80
+ value: "ap-southest-1",
81
+ name: "Singapore"
82
+ },
83
+ {
84
+ value: "ap-southest-3",
85
+ name: "Kuala Lumpur"
86
+ }];
87
+ var AWS_REGION = [{
88
+ value: "ap-southeast-2",
89
+ name: "Syndey",
90
+ }];
5
91
  function render(content, data) {
6
92
  return ejs.render(content, data);
7
93
  }
8
94
  exports.render = render;
95
+ function generateTemplate(templateDir, targetDirectory) {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ var templateChoices, template_specific, should_ask_install, should_ask_author, QUESTIONS;
98
+ return __generator(this, function (_a) {
99
+ templateChoices = fs.readdirSync(templateDir);
100
+ template_specific = function (answer, templateName) {
101
+ var projectChoice = answer["template"];
102
+ return projectChoice == templateName;
103
+ };
104
+ should_ask_install = function (answer) {
105
+ var projectChoice = answer["template"];
106
+ return projectChoice !== TEMPLATE_NAME.DB_SCHEMA &&
107
+ projectChoice !== TEMPLATE_NAME.K8S_DEPLOYMENT &&
108
+ projectChoice !== TEMPLATE_NAME.K8S_DEPLOY_CHART;
109
+ };
110
+ should_ask_author = function (answer) {
111
+ var projectChoice = answer["template"];
112
+ return !yargs.argv['author'] && projectChoice !== TEMPLATE_NAME.DB_SCHEMA
113
+ && projectChoice !== TEMPLATE_NAME.K8S_DEPLOYMENT &&
114
+ projectChoice !== TEMPLATE_NAME.K8S_DEPLOY_CHART;
115
+ };
116
+ QUESTIONS = [
117
+ {
118
+ name: 'template',
119
+ type: 'list',
120
+ message: 'What project template would you like to generate?',
121
+ choices: templateChoices,
122
+ when: function () { return !yargs.argv['template']; }
123
+ },
124
+ {
125
+ name: 'name',
126
+ type: 'input',
127
+ message: 'Project name:',
128
+ when: function () { return !yargs.argv['name']; },
129
+ validate: function (input) {
130
+ if (/^([A-Za-z\-\_\d])+$/.test(input))
131
+ return true;
132
+ else
133
+ return 'Project name may only include letters, numbers, underscores and hashes.';
134
+ }
135
+ },
136
+ {
137
+ name: 'author',
138
+ type: 'input',
139
+ message: 'Author:',
140
+ when: function (answer) { return should_ask_author(answer); }
141
+ },
142
+ {
143
+ name: "run_install",
144
+ type: "confirm",
145
+ message: "Do you want to run npm install after template created?",
146
+ when: function (answer) { return should_ask_install(answer); }
147
+ },
148
+ {
149
+ name: "db_master",
150
+ type: "input",
151
+ message: "what is the master database name?",
152
+ when: function (answer) { return template_specific(answer, TEMPLATE_NAME.DB_SCHEMA); }
153
+ },
154
+ /** TEMPLATE_NAME.K8S_DEPLOY_CHART */
155
+ {
156
+ name: "k8s_chart_registry_host",
157
+ type: "list",
158
+ message: "what is the registry host?",
159
+ choices: [K8S_REGISTRY_HOST.ALIYUN, K8S_REGISTRY_HOST.AWS, K8S_REGISTRY_HOST.DOCKER_HUB, K8S_REGISTRY_HOST.CUSTOM],
160
+ when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
161
+ },
162
+ {
163
+ name: "k8s_chart_aws_account_id",
164
+ type: "input",
165
+ message: "please enter AWS Account ID?",
166
+ when: function (answer) {
167
+ var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
168
+ return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.AWS;
169
+ }
170
+ },
171
+ {
172
+ name: "k8s_chart_custom_registry_host",
173
+ type: "input",
174
+ message: "please enter custom registry host",
175
+ when: function (answer) {
176
+ var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
177
+ return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && registryHost == K8S_REGISTRY_HOST.CUSTOM;
178
+ }
179
+ },
180
+ {
181
+ name: "k8s_chart_registry_region",
182
+ type: "list",
183
+ message: "what is the registry region?",
184
+ choices: function (answer) {
185
+ var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
186
+ if (registryHost == K8S_REGISTRY_HOST.ALIYUN)
187
+ return ALIYUN_REGION;
188
+ else if (registryHost == K8S_REGISTRY_HOST.AWS)
189
+ return AWS_REGION;
190
+ return ["none"];
191
+ },
192
+ when: function (answer) {
193
+ var registryHost = answer === null || answer === void 0 ? void 0 : answer.k8s_chart_registry_host;
194
+ return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART) && (registryHost == K8S_REGISTRY_HOST.ALIYUN || registryHost == K8S_REGISTRY_HOST.AWS);
195
+ }
196
+ },
197
+ {
198
+ name: "k8s_image_name",
199
+ type: "input",
200
+ message: "what is the image name include namespace (eg: bitnami/kafka)?",
201
+ when: function (answer) {
202
+ return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART);
203
+ }
204
+ },
205
+ {
206
+ name: "k8s_image_version",
207
+ type: "input",
208
+ message: "what is the image version?",
209
+ when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
210
+ },
211
+ {
212
+ name: "k8s_chart_kind",
213
+ type: "list",
214
+ message: "what is the chart kind?",
215
+ choices: ["Deployment", "StatefulSet", "CronJob"],
216
+ default: "Deployment",
217
+ when: function (answer) { return template_specific(answer, TEMPLATE_NAME.K8S_DEPLOY_CHART); }
218
+ },
219
+ /** END TEMPLATE_NAME.K8S_DEPLOY_CHART */
220
+ ];
221
+ console.log("Welcome to ".concat(name, " version ").concat(version));
222
+ return [2 /*return*/, inquirer.prompt(QUESTIONS)
223
+ .then(function (answers) {
224
+ answers = Object.assign({}, answers, yargs.argv);
225
+ // @ts-ignore
226
+ var projectChoice = answers['template'];
227
+ // @ts-ignore
228
+ var projectName = answers['name'];
229
+ // @ts-ignore
230
+ var author = answers['author'];
231
+ // @ts-ignore
232
+ var runInstall = answers['run_install'] || false;
233
+ var masterDbName = answers['db_master'] || "master";
234
+ var templatePath = path.join(templateDir, projectChoice);
235
+ var targetPath = path.join(targetDirectory, projectName);
236
+ var templateConfig = getTemplateConfig(templatePath);
237
+ var k8sChartParms = getK8sDeployChartParams(answers);
238
+ var params = __assign({ masterDbName: masterDbName }, k8sChartParms);
239
+ var options = {
240
+ projectName: projectName,
241
+ templateName: projectChoice,
242
+ templatePath: templatePath,
243
+ targetPath: targetPath,
244
+ config: templateConfig
245
+ };
246
+ if (!createProject(targetPath)) {
247
+ return;
248
+ }
249
+ createDirectoryContents(targetDirectory, templatePath, projectName, templateConfig, author, params);
250
+ if (runInstall && !postProcess(options)) {
251
+ return;
252
+ }
253
+ showMessage(options);
254
+ })];
255
+ });
256
+ });
257
+ }
258
+ exports.generateTemplate = generateTemplate;
259
+ function showMessage(options) {
260
+ console.log('');
261
+ console.log(chalk_1.default.green('Done.'));
262
+ console.log(chalk_1.default.green("Go into the project: cd ".concat(options.projectName)));
263
+ var message = options.config.postMessage;
264
+ if (message) {
265
+ console.log('');
266
+ console.log(chalk_1.default.yellow(message));
267
+ console.log('');
268
+ }
269
+ }
270
+ function getTemplateConfig(templatePath) {
271
+ var configPath = path.join(templatePath, '.template.json');
272
+ if (!fs.existsSync(configPath))
273
+ return {};
274
+ var templateConfigContent = fs.readFileSync(configPath);
275
+ if (templateConfigContent) {
276
+ return JSON.parse(templateConfigContent.toString());
277
+ }
278
+ return {};
279
+ }
280
+ function createProject(projectPath) {
281
+ if (fs.existsSync(projectPath)) {
282
+ console.log(chalk_1.default.red("Folder ".concat(projectPath, " exists. Delete or use another name.")));
283
+ return false;
284
+ }
285
+ fs.mkdirSync(projectPath);
286
+ return true;
287
+ }
288
+ function postProcess(options) {
289
+ console.log('');
290
+ console.log("running post installation..please wait...");
291
+ if (isNode(options)) {
292
+ return postProcessNode(options);
293
+ }
294
+ return true;
295
+ }
296
+ function isNode(options) {
297
+ return fs.existsSync(path.join(options.templatePath, 'package.json'));
298
+ }
299
+ function postProcessNode(options) {
300
+ shell.cd(options.targetPath);
301
+ var cmd = '';
302
+ /*
303
+ if (shell.which('yarn')) {
304
+ cmd = 'yarn';
305
+ } else if (shell.which('npm')) {
306
+ cmd = 'npm install';
307
+ }
308
+ */
309
+ if (shell.which('npm')) {
310
+ cmd = 'npm install';
311
+ }
312
+ if (cmd) {
313
+ var result = shell.exec(cmd);
314
+ if (result.code !== 0) {
315
+ return false;
316
+ }
317
+ }
318
+ else {
319
+ console.log(chalk_1.default.red('No yarn or npm found. Cannot run installation.'));
320
+ }
321
+ return true;
322
+ }
323
+ var SKIP_FILES = ['node_modules', '.template.json'];
324
+ function createDirectoryContents(targetDirectory, projectTemplatePath, projectName, config, author, params) {
325
+ var filesToCreate = fs.readdirSync(projectTemplatePath);
326
+ filesToCreate.forEach(function (file) {
327
+ var origFilePath = path.join(projectTemplatePath, file);
328
+ // get stats about the current file
329
+ var stats = fs.statSync(origFilePath);
330
+ if (SKIP_FILES.indexOf(file) > -1)
331
+ return;
332
+ if (stats.isFile()) {
333
+ var contents = fs.readFileSync(origFilePath, 'utf8');
334
+ if (file === '.npmignore-rename')
335
+ file = '.npmignore';
336
+ if (file === '.gitignore-rename')
337
+ file = '.gitignore';
338
+ contents = render(contents, __assign(__assign({}, params), { projectName: projectName, author: author }));
339
+ var writePath = path.join(targetDirectory, projectName, file);
340
+ fs.writeFileSync(writePath, contents, 'utf8');
341
+ }
342
+ else if (stats.isDirectory()) {
343
+ fs.mkdirSync(path.join(targetDirectory, projectName, file));
344
+ // recursive call
345
+ createDirectoryContents(targetDirectory, path.join(projectTemplatePath, file), path.join(projectName, file), config, author, params);
346
+ }
347
+ });
348
+ }
349
+ function getK8sDeployChartParams(answer) {
350
+ var params = {};
351
+ // @ts-ignore
352
+ var projectChoice = answer['template'];
353
+ if (projectChoice != TEMPLATE_NAME.K8S_DEPLOY_CHART || !answer) {
354
+ return params;
355
+ }
356
+ if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.ALIYUN) {
357
+ params.containerRegistry = "registry-intl.".concat(answer.k8s_chart_registry_region, ".aliyuncs.com/").concat(answer.k8s_image_name);
358
+ }
359
+ else if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.AWS) {
360
+ params.containerRegistry = "".concat(answer.k8s_chart_aws_account_id.replace("-", ""), ".dkr.ecr.").concat(answer.k8s_chart_registry_region, ".amazonaws.com/").concat(answer.k8s_image_name);
361
+ }
362
+ else if (answer.k8s_chart_registry_host == K8S_REGISTRY_HOST.CUSTOM) {
363
+ params.containerRegistry = "".concat(answer.k8s_chart_custom_registry_host, "/").concat(answer.k8s_image_name);
364
+ }
365
+ params.chartName = answer.name;
366
+ params.containerVersion = answer.k8s_image_version;
367
+ params.chartKind = answer.k8s_chart_kind;
368
+ return params;
369
+ }
9
370
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":";;;AAAA,yBAA2B;AAM3B,SAAgB,MAAM,CAAC,OAAe,EAAE,IAAkB;IACtD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,29 +1,33 @@
1
1
  {
2
2
  "name": "@nathapp/na-cli",
3
- "version": "1.0.0-rc.4",
3
+ "version": "1.0.0-rc.41",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
- "start": "ts-node src/index.ts",
6
+ "start": "npm run build && node dist/index.js",
7
7
  "build": "tsc && shx rm -rf dist/templates && shx cp -r templates dist"
8
8
  },
9
9
  "bin": {
10
- "na-cli": "./dist/index.js"
10
+ "na-cli": "./dist/index.js",
11
+ "na": "./dist/index.js"
11
12
  },
12
13
  "license": "MIT",
13
14
  "devDependencies": {
14
15
  "@types/ejs": "^3.1.1",
15
16
  "@types/inquirer": "^0.0.43",
17
+ "@types/js-yaml": "^4.0.5",
16
18
  "@types/node": "^18.11.18",
17
- "@types/shelljs": "^0.8.0",
19
+ "@types/shelljs": "^0.8.5",
18
20
  "@types/yargs": "^17.0.19",
19
21
  "shx": "^0.3.2",
20
22
  "ts-node": "^10.9.1",
21
23
  "typescript": "^4.3.5"
22
24
  },
23
25
  "dependencies": {
26
+ "dotenv": "^16.0.3",
24
27
  "ejs": "^3.1.8",
25
28
  "inquirer": "^6.2.0",
26
- "shelljs": "^0.8.2",
29
+ "js-yaml": "^4.1.0",
30
+ "shelljs": "^0.8.5",
27
31
  "yargs": "^17.6.2"
28
32
  }
29
33
  }
package/src/index.ts DELETED
@@ -1,182 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import * as inquirer from 'inquirer';
4
- import * as fs from 'fs';
5
- import * as path from 'path';
6
- import * as shell from 'shelljs';
7
- import * as template from './utils/template';
8
- import chalk from 'chalk';
9
- import * as yargs from 'yargs';
10
-
11
- const CHOICES = fs.readdirSync(path.join(__dirname, 'templates'));
12
-
13
- const QUESTIONS = [
14
- {
15
- name: 'template',
16
- type: 'list',
17
- message: 'What project template would you like to generate?',
18
- choices: CHOICES,
19
- when: () => !yargs.argv['template']
20
- },
21
- {
22
- name: 'name',
23
- type: 'input',
24
- message: 'Project name:',
25
- when: () => !yargs.argv['name'],
26
- validate: (input: string) => {
27
- if (/^([A-Za-z\-\_\d])+$/.test(input)) return true;
28
- else return 'Project name may only include letters, numbers, underscores and hashes.';
29
- }
30
- }
31
- ];
32
-
33
- const CURR_DIR = process.cwd();
34
-
35
- export interface TemplateConfig {
36
- files?: string[]
37
- postMessage?: string
38
- }
39
-
40
- export interface CliOptions {
41
- projectName: string
42
- templateName: string
43
- templatePath: string
44
- tartgetPath: string
45
- config: TemplateConfig
46
- }
47
-
48
- inquirer.prompt(QUESTIONS)
49
- .then(answers => {
50
-
51
- answers = Object.assign({}, answers, yargs.argv);
52
- // @ts-ignore
53
- const projectChoice = answers['template'];
54
- // @ts-ignore
55
- const projectName = answers['name'];
56
- const templatePath = path.join(__dirname, 'templates', projectChoice);
57
- const tartgetPath = path.join(CURR_DIR, projectName);
58
- const templateConfig = getTemplateConfig(templatePath);
59
-
60
- const options: CliOptions = {
61
- projectName,
62
- templateName: projectChoice,
63
- templatePath,
64
- tartgetPath,
65
- config: templateConfig
66
- }
67
-
68
- if (!createProject(tartgetPath)) {
69
- return;
70
- }
71
-
72
- createDirectoryContents(templatePath, projectName, templateConfig);
73
-
74
- if (!postProcess(options)) {
75
- return;
76
- }
77
-
78
- showMessage(options);
79
- });
80
-
81
- function showMessage(options: CliOptions) {
82
- console.log('');
83
- console.log(chalk.green('Done.'));
84
- console.log(chalk.green(`Go into the project: cd ${options.projectName}`));
85
-
86
- const message = options.config.postMessage;
87
-
88
- if (message) {
89
- console.log('');
90
- console.log(chalk.yellow(message));
91
- console.log('');
92
- }
93
-
94
- }
95
-
96
- function getTemplateConfig(templatePath: string): TemplateConfig {
97
- const configPath = path.join(templatePath, '.template.json');
98
-
99
- if (!fs.existsSync(configPath)) return {};
100
-
101
- const templateConfigContent = fs.readFileSync(configPath);
102
-
103
- if (templateConfigContent) {
104
- return JSON.parse(templateConfigContent.toString());
105
- }
106
-
107
- return {};
108
- }
109
-
110
- function createProject(projectPath: string) {
111
- if (fs.existsSync(projectPath)) {
112
- console.log(chalk.red(`Folder ${projectPath} exists. Delete or use another name.`));
113
- return false;
114
- }
115
-
116
- fs.mkdirSync(projectPath);
117
- return true;
118
- }
119
-
120
- function postProcess(options: CliOptions) {
121
- if (isNode(options)) {
122
- return postProcessNode(options);
123
- }
124
- return true;
125
- }
126
-
127
- function isNode(options: CliOptions) {
128
- return fs.existsSync(path.join(options.templatePath, 'package.json'));
129
- }
130
-
131
- function postProcessNode(options: CliOptions) {
132
- shell.cd(options.tartgetPath);
133
-
134
- let cmd = '';
135
-
136
- if (shell.which('yarn')) {
137
- cmd = 'yarn';
138
- } else if (shell.which('npm')) {
139
- cmd = 'npm install';
140
- }
141
-
142
- if (cmd) {
143
- const result = shell.exec(cmd);
144
-
145
- if (result.code !== 0) {
146
- return false;
147
- }
148
- } else {
149
- console.log(chalk.red('No yarn or npm found. Cannot run installation.'));
150
- }
151
-
152
- return true;
153
- }
154
-
155
- const SKIP_FILES = ['node_modules', '.template.json'];
156
-
157
- function createDirectoryContents(templatePath: string, projectName: string, config: TemplateConfig) {
158
- const filesToCreate = fs.readdirSync(templatePath);
159
-
160
- filesToCreate.forEach(file => {
161
- const origFilePath = path.join(templatePath, file);
162
-
163
- // get stats about the current file
164
- const stats = fs.statSync(origFilePath);
165
-
166
- if (SKIP_FILES.indexOf(file) > -1) return;
167
-
168
- if (stats.isFile()) {
169
- let contents = fs.readFileSync(origFilePath, 'utf8');
170
-
171
- contents = template.render(contents, { projectName });
172
-
173
- const writePath = path.join(CURR_DIR, projectName, file);
174
- fs.writeFileSync(writePath, contents, 'utf8');
175
- } else if (stats.isDirectory()) {
176
- fs.mkdirSync(path.join(CURR_DIR, projectName, file));
177
-
178
- // recursive call
179
- createDirectoryContents(path.join(templatePath, file), path.join(projectName, file), config);
180
- }
181
- });
182
- }
@@ -1,9 +0,0 @@
1
- import * as ejs from 'ejs';
2
-
3
- export interface TemplateData {
4
- projectName: string
5
- }
6
-
7
- export function render(content: string, data: TemplateData) {
8
- return ejs.render(content, data);
9
- }