@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.
- package/.gitlab-ci.yml +135 -0
- package/Makefile +16 -9
- package/README.md +18 -2
- package/alias-script.sh +30 -0
- package/dist/index.js +106 -128
- package/dist/index.js.map +1 -1
- package/dist/templates/db-schema/.gitignore-rename +1 -0
- package/dist/templates/db-schema/.gitlab-ci.yml +139 -0
- package/dist/templates/db-schema/001_Schema.sql +1 -0
- package/dist/templates/db-schema/DEV_MODE.txt +1 -0
- package/dist/templates/db-schema/Dockerfile +3 -0
- package/dist/templates/db-schema/Email-Templates/Individual/README.md +1 -0
- package/dist/templates/db-schema/GET_VERSION.sql +47 -0
- package/dist/templates/db-schema/Makefile +885 -0
- package/dist/templates/db-schema/README.md +117 -0
- package/dist/templates/db-schema/SET_VERSION.sql +5 -0
- package/dist/templates/db-schema/docker-compose.yaml +47 -0
- package/dist/templates/db-schema/package.json +3 -0
- package/dist/templates/db-schema/push.sh +0 -0
- package/dist/templates/db-schema/samples/899_DB_Grant_User.sql +9 -0
- package/dist/templates/db-schema/samples/990_SAMPLE_Init_Data.sql +27 -0
- package/dist/templates/k8s-deployment/.gitignore-rename +1 -0
- package/dist/templates/k8s-deployment/.gitlab-ci.yml +128 -0
- package/dist/templates/k8s-deployment/.helmignore +23 -0
- package/dist/templates/k8s-deployment/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/Makefile +196 -0
- package/dist/templates/k8s-deployment/README.md +32 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/script/Makefile +12 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/job.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/charts/mysql-install/values.yaml +51 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/deployment.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/ingress.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/job.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/pv.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/pvc.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/sc.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/service.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/templates/statefulset.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/mysql/values.yaml +15 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/script/Makefile +8 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/job.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/charts/redis-install/values.yaml +42 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/deployment.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/ingress.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/job.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/pv.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/pvc.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/sc.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/service.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/templates/statefulset.yaml +1 -0
- package/dist/templates/k8s-deployment/resources/charts/redis/values.yaml +12 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/Makefile +49 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/script/_env.yaml +2 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/job.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/hooks/charts/pre-delete-rsc/values.yaml +36 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/cluster-role-binding.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/cronjob.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/deployment.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/ingress.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/pv.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/pvc.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/sc.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/service-account.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/service.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/templates/statefulset.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/sample-nginx/values.yaml +47 -0
- package/dist/templates/k8s-deployment/services/charts/tests/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/Makefile +9 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/fixtures/index.json +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/login-spec.js +47 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/loginEmailWrong-spec.js +14 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/login/loginPasswordWrong-spec.js +14 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/profile/updatePassword-spec.js +15 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/profile/updateProfile-spec.js +25 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/integration/test-script.spec.js +9 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/plugins/index.js +22 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/commands.js +258 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/index.js +35 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress/support/misc.js +8 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/cypress.json +4 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/pod.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-cypress/values.yaml +70 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/.helmignore +2 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/Chart.yaml +23 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/script/Makefile +14 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/pod.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/templates/secret.yaml +1 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/_t-0100-readiness-liveness.ts +84 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/hub.ts +372 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contact.ts +158 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-contract.ts +328 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-kyc.ts +304 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-app.ts +823 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-onboard-web.ts +493 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-profile.ts +277 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/individual-whitelist.ts +133 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/live.jpg +0 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/mykad_front.jpg +0 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/resources/profile.jpg +0 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/tests/t-0200-start.ts +172 -0
- package/dist/templates/k8s-deployment/services/charts/tests/charts/e2e-test-js/values.yaml +59 -0
- package/dist/templates/k8s-deployment/templates/_cluster-role-binding.tpl +20 -0
- package/dist/templates/k8s-deployment/templates/_configmap.tpl +37 -0
- package/dist/templates/k8s-deployment/templates/_cronjob.tpl +225 -0
- package/dist/templates/k8s-deployment/templates/_deployment.tpl +246 -0
- package/dist/templates/k8s-deployment/templates/_helpers.tpl +31 -0
- package/dist/templates/k8s-deployment/templates/_ingress.tpl +77 -0
- package/dist/templates/k8s-deployment/templates/_job.tpl +233 -0
- package/dist/templates/k8s-deployment/templates/_pod.tpl +214 -0
- package/dist/templates/k8s-deployment/templates/_pv.tpl +42 -0
- package/dist/templates/k8s-deployment/templates/_pvc.tpl +27 -0
- package/dist/templates/k8s-deployment/templates/_root.tpl +314 -0
- package/dist/templates/k8s-deployment/templates/_sc.tpl +19 -0
- package/dist/templates/k8s-deployment/templates/_secret.tpl +15 -0
- package/dist/templates/k8s-deployment/templates/_service-account.tpl +8 -0
- package/dist/templates/k8s-deployment/templates/_service.tpl +40 -0
- package/dist/templates/k8s-deployment/templates/_statefulset.tpl +244 -0
- package/dist/templates/k8s-deployment/templates/root-cm.yaml +10 -0
- package/dist/templates/k8s-deployment/templates/root-pull-secret.yaml +11 -0
- package/dist/templates/k8s-deployment/templates/root-secret.yaml +24 -0
- package/dist/templates/k8s-deployment/values.yaml +38 -0
- package/dist/templates/k8s-helm-chart/Chart.yaml +23 -0
- package/dist/templates/k8s-helm-chart/templates/_helpers.tpl +62 -0
- package/dist/templates/k8s-helm-chart/templates/cluster-role-binding.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/configmap.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/cronjob.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/deployment.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/ingress.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/pv.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/pvc.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/sc.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/secret.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/service-account.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/service.yaml +1 -0
- package/dist/templates/k8s-helm-chart/templates/statefulset.yaml +1 -0
- package/dist/templates/k8s-helm-chart/values.yaml +41 -0
- package/dist/templates/mxw-base-api-express/.dockerignore +2 -0
- package/dist/templates/mxw-base-api-express/.env +10 -0
- package/dist/templates/mxw-base-api-express/.gitignore-rename +3 -0
- package/dist/templates/mxw-base-api-express/.gitlab-ci.yml +174 -0
- package/dist/templates/mxw-base-api-express/.nvmrc +1 -0
- package/dist/templates/mxw-base-api-express/Dockerfile +14 -0
- package/dist/templates/mxw-base-api-express/Makefile +84 -0
- package/dist/templates/mxw-base-api-express/README.md +71 -0
- package/dist/templates/mxw-base-api-express/package.json +55 -0
- package/dist/templates/mxw-base-api-express/src/app-service.test.ts +94 -0
- package/dist/templates/mxw-base-api-express/src/app-service.ts +498 -0
- package/dist/templates/mxw-base-api-express/src/auth/auth-user.test.ts +215 -0
- package/dist/templates/mxw-base-api-express/src/auth/auth-user.ts +86 -0
- package/dist/templates/mxw-base-api-express/src/auth/auth.ts +81 -0
- package/dist/templates/mxw-base-api-express/src/core-service.ts +72 -0
- package/dist/templates/mxw-base-api-express/src/crud.ts +84 -0
- package/dist/templates/mxw-base-api-express/src/http-handler.ts +71 -0
- package/dist/templates/mxw-base-api-express/src/server.ts +54 -0
- package/dist/templates/mxw-base-api-express/src/test.ts +38 -0
- package/dist/templates/mxw-base-api-express/src/utils/api-utilities.ts +52 -0
- package/dist/templates/mxw-base-api-express/src/utils/file-utilities.ts +55 -0
- package/dist/templates/mxw-base-api-express/tsconfig.json +32 -0
- package/dist/templates/nestjs-api/.dockerignore +2 -0
- package/dist/templates/nestjs-api/.env +12 -0
- package/dist/templates/nestjs-api/.eslintrc.js +25 -0
- package/dist/templates/nestjs-api/.gitignore-rename +35 -0
- package/dist/templates/nestjs-api/.gitlab-ci.yml +174 -0
- package/dist/templates/nestjs-api/.nvmrc +1 -0
- package/dist/templates/nestjs-api/.prettierrc +4 -0
- package/dist/templates/nestjs-api/Dockerfile +19 -0
- package/dist/templates/nestjs-api/Makefile +84 -0
- package/dist/templates/nestjs-api/README.md +67 -0
- package/dist/templates/nestjs-api/nest-cli.json +8 -0
- package/dist/templates/nestjs-api/package.json +75 -0
- package/dist/templates/nestjs-api/src/app.controller.spec.ts +22 -0
- package/dist/templates/nestjs-api/src/app.controller.ts +27 -0
- package/dist/templates/nestjs-api/src/app.module.ts +10 -0
- package/dist/templates/nestjs-api/src/app.service.ts +12 -0
- package/dist/templates/nestjs-api/src/main.ts +31 -0
- package/dist/templates/nestjs-api/test/app.e2e-spec.ts +24 -0
- package/dist/templates/nestjs-api/test/jest-e2e.json +9 -0
- package/dist/templates/nestjs-api/tsconfig.build.json +4 -0
- package/dist/templates/nestjs-api/tsconfig.json +22 -0
- package/dist/templates/nestjs-library/.eslintrc.js +24 -0
- package/dist/templates/nestjs-library/.gitignore-rename +39 -0
- package/dist/templates/nestjs-library/.gitlab-ci.yml +135 -0
- package/dist/templates/nestjs-library/.npmignore-rename +30 -0
- package/dist/templates/nestjs-library/.prettierrc +6 -0
- package/dist/templates/nestjs-library/LICENSE +21 -0
- package/dist/templates/nestjs-library/Makefile +60 -0
- package/dist/templates/nestjs-library/README.md +3 -0
- package/dist/templates/nestjs-library/index.d.ts +1 -0
- package/dist/templates/nestjs-library/index.js +6 -0
- package/dist/templates/nestjs-library/index.ts +1 -0
- package/dist/templates/nestjs-library/lib/index.ts +2 -0
- package/dist/templates/nestjs-library/package.json +41 -0
- package/dist/templates/nestjs-library/tsconfig.build.json +4 -0
- package/dist/templates/nestjs-library/tsconfig.json +18 -0
- package/dist/templates/ts-library/.dockerignore +2 -0
- package/dist/templates/ts-library/.eslintrc.js +24 -0
- package/dist/templates/ts-library/.gitignore-rename +37 -0
- package/dist/templates/ts-library/.gitlab-ci.yml +135 -0
- package/dist/templates/ts-library/.npmignore-rename +30 -0
- package/dist/templates/ts-library/.prettierrc +6 -0
- package/dist/templates/ts-library/LICENSE +21 -0
- package/dist/templates/ts-library/Makefile +58 -0
- package/dist/templates/ts-library/README.md +1 -0
- package/dist/templates/ts-library/index.d.ts +1 -0
- package/dist/templates/ts-library/index.js +6 -0
- package/dist/templates/ts-library/index.ts +1 -0
- package/dist/templates/ts-library/lib/index.ts +1 -0
- package/dist/templates/ts-library/lib/samples/index.ts +5 -0
- package/dist/templates/ts-library/lib/samples/samples-function.ts +3 -0
- package/dist/templates/ts-library/package.json +34 -0
- package/dist/templates/ts-library/test/jest-e2e.json +9 -0
- package/dist/templates/ts-library/test/sample.e2e-spec.ts +10 -0
- package/dist/templates/ts-library/tsconfig.build.json +4 -0
- package/dist/templates/ts-library/tsconfig.json +18 -0
- package/dist/utils/env.js +146 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/template.js +362 -1
- package/dist/utils/template.js.map +1 -1
- package/package.json +9 -5
- package/src/index.ts +0 -182
- package/src/utils/template.ts +0 -9
package/dist/utils/template.js
CHANGED
|
@@ -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":"
|
|
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.
|
|
3
|
+
"version": "1.0.0-rc.41",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"start": "
|
|
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.
|
|
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
|
-
"
|
|
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
|
-
}
|