@simitgroup/simpleapp-generator 1.0.32 → 1.0.35
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/.vscode/settings.json +3 -0
- package/README.md +185 -16
- package/buildinschemas copy/autoincreament.autoinc.jsonschema.json +39 -0
- package/buildinschemas copy/branch.branch.jsonschema.json +41 -0
- package/buildinschemas copy/docnoformat.docno.jsonschema.json +41 -0
- package/buildinschemas copy/organization.org.jsonschema.json +50 -0
- package/buildinschemas copy/permission.perm.jsonschema.json +23 -0
- package/buildinschemas copy/permission.perm.jsonschema.try.json +25 -0
- package/buildinschemas copy/tenant.tenant.jsonschema.json +21 -0
- package/buildinschemas copy/tenant.tenant.jsonschema.try.json +27 -0
- package/buildinschemas copy/user.user.jsonschema.json +31 -0
- package/dist/buildinschemas/autoincreament.d.ts +3 -0
- package/dist/buildinschemas/autoincreament.d.ts.map +1 -0
- package/dist/buildinschemas/autoincreament.js +36 -0
- package/dist/buildinschemas/autoincreament.js.map +1 -0
- package/dist/buildinschemas/branch.d.ts +3 -0
- package/dist/buildinschemas/branch.d.ts.map +1 -0
- package/dist/buildinschemas/branch.js +41 -0
- package/dist/buildinschemas/branch.js.map +1 -0
- package/dist/buildinschemas/docnoformat.d.ts +3 -0
- package/dist/buildinschemas/docnoformat.d.ts.map +1 -0
- package/dist/buildinschemas/docnoformat.js +60 -0
- package/dist/buildinschemas/docnoformat.js.map +1 -0
- package/dist/buildinschemas/index.d.ts +8 -0
- package/dist/buildinschemas/index.d.ts.map +1 -0
- package/dist/buildinschemas/index.js +18 -0
- package/dist/buildinschemas/index.js.map +1 -0
- package/dist/buildinschemas/organization.d.ts +3 -0
- package/dist/buildinschemas/organization.d.ts.map +1 -0
- package/dist/buildinschemas/organization.js +34 -0
- package/dist/buildinschemas/organization.js.map +1 -0
- package/dist/buildinschemas/permission.d.ts +3 -0
- package/dist/buildinschemas/permission.d.ts.map +1 -0
- package/dist/buildinschemas/permission.js +34 -0
- package/dist/buildinschemas/permission.js.map +1 -0
- package/dist/buildinschemas/tenant.d.ts +3 -0
- package/dist/buildinschemas/tenant.d.ts.map +1 -0
- package/dist/buildinschemas/tenant.js +41 -0
- package/dist/buildinschemas/tenant.js.map +1 -0
- package/dist/buildinschemas/user.d.ts +3 -0
- package/dist/buildinschemas/user.d.ts.map +1 -0
- package/dist/buildinschemas/user.js +31 -0
- package/dist/buildinschemas/user.js.map +1 -0
- package/dist/constant.d.ts +4 -0
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +2 -1
- package/dist/constant.js.map +1 -1
- package/dist/framework.d.ts +10 -0
- package/dist/framework.d.ts.map +1 -0
- package/dist/framework.js +120 -68
- package/dist/framework.js.map +1 -1
- package/dist/generate-allow-changebackend.js +305 -0
- package/dist/generate-allow-changebackend.js.map +1 -0
- package/dist/generate.d.ts +2 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +310 -230
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -20
- package/dist/index.js.map +1 -1
- package/dist/libs.d.ts +2 -0
- package/dist/libs.d.ts.map +1 -0
- package/dist/processors/groupsbuilder.js +2 -0
- package/dist/processors/groupsbuilder.js.map +1 -0
- package/dist/processors/jsonschemabuilder.d.ts +4 -0
- package/dist/processors/jsonschemabuilder.d.ts.map +1 -0
- package/dist/processors/jsonschemabuilder.js +146 -172
- package/dist/processors/jsonschemabuilder.js.map +1 -1
- package/dist/schematype/baseschema.js +25 -0
- package/dist/schematype/baseschema.js.map +1 -0
- package/dist/schematype/default.js +2 -0
- package/dist/schematype/default.js.map +1 -0
- package/dist/schematype/index.js +12 -0
- package/dist/schematype/index.js.map +1 -0
- package/dist/schematype/primarymasterdata.js +38 -0
- package/dist/schematype/primarymasterdata.js.map +1 -0
- package/dist/schematype/simple.js +24 -0
- package/dist/schematype/simple.js.map +1 -0
- package/dist/schematype/simplemasterdata.js +31 -0
- package/dist/schematype/simplemasterdata.js.map +1 -0
- package/dist/schematype/transaction.js +74 -0
- package/dist/schematype/transaction.js.map +1 -0
- package/dist/storage.d.ts +3 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +2 -2
- package/dist/storage.js.map +1 -1
- package/dist/type.d.ts +164 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +16 -1
- package/dist/type.js.map +1 -1
- package/dist/validation.d.ts +1 -0
- package/dist/validation.d.ts.map +1 -0
- package/documentation/designconcept.bpmn +349 -0
- package/documentation/documentation.png +0 -0
- package/documentation/infra.drawio +141 -0
- package/documentation/infra.png +0 -0
- package/documentation/management.drawio +57 -0
- package/documentation/stack.drawio +106 -0
- package/package.json +3 -1
- package/src/buildinschemas/autoincreament.ts +34 -0
- package/src/buildinschemas/branch.ts +39 -0
- package/src/buildinschemas/docnoformat.ts +58 -0
- package/src/buildinschemas/index.ts +7 -0
- package/src/buildinschemas/organization.ts +31 -0
- package/src/buildinschemas/permission.ts +31 -0
- package/src/buildinschemas/tenant.ts +38 -0
- package/src/buildinschemas/user.ts +28 -0
- package/src/constant.ts +2 -1
- package/src/framework.ts +126 -67
- package/src/generate.ts +327 -266
- package/src/generate.ts.backup +339 -0
- package/src/index.ts +93 -18
- package/src/processors/jsonschemabuilder.ts +199 -226
- package/src/processors/jsonschemabuilder.ts-old +383 -0
- package/src/storage.ts +1 -1
- package/src/type.ts +94 -27
- package/templates/basic/nest/controller.ts.eta +255 -0
- package/templates/basic/nest/default.ts.eta +42 -0
- package/templates/basic/{model.eta → nest/model.ts.eta} +18 -5
- package/templates/basic/nest/processor.ts.eta +129 -0
- package/templates/basic/nest/service.ts.eta +64 -0
- package/templates/basic/{type.eta → nest/type.ts.eta} +3 -3
- package/templates/basic/nuxt/default.ts.eta +42 -0
- package/templates/basic/{pageindex.vue.eta → nuxt/pages.crud.vue.eta} +85 -22
- package/templates/basic/nuxt/simpleapp.doc.ts.eta +11 -0
- package/templates/basic/nuxt/simpleapp.generate.client.ts.eta +212 -0
- package/templates/nest/.env.eta +31 -0
- package/templates/nest/.gitignore.eta +40 -0
- package/templates/nest/src/app.controller.ts.eta +19 -0
- package/templates/nest/src/app.module.ts.eta +77 -0
- package/templates/nest/src/app.service.ts.eta +9 -0
- package/templates/nest/src/main.ts.eta +58 -0
- package/templates/nest/src/simpleapp/generate/apischemas/index.ts.eta +16 -0
- package/templates/nest/src/simpleapp/generate/commons/decorators/appuser.decorator.ts.eta +8 -0
- package/templates/nest/src/simpleapp/generate/commons/dicts/foreignkeys.ts.eta +1 -0
- package/templates/nest/src/simpleapp/generate/commons/docnogenerator.service.ts.eta +101 -0
- package/templates/nest/src/simpleapp/generate/commons/exceptions/SimpleAppExceptionFilter.ts.eta +39 -0
- package/templates/nest/src/simpleapp/generate/commons/interceptors/response.interceptor.ts.eta +38 -0
- package/templates/nest/src/simpleapp/generate/commons/middlewares/tenant.middleware.ts.eta +88 -0
- package/templates/nest/{Workflow.eta → src/simpleapp/generate/commons/providers/workflow.provider.ts.etax} +20 -14
- package/templates/nest/src/simpleapp/generate/commons/roles/roles.decorator.ts.eta +6 -0
- package/templates/nest/src/simpleapp/generate/commons/roles/roles.enum.ts.eta +28 -0
- package/templates/nest/src/simpleapp/generate/commons/roles/roles.group.ts.eta +10 -0
- package/templates/nest/src/simpleapp/generate/commons/roles/roles.guard.ts.eta +34 -0
- package/templates/nest/src/simpleapp/generate/commons/user.context.ts.eta +391 -0
- package/templates/nest/src/simpleapp/generate/controllers/simpleapp.controller.ts.eta +71 -0
- package/templates/nest/src/simpleapp/generate/models/perm.model.ts.eta +53 -0
- package/templates/nest/src/simpleapp/generate/models/tenant.model.ts.eta +45 -0
- package/templates/nest/src/simpleapp/generate/models/user.model.ts.eta +57 -0
- package/templates/nest/src/simpleapp/generate/processors/simpleapp.processor.ts.eta +624 -0
- package/templates/nest/src/simpleapp/generate/types/index.ts.eta +19 -0
- package/templates/nest/src/simpleapp/profile/profile.apischema.ts.eta +74 -0
- package/templates/nest/src/simpleapp/profile/profile.controller.ts.eta +110 -0
- package/templates/nest/src/simpleapp/profile/profile.service.ts.eta +195 -0
- package/templates/nest/src/simpleapp/profile/profile.types.ts.eta +18 -0
- package/templates/nest/src/simpleapp/services/autoinc.service.ts.eta +89 -0
- package/templates/nest/src/simpleapp/services/branch.service.ts.eta +66 -0
- package/templates/nest/src/simpleapp/services/docno.service.ts.eta +93 -0
- package/templates/nest/src/simpleapp/services/org.service.ts.eta +67 -0
- package/templates/nest/src/simpleapp/services/perm.service.ts.eta +102 -0
- package/templates/nest/src/simpleapp/services/tenant.service.ts.eta +69 -0
- package/templates/nest/src/simpleapp/services/user.service.ts.eta +66 -0
- package/templates/nest/src/simpleapp/simpleapp.module.ts.eta +43 -0
- package/templates/nuxt/.env.eta +21 -0
- package/templates/nuxt/.gitignore.eta +28 -0
- package/templates/nuxt/app.vue.eta +5 -2
- package/templates/nuxt/assets/css/tailwind.css.eta +35 -0
- package/templates/nuxt/components/CrudNestedDoc.vue.eta +164 -0
- package/templates/nuxt/components/CrudSimple.vue.eta +179 -0
- package/templates/nuxt/{components.debugdocdata.vue.eta → components/DebugDocumentData.vue.eta} +4 -1
- package/templates/nuxt/{components.eventmonitor.vue.eta → components/EventMonitor.vue.eta} +27 -27
- package/templates/nuxt/components/Invitation.vue.eta +50 -0
- package/templates/nuxt/components/Menus.vue.eta +58 -0
- package/templates/nuxt/components/PermissionInfo.vue.eta +92 -0
- package/templates/nuxt/components/SimpleAppAutocomplete.vue.eta +131 -0
- package/templates/nuxt/components/SimpleAppAutocompletemulti.vue.eta +73 -0
- package/templates/nuxt/components/SimpleAppCalendar.vue.eta +55 -0
- package/templates/nuxt/components/SimpleAppCheckbox.vue.eta +29 -0
- package/templates/nuxt/components/SimpleAppChip.vue.eta +28 -0
- package/templates/nuxt/components/SimpleAppColor.vue.eta +41 -0
- package/templates/nuxt/components/SimpleAppDatatable.vue.eta +20 -0
- package/templates/nuxt/components/SimpleAppDocumentNo.vue.eta +90 -0
- package/templates/nuxt/components/SimpleAppDynamicInput.vue.eta +29 -0
- package/templates/nuxt/components/SimpleAppEditor.vue.eta +31 -0
- package/templates/nuxt/components/SimpleAppForm.vue.eta +131 -0
- package/templates/nuxt/components/SimpleAppInputTable.vue.eta +104 -0
- package/templates/nuxt/components/SimpleAppList.vue.eta +38 -0
- package/templates/nuxt/components/SimpleAppListmulti.vue.eta +41 -0
- package/templates/nuxt/components/SimpleAppNumber.vue.eta +32 -0
- package/templates/nuxt/components/SimpleAppPassword.vue.eta +41 -0
- package/templates/nuxt/components/SimpleAppRadio.vue.eta +42 -0
- package/templates/nuxt/components/SimpleAppRating.vue.eta +41 -0
- package/templates/nuxt/components/SimpleAppSelect.vue.eta +38 -0
- package/templates/nuxt/components/SimpleAppSelectmulti.vue.eta +39 -0
- package/templates/nuxt/components/SimpleAppSlider.vue.eta +42 -0
- package/templates/nuxt/components/SimpleAppSwitch.vue.eta +30 -0
- package/templates/nuxt/components/SimpleAppText.vue.eta +50 -0
- package/templates/nuxt/components/SimpleAppTextarea.vue.eta +30 -0
- package/templates/nuxt/components/SimpleAppValue.vue.eta +86 -0
- package/templates/nuxt/components/SimpleFieldContainer.vue.eta +102 -0
- package/templates/nuxt/components/XorgPicker.vue.eta +66 -0
- package/templates/nuxt/components/helper.ts.eta +90 -0
- package/templates/nuxt/components/type.ts.eta +32 -0
- package/templates/nuxt/composables/docformat.generate.ts.eta +5 -0
- package/templates/nuxt/{composables.getautocomplete.ts.eta → composables/getAutocomplete.generate.ts.eta} +4 -5
- package/templates/nuxt/{composables.getmenus.ts.eta → composables/getMenus.generate.ts.eta} +22 -7
- package/templates/nuxt/composables/getOpenApi.generate.ts.eta +6 -0
- package/templates/nuxt/composables/getTenant.generate.ts.eta +4 -0
- package/templates/nuxt/composables/getUserStore.generate.ts.eta +22 -0
- package/templates/nuxt/composables/logout.generate.ts.eta +22 -0
- package/templates/nuxt/composables/roles.generate.ts.eta +48 -0
- package/templates/nuxt/composables/stringHelper.generate.ts.eta +5 -0
- package/templates/nuxt/{layouts.default.vue.eta → layouts/default.vue.eta} +2 -0
- package/templates/nuxt/middleware/10.acl.global.ts.eta +38 -0
- package/templates/nuxt/nuxt.config.ts.eta +12 -2
- package/templates/nuxt/pages/[xorg]/branch/index.vue.eta +102 -0
- package/templates/nuxt/pages/[xorg]/docnoformat/[id].vue.eta +17 -0
- package/templates/nuxt/pages/[xorg]/docnoformat/index.vue.eta +269 -0
- package/templates/nuxt/pages/[xorg]/index.vue.eta +36 -0
- package/templates/nuxt/pages/[xorg]/organization/index.vue.eta +148 -0
- package/templates/nuxt/pages/[xorg]/permission/index.vue.eta +280 -0
- package/templates/nuxt/pages/[xorg]/tenant/index.vue.eta +93 -0
- package/templates/nuxt/pages/[xorg]/user/index.vue.eta +468 -0
- package/templates/nuxt/pages/index.vue.eta +191 -0
- package/templates/nuxt/pages/login.vue.eta +21 -0
- package/templates/nuxt/plugins/10.simpleapp-event.ts.eta +53 -0
- package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +155 -0
- package/templates/nuxt/plugins/50.simpleapp-client.ts.eta +23 -0
- package/templates/nuxt/{server.api.ts.eta → server/api/[xorg]/[...].ts.eta} +5 -2
- package/templates/nuxt/server/api/auth/[...].ts.eta +68 -0
- package/templates/nuxt/{server.api.auth.logout.ts.eta → server/api/auth/logout.ts.eta} +1 -3
- package/templates/nuxt/server/api/profile/[...].ts.eta +150 -0
- package/templates/nuxt/server/api/profile/index.ts.eta +103 -0
- package/templates/nuxt/simpleapp/generate/clients/SimpleAppClient.ts.eta +187 -0
- package/templates/nuxt/simpleapp/generate/commons/documents.ts.eta +6 -0
- package/templates/nuxt/simpleapp/generate/commons/events.ts.eta +5 -0
- package/templates/nuxt/simpleapp/generate/commons/groups.ts.eta +11 -0
- package/templates/nuxt/simpleapp/generate/commons/roles.ts.eta +21 -0
- package/templates/nuxt/types/index.ts.eta +65 -0
- package/templates/project/README.md +11 -0
- package/templates/project/build.sh.eta +17 -0
- package/templates/project/config.json.eta +2 -0
- package/templates/project/generate.ts.eta +10 -0
- package/templates/project/schemas/category.ts.eta +26 -0
- package/templates/project/schemas/index.ts.eta +5 -0
- package/templates/project/schemas/product.ts.eta +59 -0
- package/templates/project/shares/hello.ts.eta +1 -0
- package/templates/project/shares/index.ts.eta +2 -0
- package/tsconfig.json +9 -2
- package/tsconfig.tsbuildinfo +1 -0
- package/definations/category.cat.jsonschema.json +0 -55
- package/definations/level.lvl.jsonschema.json +0 -48
- package/definations/product.prd.jsonschema.json +0 -46
- package/templates/basic/controller.eta +0 -152
- package/templates/basic/module.eta +0 -22
- package/templates/basic/service.eta +0 -62
- package/templates/basic/simpleappclient.eta +0 -120
- package/templates/nest/SimpleAppController.eta +0 -69
- package/templates/nest/SimpleAppService.eta +0 -366
- package/templates/nest/TenantMiddleware.eta +0 -34
- package/templates/nest/UserProvider.eta +0 -127
- package/templates/nest/app.controller.eta +0 -12
- package/templates/nest/app.module.eta +0 -64
- package/templates/nest/app.service.eta +0 -8
- package/templates/nest/inputvalidation-exception.eta +0 -6
- package/templates/nest/nest.env.eta +0 -28
- package/templates/nest/nest.main.eta +0 -31
- package/templates/nuxt/components.crudsimple.vue.eta +0 -124
- package/templates/nuxt/components.menus.vue.eta +0 -35
- package/templates/nuxt/env.eta +0 -17
- package/templates/nuxt/pages.[xorg].index.vue.eta +0 -20
- package/templates/nuxt/pages.index.vue.eta +0 -72
- package/templates/nuxt/pages.login.vue.eta +0 -20
- package/templates/nuxt/plugins.simpleapp.ts.eta +0 -88
- package/templates/nuxt/server.api.auth[...].ts.eta +0 -233
- package/templates/nuxt/tailwind.css.eta +0 -49
- /package/templates/basic/{apischema.eta → nest/apischema.ts.eta} +0 -0
- /package/templates/basic/{jsonschema.eta → nest/jsonschema.ts.eta} +0 -0
- /package/templates/basic/{pageindexwithid.vue.eta → nuxt/pages.[id].vue.eta} +0 -0
- /package/templates/nest/{oauth2-redirect.eta → public_html/oauth2-redirect.html.eta} +0 -0
package/dist/framework.js
CHANGED
|
@@ -26,33 +26,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.prepareOpenApiClient = exports.prettyNest = exports.prettyNuxt = exports.prepareNuxt = exports.prepareNest = exports.runCreateNuxt = exports.runCreateNest = exports.setConfiguration = void 0;
|
|
30
|
-
const fs_1 =
|
|
29
|
+
exports.prepareOpenApiClient = exports.prettyNest = exports.prettyNuxt = exports.prepareNuxt = exports.prepareProject = exports.prepareNest = exports.runCreateNuxt = exports.runCreateNest = exports.setConfiguration = void 0;
|
|
30
|
+
const fs_1 = __importStar(require("fs"));
|
|
31
31
|
const child_process_1 = require("child_process");
|
|
32
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
32
33
|
const tslog_1 = require("tslog");
|
|
33
34
|
const constants = __importStar(require("./constant"));
|
|
34
35
|
const eta_1 = require("eta");
|
|
35
36
|
const log = new tslog_1.Logger();
|
|
36
37
|
let config = {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
38
|
+
"jsonschemaFolder": "./jsonschemas",
|
|
39
|
+
"bpmnFolder": "./bpmn",
|
|
40
|
+
"backendFolder": "./backend",
|
|
41
|
+
"groupFolder": "./groups",
|
|
39
42
|
"backendPort": "8000",
|
|
40
43
|
"mongoConnectStr": 'mongodb://<user>:<pass>@<host>:<port>/<db>?authMechanism=DEFAULT',
|
|
41
|
-
"frontendFolder": "./
|
|
44
|
+
"frontendFolder": "./frontend",
|
|
42
45
|
"frontendPort": "8080",
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
46
|
+
"oauthSetting": {
|
|
47
|
+
"oauthBaseUrl": "https://keycloak-server-url/",
|
|
48
|
+
"oauthRealm": "realm-name",
|
|
49
|
+
"oauthRealmUrl": "https://keycloak-server-url/realms/realm-name",
|
|
50
|
+
"oauthClient": "client-id",
|
|
51
|
+
"oauthClientSecret": "client-secret-value",
|
|
52
|
+
"oauthAuthSecretKey": "my-secret",
|
|
53
|
+
"adminRole": "realmadmin"
|
|
51
54
|
},
|
|
52
55
|
"bpmnsetting": {
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
+
"bpmnHost": "127.0.0.1",
|
|
57
|
+
"bpmnPort": "9000",
|
|
58
|
+
"bpmnApiKey": "12345"
|
|
56
59
|
}
|
|
57
60
|
};
|
|
58
61
|
const setConfiguration = (paraconfig) => {
|
|
@@ -94,18 +97,18 @@ const prepareNest = (callback) => {
|
|
|
94
97
|
const targetfolder = config.backendFolder;
|
|
95
98
|
log.info(`creating backend project ${targetfolder}`);
|
|
96
99
|
if (!fs_1.default.existsSync(`${targetfolder}/.env`)) {
|
|
97
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save nest-keycloak-connect keycloak-connect bpmn-client @nestjs/serve-static jsonwebtoken axios @darkwolf/base64url json-schema @wearenova/mongoose-tenant @nestjs/swagger @nestjs/mongoose mongoose ajv ajv-formats ajv-errors @nestjs/config`, async (error, stdout, stderr) => {
|
|
100
|
+
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save moment @casl/ability jsonpath yaml lodash @types/lodash nest-keycloak-connect keycloak-connect bpmn-client @nestjs/serve-static jsonwebtoken axios @darkwolf/base64url json-schema @wearenova/mongoose-tenant @nestjs/swagger @nestjs/mongoose mongoose ajv ajv-formats ajv-errors @nestjs/config`, async (error, stdout, stderr) => {
|
|
98
101
|
// log.info(`dependency installed`)
|
|
99
102
|
if (!error) {
|
|
100
|
-
|
|
101
|
-
const eta = new
|
|
102
|
-
const variables
|
|
103
|
-
const txtEnv = eta.render('./nest/nest.env.eta', variables);
|
|
104
|
-
const txtMain = eta.render('./nest/nest.main.eta', variables);
|
|
105
|
-
const txtRedirectHtml = eta.render('./nest/oauth2-redirect.eta', variables);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
103
|
+
// fs.mkdirSync(`${targetfolder}/public_html`,{recursive:true})
|
|
104
|
+
// const eta = new Eta({views: constants.templatedir});
|
|
105
|
+
// const variables=config
|
|
106
|
+
// const txtEnv = eta.render('./nest/nest.env.eta', variables);
|
|
107
|
+
// const txtMain = eta.render('./nest/nest.main.eta', variables);
|
|
108
|
+
// const txtRedirectHtml = eta.render('./nest/oauth2-redirect.eta', variables);
|
|
109
|
+
// fs.writeFileSync(`${targetfolder}/.env`, txtEnv);
|
|
110
|
+
// fs.writeFileSync(`${targetfolder}/src/main.ts`, txtMain);
|
|
111
|
+
// fs.writeFileSync(`${targetfolder}/public_html/oauth2-redirect.html`, txtRedirectHtml);
|
|
109
112
|
const tsconfigpath = process.cwd() + '/' + `${targetfolder}/tsconfig.json`;
|
|
110
113
|
const tsconfig = require(tsconfigpath);
|
|
111
114
|
tsconfig.compilerOptions.esModuleInterop = true;
|
|
@@ -126,54 +129,98 @@ const prepareNest = (callback) => {
|
|
|
126
129
|
}
|
|
127
130
|
};
|
|
128
131
|
exports.prepareNest = prepareNest;
|
|
132
|
+
const prepareProject = async (callback) => {
|
|
133
|
+
const dir = process.cwd() + '/';
|
|
134
|
+
log.info("prepareProject");
|
|
135
|
+
const generateTemplatefolder = `${constants.templatedir}/project/`;
|
|
136
|
+
const eta = new eta_1.Eta({ views: generateTemplatefolder });
|
|
137
|
+
const vars = {
|
|
138
|
+
config: config
|
|
139
|
+
};
|
|
140
|
+
fs_1.default.readdirSync(`${constants.templatedir}/project`, { recursive: true }).forEach((fullfilename) => {
|
|
141
|
+
const templatepath = `${generateTemplatefolder}/${fullfilename}`;
|
|
142
|
+
const filename = lodash_1.default.last(fullfilename.split('/'));
|
|
143
|
+
const targetfolder = dir + String(fullfilename).replace(filename, '');
|
|
144
|
+
console.log("Filename", targetfolder, filename);
|
|
145
|
+
if (targetfolder && !(0, fs_1.existsSync)(targetfolder)) {
|
|
146
|
+
console.log("Write directory", targetfolder);
|
|
147
|
+
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
148
|
+
}
|
|
149
|
+
if (filename.includes('.eta')) {
|
|
150
|
+
const tofilename = targetfolder + filename.replace('.eta', '');
|
|
151
|
+
log.info(tofilename, "Render file");
|
|
152
|
+
const txt = eta.render(fullfilename, vars);
|
|
153
|
+
// log.info(fullfilename+"====>>"+tofilename)
|
|
154
|
+
// console.log(txt)
|
|
155
|
+
(0, fs_1.writeFileSync)(tofilename, txt);
|
|
156
|
+
}
|
|
157
|
+
else if (filename.includes('.md')) {
|
|
158
|
+
const tofilename = dir + filename.replace('.eta', '');
|
|
159
|
+
log.info(tofilename, "Copy");
|
|
160
|
+
(0, fs_1.copyFileSync)(templatepath, tofilename);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
await (0, child_process_1.exec)(`npx prettier --write . `, () => {
|
|
164
|
+
callback();
|
|
165
|
+
});
|
|
166
|
+
// fs.mkdirSync(`${dir}/groups`,{recursive:true})
|
|
167
|
+
// fs.mkdirSync(`${dir}/schemas`,{recursive:true})
|
|
168
|
+
// fs.mkdirSync(`${dir}/shares`,{recursive:true})
|
|
169
|
+
};
|
|
170
|
+
exports.prepareProject = prepareProject;
|
|
129
171
|
//prepare nuxt project for simpleapp generator
|
|
130
172
|
const prepareNuxt = (callback) => {
|
|
131
173
|
const targetfolder = config.frontendFolder;
|
|
132
174
|
if (!fs_1.default.existsSync(`${targetfolder}/.env`)) {
|
|
133
175
|
//asume no environment. prepare now
|
|
134
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install;pnpm install -D @sidebase/nuxt-auth @nuxt/ui @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core nuxt-security prettier `, (error, stdout, stderr) => {
|
|
176
|
+
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install;pnpm install -D @nuxtjs/tailwindcss @sidebase/nuxt-auth @nuxt/ui @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core nuxt-security prettier `, (error, stdout, stderr) => {
|
|
135
177
|
//;pnpm install
|
|
136
178
|
console.log(error, stdout, stderr);
|
|
137
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill
|
|
179
|
+
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save pinia @pinia/nuxt @nuxt/kit lodash @types/lodash @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill primeflex primeicons prettier primevue axios json-schema mitt @simitgroup/simpleapp-vue-component@latest`, (error, stdout, stderr) => {
|
|
138
180
|
console.log(error, stdout, stderr);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const eta = new
|
|
147
|
-
const variables
|
|
148
|
-
const writes = {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
181
|
+
// fs.mkdirSync(`${targetfolder}/assets/css/`,{recursive:true})
|
|
182
|
+
// fs.mkdirSync(`${targetfolder}/layouts`,{recursive:true})
|
|
183
|
+
// fs.mkdirSync(`${targetfolder}/components`,{recursive:true})
|
|
184
|
+
// fs.mkdirSync(`${targetfolder}/server/api/[xorg]`,{recursive:true})
|
|
185
|
+
// fs.mkdirSync(`${targetfolder}/server/api/auth`,{recursive:true})
|
|
186
|
+
// fs.mkdirSync(`${targetfolder}/pages/[xorg]`,{recursive:true})
|
|
187
|
+
// fs.mkdirSync(`${targetfolder}/plugins`,{recursive:true})
|
|
188
|
+
// const eta = new Eta({views: `${constants.templatedir}/nuxt`});
|
|
189
|
+
// const variables=config
|
|
190
|
+
// const writes = {
|
|
191
|
+
// './app.vue.eta':'app.vue',
|
|
192
|
+
// './layouts.default.vue.eta':'layouts/default.vue',
|
|
193
|
+
// './server.api.ts.eta':'server/api/[xorg]/[...].ts',
|
|
194
|
+
// './server.api.auth.logout.ts.eta':'server/api/auth/logout.ts',
|
|
195
|
+
// './server.api.auth[...].ts.eta':'server/api/auth/[...].ts',
|
|
196
|
+
// './nuxt.config.ts.eta':'nuxt.config.ts',
|
|
197
|
+
// './pages.index.vue.eta':'pages/index.vue',
|
|
198
|
+
// './pages.[xorg].index.vue.eta':'pages/[xorg]/index.vue',
|
|
199
|
+
// './pages.login.vue.eta':'pages/login.vue',
|
|
200
|
+
// './plugins.10.simpleapp.ts.eta':'plugins/10.simpleapp.ts',
|
|
201
|
+
// './tailwind.config.ts.eta':'tailwind.config.ts',
|
|
202
|
+
// './tailwind.css.eta':'assets/css/tailwind.css',
|
|
203
|
+
// './env.eta':'.env',
|
|
204
|
+
// }
|
|
205
|
+
// const templates = Object.getOwnPropertyNames(writes)
|
|
206
|
+
// for(let i=0; i<templates.length;i++){
|
|
207
|
+
// const template = templates[i]
|
|
208
|
+
// const filename = writes[template]
|
|
209
|
+
// const txt = eta.render(template, variables);
|
|
210
|
+
// const file =`${targetfolder}/${filename}`
|
|
211
|
+
// log.info("writing ",file)
|
|
212
|
+
// fs.writeFileSync(file, txt);
|
|
213
|
+
// }
|
|
214
|
+
// const frontendtsconfigpath = process.cwd()+'/'+`${targetfolder}/tsconfig.json`
|
|
215
|
+
// const frontendtsconfig ={
|
|
216
|
+
// "extends": "./.nuxt/tsconfig.json",
|
|
217
|
+
// "compilerOptions": {
|
|
218
|
+
// "strictNullChecks":false
|
|
219
|
+
// }
|
|
220
|
+
// }
|
|
221
|
+
// fs.writeFileSync(frontendtsconfigpath, JSON.stringify(frontendtsconfig));
|
|
222
|
+
// exec(`openapi-generator-cli generate -i ${config.backendFolder}/openapi.yaml -o ${config.frontendFolder}/generate/openapi -g typescript-axios --skip-validate-spec`)
|
|
223
|
+
// log.info("nuxt project completed")
|
|
177
224
|
callback();
|
|
178
225
|
});
|
|
179
226
|
});
|
|
@@ -185,7 +232,8 @@ const prepareNuxt = (callback) => {
|
|
|
185
232
|
};
|
|
186
233
|
exports.prepareNuxt = prepareNuxt;
|
|
187
234
|
const prettyNuxt = () => {
|
|
188
|
-
(0,
|
|
235
|
+
(0, exports.prepareOpenApiClient)();
|
|
236
|
+
(0, child_process_1.exec)(`cd ${config.frontendFolder};npx prettier --write "./pages/**/*.vue" "./generate/docs/*.ts" `);
|
|
189
237
|
};
|
|
190
238
|
exports.prettyNuxt = prettyNuxt;
|
|
191
239
|
const prettyNest = () => {
|
|
@@ -193,7 +241,11 @@ const prettyNest = () => {
|
|
|
193
241
|
};
|
|
194
242
|
exports.prettyNest = prettyNest;
|
|
195
243
|
const prepareOpenApiClient = () => {
|
|
196
|
-
|
|
244
|
+
const executestr = `openapi-generator-cli generate -i ${config.backendFolder}/openapi.yaml -o ${config.frontendFolder}/generate/openapi -g typescript-axios --skip-validate-spec`;
|
|
245
|
+
log.info("execute generate openapi:");
|
|
246
|
+
log.info(executestr);
|
|
247
|
+
const child5 = (0, child_process_1.spawn)('openapi-generator-cli', ['generate', '-i', `${config.backendFolder}/openapi.yaml`, '-o', `${config.frontendFolder}/simpleapp/generate/openapi`, '-g', 'typescript-axios', '--skip-validate-spec'], { stdio: 'inherit', });
|
|
248
|
+
// exec(executestr)
|
|
197
249
|
};
|
|
198
250
|
exports.prepareOpenApiClient = prepareOpenApiClient;
|
|
199
251
|
//# sourceMappingURL=framework.js.map
|
package/dist/framework.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.initialize = void 0;
|
|
27
|
+
// import { readFormBuilder } from './processors/formbuilder.tsa';
|
|
28
|
+
// import { readJsonSchemaBuilder } from './processors/jsonschemabuilder';
|
|
29
|
+
const constants = __importStar(require("./constant"));
|
|
30
|
+
const jsonschemabuilder_1 = require("./processors/jsonschemabuilder");
|
|
31
|
+
const storage_1 = require("./storage");
|
|
32
|
+
const tslog_1 = require("tslog");
|
|
33
|
+
const log = new tslog_1.Logger();
|
|
34
|
+
const clc = require("cli-color");
|
|
35
|
+
const path = require('path');
|
|
36
|
+
const fs_1 = require("fs");
|
|
37
|
+
const { Eta } = require('eta');
|
|
38
|
+
const { capitalizeFirstLetter } = require('./libs');
|
|
39
|
+
const X_DOCUMENT_TYPE = 'x-document-type';
|
|
40
|
+
const X_DOCUMENT_NAME = 'x-document-name';
|
|
41
|
+
const X_COLLECTION_NAME = 'x-collection-name';
|
|
42
|
+
const extFb = '.xfb.json';
|
|
43
|
+
const extHfb = '.xhfb.json';
|
|
44
|
+
const extjsonschema = '.jsonschema.json';
|
|
45
|
+
let jsonschemas = {};
|
|
46
|
+
const docs = [];
|
|
47
|
+
const initialize = async (defFolder, bpmnFolder, backendfolder, frontendfolder, callback) => {
|
|
48
|
+
prepareEnvironments(backendfolder, frontendfolder);
|
|
49
|
+
let activatemodules = [];
|
|
50
|
+
//
|
|
51
|
+
/*
|
|
52
|
+
load available bpmn into array
|
|
53
|
+
*/
|
|
54
|
+
const files = (0, fs_1.readdirSync)(defFolder);
|
|
55
|
+
// log.warn("all schemas:",files)
|
|
56
|
+
// readdir(defFolder, (err, files) => {
|
|
57
|
+
// files.forEach((file) => {
|
|
58
|
+
for (let j = 0; j < files.length; j++) {
|
|
59
|
+
const file = files[j];
|
|
60
|
+
log.info(`Load ` + clc.green(file));
|
|
61
|
+
const filearr = file.split('.');
|
|
62
|
+
let rendertype = 'basic';
|
|
63
|
+
let docname = filearr[0].toLowerCase();
|
|
64
|
+
let doctype = filearr[1].toLowerCase();
|
|
65
|
+
const jsonstring = (0, fs_1.readFileSync)(defFolder + path.sep + file, 'utf-8');
|
|
66
|
+
let allmodels = {};
|
|
67
|
+
if (file.endsWith(extjsonschema)) {
|
|
68
|
+
const jsondata = JSON.parse(jsonstring);
|
|
69
|
+
rendertype = 'basic';
|
|
70
|
+
jsonschemas[docname] = jsondata;
|
|
71
|
+
// foreignkeys:
|
|
72
|
+
// tmpforeignkeys:TypeForeignKey
|
|
73
|
+
allmodels = await (0, jsonschemabuilder_1.readJsonSchemaBuilder)(doctype, docname, jsondata, storage_1.foreignkeys);
|
|
74
|
+
//foreignkeycatalogues
|
|
75
|
+
// foreignkeys
|
|
76
|
+
generate(docname, doctype, rendertype, allmodels, backendfolder, frontendfolder);
|
|
77
|
+
activatemodules.push({ doctype: doctype, docname: capitalizeFirstLetter(docname), api: jsondata['x-document-api'] });
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
log.warn(`Load ` + clc.yellow(file) + ` but it is not supported`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// log.warn("foreignkeys---",foreignkeys)
|
|
84
|
+
log.info("Activated backend modules: ", JSON.stringify(activatemodules));
|
|
85
|
+
// log.info(activatemodules)
|
|
86
|
+
finalize(activatemodules, backendfolder, frontendfolder);
|
|
87
|
+
callback();
|
|
88
|
+
};
|
|
89
|
+
exports.initialize = initialize;
|
|
90
|
+
const generate = (docname, doctype, rendertype, allmodels, backendfolder, frontendfolder) => {
|
|
91
|
+
const targetfolder = `${backendfolder}/src/docs/${doctype}`;
|
|
92
|
+
const frontendpagefolder = `${frontendfolder}/pages/[xorg]`;
|
|
93
|
+
try {
|
|
94
|
+
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
95
|
+
(0, fs_1.mkdirSync)(`${frontendfolder}/generate/docs/`, { recursive: true });
|
|
96
|
+
(0, fs_1.mkdirSync)(`${frontendfolder}/simpleapp`, { recursive: true });
|
|
97
|
+
(0, fs_1.mkdirSync)(frontendpagefolder, { recursive: true });
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
//do nothing if folder exists
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
const templatefolder = `${constants.templatedir}/${rendertype}`;
|
|
104
|
+
log.info(`- Generate ${docname}, ${doctype}, ${templatefolder}`);
|
|
105
|
+
const eta = new Eta({
|
|
106
|
+
views: templatefolder,
|
|
107
|
+
functionHeader: 'const capitalizeFirstLetter = (str) => str.slice(0, 1).toUpperCase() + str.slice(1);' +
|
|
108
|
+
'const initType=(str)=>{return ["string","number","boolean","array","object"].includes(str) ? capitalizeFirstLetter(str) : str;}',
|
|
109
|
+
});
|
|
110
|
+
const variables = {
|
|
111
|
+
name: docname,
|
|
112
|
+
doctype: doctype,
|
|
113
|
+
models: allmodels,
|
|
114
|
+
autocompletecode: allmodels[capitalizeFirstLetter(docname)].codeField,
|
|
115
|
+
autocompletename: allmodels[capitalizeFirstLetter(docname)].nameField,
|
|
116
|
+
moreAutoComplete: allmodels[capitalizeFirstLetter(docname)].moreAutoComplete,
|
|
117
|
+
schema: allmodels[capitalizeFirstLetter(docname)].model,
|
|
118
|
+
apiSchemaName: capitalizeFirstLetter(docname),
|
|
119
|
+
typename: capitalizeFirstLetter(docname),
|
|
120
|
+
fullApiSchemaName: doctype + 'apischema.' + capitalizeFirstLetter(docname),
|
|
121
|
+
fullTypeName: doctype + 'type.' + capitalizeFirstLetter(docname),
|
|
122
|
+
jsonschema: jsonschemas[docname],
|
|
123
|
+
bothEndCode: '',
|
|
124
|
+
frontEndCode: '',
|
|
125
|
+
backEndCode: '',
|
|
126
|
+
controllerCode: '',
|
|
127
|
+
apiSchemaCode: '',
|
|
128
|
+
docStatusSettings: allmodels[capitalizeFirstLetter(docname)].docStatusSettings,
|
|
129
|
+
apiSettings: allmodels[capitalizeFirstLetter(docname)].apiSettings,
|
|
130
|
+
requireautocomplete: allmodels[capitalizeFirstLetter(docname)].requireautocomplete,
|
|
131
|
+
isolationtype: allmodels[capitalizeFirstLetter(docname)].isolationtype
|
|
132
|
+
};
|
|
133
|
+
// console.log('generate 2', JSON.stringify(variables));
|
|
134
|
+
// // const txtUISchema = eta.render('./uischema', variables);
|
|
135
|
+
// console.log('generate 4');
|
|
136
|
+
// console.log('generate 2', variables);
|
|
137
|
+
const txtType = eta.render('./type', variables);
|
|
138
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.type.ts`, txtType);
|
|
139
|
+
// compile(jsonschemas[docname], docname).then((txtType: string) => {
|
|
140
|
+
// writeFileSync(`${targetfolder}/${doctype}.type.ts`, txtType);
|
|
141
|
+
// });
|
|
142
|
+
// generate jsonschema object, use for data validation
|
|
143
|
+
const txtJsonSchema = eta.render('./jsonschema', variables);
|
|
144
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.jsonschema.ts`, txtJsonSchema);
|
|
145
|
+
// generate before save source code, wont override after regenerate
|
|
146
|
+
// const customizefilename = `${targetfolder}/${doctype}.beforesave.ts`;
|
|
147
|
+
// if (!existsSync(customizefilename)) {
|
|
148
|
+
// const txtBeforeSave = eta.render('./beforesave', variables);
|
|
149
|
+
// writeFileSync(
|
|
150
|
+
// `${targetfolder}/${doctype}.beforesave.ts`,
|
|
151
|
+
// txtBeforeSave,
|
|
152
|
+
// );
|
|
153
|
+
// }
|
|
154
|
+
// write mongoose model file
|
|
155
|
+
const txtModel = eta.render('./model', variables);
|
|
156
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.model.ts`, txtModel);
|
|
157
|
+
// prepare openapi schema
|
|
158
|
+
const apischemafile = `${targetfolder}/${doctype}.apischema.ts`;
|
|
159
|
+
if ((0, fs_1.existsSync)(apischemafile)) {
|
|
160
|
+
const apischemaCode = (0, fs_1.readFileSync)(apischemafile).toString();
|
|
161
|
+
const regexapischema = /\/\/<begin-apischema-code>([\s\S]*?)\/\/<end-apischema-code>/g;
|
|
162
|
+
const apischemaresult = apischemaCode.match(regexapischema);
|
|
163
|
+
if (apischemaresult) {
|
|
164
|
+
variables.apiSchemaCode = apischemaresult[0];
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
variables.apiSchemaCode = "//<begin-apischema-code>\n//<end-apischema-code>";
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const txtApiSchema = eta.render('./apischema', variables);
|
|
171
|
+
(0, fs_1.writeFileSync)(apischemafile, txtApiSchema);
|
|
172
|
+
// prepare backend classes
|
|
173
|
+
// prepare frontend api client
|
|
174
|
+
const servicefile = `${targetfolder}/${doctype}.service.ts`;
|
|
175
|
+
let bothEndCode = '';
|
|
176
|
+
let backEndCode = '';
|
|
177
|
+
if ((0, fs_1.existsSync)(servicefile)) {
|
|
178
|
+
const servicecodes = (0, fs_1.readFileSync)(servicefile).toString();
|
|
179
|
+
/* extract string bothend and backend, put in back */
|
|
180
|
+
const regex1 = /\/\/<begin-bothend-code>([\s\S]*?)\/\/<end-bothend-code>/g;
|
|
181
|
+
const regex2 = /\/\/<begin-backend-code>([\s\S]*?)\/\/<end-backend-code>/g;
|
|
182
|
+
const bothendresult = servicecodes.match(regex1);
|
|
183
|
+
const backendresult = servicecodes.match(regex2);
|
|
184
|
+
console.log("bothendresult", bothendresult);
|
|
185
|
+
console.log("backendresult", backendresult);
|
|
186
|
+
if (bothendresult) {
|
|
187
|
+
variables.bothEndCode = bothendresult[0];
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
variables.bothEndCode = "//<begin-bothend-code>\n//<end-bothend-code>";
|
|
191
|
+
}
|
|
192
|
+
if (backendresult) {
|
|
193
|
+
variables.backEndCode = backendresult[0];
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
variables.backEndCode = "//<begin-backend-code>\n//<end-backend-code>";
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const txtService = eta.render('./service', variables);
|
|
200
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.service.ts`, txtService);
|
|
201
|
+
// prepare api router, allow add more api and wont override after regenerate
|
|
202
|
+
const controllerfile = `${targetfolder}/${doctype}.controller.ts`;
|
|
203
|
+
let controllerCode = '';
|
|
204
|
+
if ((0, fs_1.existsSync)(controllerfile)) {
|
|
205
|
+
/* extract customized controller, put in back */
|
|
206
|
+
const controllersourcecodes = (0, fs_1.readFileSync)(controllerfile).toString();
|
|
207
|
+
const controllerregex = /\/\/<begin-controller-code>([\s\S]*?)\/\/<end-controller-code>/g;
|
|
208
|
+
const controllerresult = controllersourcecodes.match(controllerregex);
|
|
209
|
+
if (controllerresult) {
|
|
210
|
+
controllerCode = controllerresult[0];
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
variables.controllerCode = controllerCode != '' ? controllerCode : "\n//<begin-controller-code>\n//<end-controller-code>";
|
|
214
|
+
const txtController = eta.render('./controller', variables);
|
|
215
|
+
(0, fs_1.writeFileSync)(controllerfile, txtController);
|
|
216
|
+
// prepare module
|
|
217
|
+
const txtModule = eta.render('./module', variables);
|
|
218
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.module.ts`, txtModule);
|
|
219
|
+
// prepare readme
|
|
220
|
+
// const txtReadme = eta.render('./readme', variables);
|
|
221
|
+
// writeFileSync(`${targetfolder}/README.md`, txtReadme);
|
|
222
|
+
const frontendclient = `${frontendfolder}/generate/docs/${variables.typename}Client.ts`;
|
|
223
|
+
// let frontEndCode = '';
|
|
224
|
+
// if (existsSync(frontendfile)) {
|
|
225
|
+
// const clientcodes = readFileSync(frontendfile).toString();
|
|
226
|
+
/* extract string frontend code, put in back */
|
|
227
|
+
// const regex3 =
|
|
228
|
+
// /\/\/<begin-frontend-code>([\s\S]*?)\/\/<end-frontend-code>/g;
|
|
229
|
+
// const frontendresult = clientcodes.match(regex3);
|
|
230
|
+
// if (frontendresult) {
|
|
231
|
+
// frontEndCode = frontendresult[0];
|
|
232
|
+
// }
|
|
233
|
+
// }
|
|
234
|
+
// variables.frontEndCode = frontEndCode ?? '';
|
|
235
|
+
const txtClient = eta.render('./simpleappclient.eta', variables);
|
|
236
|
+
(0, fs_1.writeFileSync)(frontendclient, txtClient);
|
|
237
|
+
const frontenddoc = `${frontendfolder}/simpleapp/${variables.typename}Doc.ts`;
|
|
238
|
+
const txtDoc = eta.render('./simpleappdoc.eta', variables);
|
|
239
|
+
(0, fs_1.writeFileSync)(frontenddoc, txtDoc);
|
|
240
|
+
generateClientPage(variables, eta, frontendpagefolder);
|
|
241
|
+
log.info(`- write completed: ${doctype}`);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
const generateClientPage = (variables, eta, frontendpagefolder) => {
|
|
245
|
+
const docname = variables.name;
|
|
246
|
+
const targetfolder = `${frontendpagefolder}/${docname}`;
|
|
247
|
+
const overridefilename = `${targetfolder}/delete-me-for-avoid-override`;
|
|
248
|
+
if (!(0, fs_1.existsSync)(targetfolder)) {
|
|
249
|
+
(0, fs_1.mkdirSync)(targetfolder);
|
|
250
|
+
(0, fs_1.writeFileSync)(overridefilename, 'delete this file to prevent override by generator');
|
|
251
|
+
}
|
|
252
|
+
if ((0, fs_1.existsSync)(overridefilename)) {
|
|
253
|
+
const txtIndex = eta.render('./pageindex.vue.eta', variables);
|
|
254
|
+
const txtIndexwithid = eta.render('./pageindexwithid.vue.eta', variables);
|
|
255
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/index.vue`, txtIndex);
|
|
256
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/[id].vue`, txtIndexwithid);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const prepareEnvironments = (backendfolder, frontendfolder) => {
|
|
260
|
+
const targetfolder = `${backendfolder}/src/class`;
|
|
261
|
+
const targetfrontendfolder = `${frontendfolder}/server/api`;
|
|
262
|
+
try {
|
|
263
|
+
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
264
|
+
(0, fs_1.mkdirSync)(targetfrontendfolder, { recursive: true });
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
//do nothing
|
|
268
|
+
}
|
|
269
|
+
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/SimpleAppService.eta`, `${targetfolder}/SimpleAppService.ts`);
|
|
270
|
+
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/SimpleAppController.eta`, `${targetfolder}/SimpleAppController.ts`);
|
|
271
|
+
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/Workflow.eta`, `${targetfolder}/Workflow.ts`);
|
|
272
|
+
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/TenantMiddleware.eta`, `${targetfolder}/TenantMiddleware.ts`);
|
|
273
|
+
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/UserProvider.eta`, `${targetfolder}/UserProvider.ts`);
|
|
274
|
+
//copy over frontend apiabstract class
|
|
275
|
+
// copyFileSync(`${constants.templatedir}/nuxt.apigateway.eta`,`${targetfrontendfolder}/[...].ts`)
|
|
276
|
+
//prepare backend config.ts
|
|
277
|
+
//copy over frontend config.ts
|
|
278
|
+
};
|
|
279
|
+
const finalize = (modules, backendfolder, frontendfolder) => {
|
|
280
|
+
log.info("Finalizing");
|
|
281
|
+
(0, fs_1.mkdirSync)(`${backendfolder}/src/dicts/`, { recursive: true });
|
|
282
|
+
(0, fs_1.mkdirSync)(`${frontendfolder}/composables/`, { recursive: true });
|
|
283
|
+
const writefiles = {
|
|
284
|
+
'./nest/app.module.eta': `${backendfolder}/src/app.module.ts`,
|
|
285
|
+
'./nest/app.service.eta': `${backendfolder}/src/app.service.ts`,
|
|
286
|
+
'./nest/app.controller.eta': `${backendfolder}/src/app.controller.ts`,
|
|
287
|
+
'./nuxt/composables.getautocomplete.ts.eta': `${frontendfolder}/composables/getAutocomplete.ts`,
|
|
288
|
+
'./nuxt/composables.getmenus.ts.eta': `${frontendfolder}/composables/getMenus.ts`,
|
|
289
|
+
'./nuxt/composables.stringHelper.ts.eta': `${frontendfolder}/composables/stringHelper.ts`,
|
|
290
|
+
'./nuxt/composables.gettenant.ts.eta': `${frontendfolder}/composables/getTenant.ts`,
|
|
291
|
+
'./nuxt/plugins.50.simpleapp-client.ts.eta': `${frontendfolder}/plugins/50.simpleapp-client.ts`
|
|
292
|
+
};
|
|
293
|
+
const eta = new Eta({ views: constants.templatedir });
|
|
294
|
+
const sources = Object.getOwnPropertyNames(writefiles);
|
|
295
|
+
for (let i = 0; i < sources.length; i++) {
|
|
296
|
+
const templatename = sources[i];
|
|
297
|
+
const targetfile = writefiles[templatename];
|
|
298
|
+
log.info("write:", targetfile);
|
|
299
|
+
(0, fs_1.writeFileSync)(targetfile, eta.render(templatename, modules));
|
|
300
|
+
}
|
|
301
|
+
const foreignkeyfile = `${backendfolder}/src/dicts/foreignkeys.json`;
|
|
302
|
+
(0, fs_1.writeFileSync)(foreignkeyfile, JSON.stringify(storage_1.foreignkeys));
|
|
303
|
+
log.info("write to foreignkey file ", foreignkeyfile);
|
|
304
|
+
};
|
|
305
|
+
//# sourceMappingURL=generate-allow-changebackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-allow-changebackend.js","sourceRoot":"","sources":["../src/generate-allow-changebackend.ts"],"names":[],"mappings":"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"}
|