@simitgroup/simpleapp-generator 1.0.33 → 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 -13
- 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 +119 -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 +307 -235
- 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 +83 -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/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 +125 -67
- package/src/generate.ts +323 -274
- package/src/generate.ts.backup +339 -0
- package/src/index.ts +92 -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} +82 -20
- 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 → components/Menus.vue.eta} +17 -15
- 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/{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 +11 -1
- 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 -47
- package/templates/basic/simpleappclient.eta +0 -123
- package/templates/nest/SimpleAppController.eta +0 -69
- package/templates/nest/SimpleAppService.eta +0 -391
- 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/env.eta +0 -17
- package/templates/nuxt/pages.[xorg].index.vue.eta +0 -23
- package/templates/nuxt/pages.index.vue.eta +0 -69
- package/templates/nuxt/pages.login.vue.eta +0 -20
- package/templates/nuxt/plugins.simpleapp.ts.eta +0 -97
- 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/templates/nuxt/{composables.stringHelper.ts.eta → composables/stringHelper.generate.ts.eta} +0 -0
package/dist/generate.js
CHANGED
|
@@ -22,10 +22,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
// import { readFormBuilder } from './processors/formbuilder.tsa';
|
|
28
|
-
// import { readJsonSchemaBuilder } from './processors/jsonschemabuilder';
|
|
29
|
+
exports.run = void 0;
|
|
29
30
|
const constants = __importStar(require("./constant"));
|
|
30
31
|
const jsonschemabuilder_1 = require("./processors/jsonschemabuilder");
|
|
31
32
|
const storage_1 = require("./storage");
|
|
@@ -34,262 +35,333 @@ const log = new tslog_1.Logger();
|
|
|
34
35
|
const clc = require("cli-color");
|
|
35
36
|
const path = require('path');
|
|
36
37
|
const fs_1 = require("fs");
|
|
38
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
39
|
+
const buildinschemas = __importStar(require("./buildinschemas"));
|
|
37
40
|
const { Eta } = require('eta');
|
|
38
41
|
const { capitalizeFirstLetter } = require('./libs');
|
|
39
42
|
const X_DOCUMENT_TYPE = 'x-document-type';
|
|
40
43
|
const X_DOCUMENT_NAME = 'x-document-name';
|
|
41
44
|
const X_COLLECTION_NAME = 'x-collection-name';
|
|
45
|
+
const X_PAGE_TYPE = 'x-page-type';
|
|
42
46
|
const extFb = '.xfb.json';
|
|
43
47
|
const extHfb = '.xhfb.json';
|
|
44
48
|
const extjsonschema = '.jsonschema.json';
|
|
49
|
+
const extgroups = '.group.json';
|
|
45
50
|
let jsonschemas = {};
|
|
51
|
+
let configs = {};
|
|
46
52
|
const docs = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
let frontendFolder = '';
|
|
54
|
+
let backendFolder = '';
|
|
55
|
+
let frontendpagefolder = '';
|
|
56
|
+
const allroles = {};
|
|
57
|
+
let activatemodules = [];
|
|
58
|
+
let generateTypes = {};
|
|
59
|
+
const run = async (paraconfigs, genFor, callback) => {
|
|
60
|
+
configs = paraconfigs;
|
|
61
|
+
frontendFolder = configs.frontendFolder;
|
|
62
|
+
backendFolder = configs.backendFolder;
|
|
63
|
+
const groupFolder = configs.groupFolder;
|
|
64
|
+
if (genFor.includes('nest')) {
|
|
65
|
+
generateTypes['nest'] = backendFolder;
|
|
66
|
+
}
|
|
67
|
+
if (genFor.includes('nuxt')) {
|
|
68
|
+
generateTypes['nuxt'] = frontendFolder;
|
|
69
|
+
}
|
|
70
|
+
// console.log("genForgenForgenForgenFor",genFor,generateTypes)
|
|
50
71
|
//
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
frontendpagefolder = `${frontendFolder}/pages/[xorg]`;
|
|
73
|
+
const buildinschemanames = Object.keys(buildinschemas);
|
|
74
|
+
for (let i = 0; i < buildinschemanames.length; i++) {
|
|
75
|
+
const schemaname = buildinschemanames[i];
|
|
76
|
+
// .forEach(async(schemaname)=>{
|
|
77
|
+
const cloneschema = Object.assign({}, buildinschemas[schemaname]);
|
|
78
|
+
// console.log("=====>>>>>",schemaname,cloneschema)
|
|
79
|
+
await processSchema(schemaname, cloneschema);
|
|
80
|
+
}
|
|
81
|
+
// console.log('jsonschemasjsonschemasjsonschemasjsonschemas',jsonschemas)
|
|
82
|
+
// const buildinschemas = readdirSync(constants.buildinschemafolder)
|
|
83
|
+
// for(let i = 0; i< buildinschemas.length;i++){
|
|
84
|
+
// const file = buildinschemas[i]
|
|
85
|
+
// await processSchema(file,constants.buildinschemafolder)
|
|
86
|
+
// }
|
|
87
|
+
// load available bpmn into array
|
|
88
|
+
// const files = readdirSync(configs.jsonschemaFolder)
|
|
89
|
+
// for(let i = 0; i< files.length;i++){
|
|
90
|
+
// const file = files[i]
|
|
91
|
+
// await processSchema(file,constants.buildinschemafolder)
|
|
92
|
+
// }
|
|
93
|
+
// const schemapath = process.cwd()+'/'+ configs.jsonschemaFolder
|
|
94
|
+
// console.log("dynamic import" ,schemapath)
|
|
95
|
+
// const {category} = require(schemapath)
|
|
96
|
+
// const schemas = await import('/Users/kstan/dev/products/simtrain-next/project-design/jsonschemas');
|
|
97
|
+
// console.log(schemas)
|
|
98
|
+
// const schemanames = Object.keys(schemas)
|
|
99
|
+
// for(let i=0; i<schemanames.length;i++){
|
|
100
|
+
// const schemaname = schemanames[i]
|
|
101
|
+
// .forEach(async(schemaname)=>{
|
|
102
|
+
// const cloneschema:JSONSchema7 = {...buildinschemas[schemaname]}
|
|
103
|
+
// console.log("=====>>>>>",schemaname,cloneschema)
|
|
104
|
+
// await processSchema(schemaname,cloneschema)
|
|
105
|
+
// }
|
|
106
|
+
//
|
|
107
|
+
const files = (0, fs_1.readdirSync)(configs.jsonschemaFolder);
|
|
58
108
|
for (let j = 0; j < files.length; j++) {
|
|
59
109
|
const file = files[j];
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
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) });
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
log.warn(`Load ` + clc.yellow(file) + ` but it is not supported`);
|
|
81
|
-
}
|
|
110
|
+
const jsoncontent = (0, fs_1.readFileSync)(`${configs.jsonschemaFolder}/${file}`, 'utf-8');
|
|
111
|
+
const jsonschema = JSON.parse(jsoncontent);
|
|
112
|
+
await processSchema(file, jsonschema);
|
|
82
113
|
}
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
//
|
|
86
|
-
|
|
114
|
+
// //generate groups
|
|
115
|
+
// const systemgroups = readdirSync(`${groupFolder}`)
|
|
116
|
+
// for(let g = 0; g< systemgroups.length;g++){
|
|
117
|
+
// const groupfile = systemgroups[g]
|
|
118
|
+
// const groupjsonstr = readFileSync(`${groupFolder}/${groupfile}`, 'utf-8');
|
|
119
|
+
// const groupdata = JSON.parse(groupjsonstr);
|
|
120
|
+
// const documentname = groupfile.split('.')[0]
|
|
121
|
+
// const roles = prepareRoles(groupdata)
|
|
122
|
+
// allroles[documentname]=roles
|
|
123
|
+
// }
|
|
124
|
+
finalize(activatemodules);
|
|
87
125
|
callback();
|
|
88
126
|
};
|
|
89
|
-
exports.
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
/* extract string bothend and backend, put in back */
|
|
179
|
-
const regex1 = /\/\/<begin-bothend-code>([\s\S]*?)\/\/<end-bothend-code>/g;
|
|
180
|
-
const regex2 = /\/\/<begin-backend-code>([\s\S]*?)\/\/<end-backend-code>/g;
|
|
181
|
-
const bothendresult = servicecodes.match(regex1);
|
|
182
|
-
const backendresult = servicecodes.match(regex2);
|
|
183
|
-
console.log("bothendresult", bothendresult);
|
|
184
|
-
console.log("backendresult", backendresult);
|
|
185
|
-
if (bothendresult) {
|
|
186
|
-
variables.bothEndCode = bothendresult[0];
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
variables.bothEndCode = "//<begin-bothend-code>\n//<end-bothend-code>";
|
|
127
|
+
exports.run = run;
|
|
128
|
+
// const processSchema=async (file:string,defFolder:string)=>{
|
|
129
|
+
const processSchema = async (schemaname, jsondata) => {
|
|
130
|
+
var _a;
|
|
131
|
+
// console.log(file,defFolder)
|
|
132
|
+
// const filearr = file.split('.');
|
|
133
|
+
// let rendertype = 'basic';
|
|
134
|
+
// let docname = filearr[0].toLowerCase();
|
|
135
|
+
// let doctype = filearr[1].toLowerCase();
|
|
136
|
+
const config = jsondata['x-simpleapp-config'];
|
|
137
|
+
let doctype = config.documentType;
|
|
138
|
+
let docname = config.documentName;
|
|
139
|
+
// const jsonstring = readFileSync(defFolder +path.sep+ file, 'utf-8');
|
|
140
|
+
// if (file.endsWith('.ts')) {
|
|
141
|
+
// log.info(`Load `+clc.green(file))
|
|
142
|
+
// const filepath = `${defFolder}/${file.replace('.ts','')}`
|
|
143
|
+
// console.log(filepath)
|
|
144
|
+
// const jsondata = require(filepath)
|
|
145
|
+
// console.log(jsondata)
|
|
146
|
+
// const jsondata = JSON.parse(jsonstring);
|
|
147
|
+
const rendertype = 'basic';
|
|
148
|
+
jsonschemas[docname] = jsondata;
|
|
149
|
+
const allmodels = await (0, jsonschemabuilder_1.readJsonSchemaBuilder)(docname, jsondata);
|
|
150
|
+
console.log("allmodels", docname, allmodels);
|
|
151
|
+
generateSchema(docname, doctype, rendertype, allmodels);
|
|
152
|
+
activatemodules.push({
|
|
153
|
+
doctype: doctype,
|
|
154
|
+
docname: capitalizeFirstLetter(docname),
|
|
155
|
+
pagetype: (_a = config.pageType) !== null && _a !== void 0 ? _a : '',
|
|
156
|
+
api: config.additionalApis
|
|
157
|
+
});
|
|
158
|
+
// } else {
|
|
159
|
+
// log.warn(`Load `+clc.yellow(file) + ` but it is not supported`)
|
|
160
|
+
// }
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* generate frontend nuxt and backend nest codes.
|
|
164
|
+
*
|
|
165
|
+
*/
|
|
166
|
+
const generateSchema = (docname, doctype, rendertype, allmodels) => {
|
|
167
|
+
var _a, _b, _c, _d, _e, _f;
|
|
168
|
+
const simpleapptemplates = `${constants.templatedir}/basic`;
|
|
169
|
+
const finalizefolder = `${constants.templatedir}/nest`;
|
|
170
|
+
const modelname = lodash_1.default.upperFirst(docname);
|
|
171
|
+
const currentmodel = allmodels[modelname];
|
|
172
|
+
//console.log("---^^^^^------",modelname,docname, doctype, rendertype,currentmodel,allmodels)
|
|
173
|
+
const variables = {
|
|
174
|
+
name: docname,
|
|
175
|
+
doctype: doctype,
|
|
176
|
+
models: allmodels,
|
|
177
|
+
autocompletecode: (_a = currentmodel.codeField) !== null && _a !== void 0 ? _a : '',
|
|
178
|
+
autocompletename: (_b = currentmodel.nameField) !== null && _b !== void 0 ? _b : '',
|
|
179
|
+
moreAutoComplete: (_c = currentmodel.moreAutoComplete) !== null && _c !== void 0 ? _c : [],
|
|
180
|
+
schema: currentmodel.model,
|
|
181
|
+
apiSchemaName: capitalizeFirstLetter(docname),
|
|
182
|
+
typename: capitalizeFirstLetter(docname),
|
|
183
|
+
fullApiSchemaName: doctype + 'apischema.' + capitalizeFirstLetter(docname),
|
|
184
|
+
fullTypeName: doctype + 'type.' + capitalizeFirstLetter(docname),
|
|
185
|
+
jsonschema: jsonschemas[docname],
|
|
186
|
+
bothEndCode: '',
|
|
187
|
+
frontEndCode: '',
|
|
188
|
+
backEndCode: '',
|
|
189
|
+
controllerCode: '',
|
|
190
|
+
apiSchemaCode: '',
|
|
191
|
+
docStatusSettings: (_d = currentmodel.docStatusSettings) !== null && _d !== void 0 ? _d : [],
|
|
192
|
+
apiSettings: (_e = currentmodel.apiSettings) !== null && _e !== void 0 ? _e : [],
|
|
193
|
+
isolationtype: currentmodel.isolationtype,
|
|
194
|
+
hasdocformat: currentmodel.hasdocformat,
|
|
195
|
+
foreignkeys: (_f = currentmodel.foreignkeys) !== null && _f !== void 0 ? _f : {}
|
|
196
|
+
};
|
|
197
|
+
const templatefolder = `${constants.templatedir}/${rendertype}`;
|
|
198
|
+
log.info(`- Generate ${docname}, ${doctype}, ${templatefolder}`);
|
|
199
|
+
const eta = new Eta({
|
|
200
|
+
views: '/',
|
|
201
|
+
functionHeader: 'const capitalizeFirstLetter = (str) => str.slice(0, 1).toUpperCase() + str.slice(1);' +
|
|
202
|
+
'const initType=(str)=>{return ["string","number","boolean","array","object"].includes(str) ? capitalizeFirstLetter(str) : str;}',
|
|
203
|
+
});
|
|
204
|
+
const backendTargetFolder = `${backendFolder}/src/simpleapp/generate`;
|
|
205
|
+
const backendServiceFolder = `${backendFolder}/src/simpleapp/services`;
|
|
206
|
+
Object.keys(generateTypes).forEach((foldertype) => {
|
|
207
|
+
//generate code for every schema
|
|
208
|
+
const generateTemplatefolder = `${constants.templatedir}/basic/${foldertype}`;
|
|
209
|
+
const allfiles = (0, fs_1.readdirSync)(generateTemplatefolder, { recursive: true });
|
|
210
|
+
for (let j = 0; j < allfiles.length; j++) {
|
|
211
|
+
const filename = String(allfiles[j]);
|
|
212
|
+
const templatepath = `${generateTemplatefolder}/${filename}`;
|
|
213
|
+
if (lodash_1.default.last(filename.split('.')) != 'eta') {
|
|
214
|
+
log.warn("skip file: ", filename);
|
|
215
|
+
continue;
|
|
190
216
|
}
|
|
191
|
-
if (
|
|
192
|
-
|
|
217
|
+
if (foldertype == 'nest') {
|
|
218
|
+
const arrfilename = filename.split('.');
|
|
219
|
+
const filecategory = arrfilename[0];
|
|
220
|
+
const filetype = arrfilename[1];
|
|
221
|
+
const autogeneratetypes = ['apischema', 'controller', 'jsonschema', 'model', 'processor', 'type', 'default'];
|
|
222
|
+
if (autogeneratetypes.includes(filecategory)) {
|
|
223
|
+
//multiple files in folder, append s at folder name
|
|
224
|
+
const storein = `${backendTargetFolder}/${filecategory}s`;
|
|
225
|
+
const targetfile = `${storein}/${doctype}.${filecategory}.${filetype}`;
|
|
226
|
+
if (!(0, fs_1.existsSync)(storein)) {
|
|
227
|
+
(0, fs_1.mkdirSync)(storein, { recursive: true });
|
|
228
|
+
}
|
|
229
|
+
const filecontent = eta.render(templatepath, variables);
|
|
230
|
+
(0, fs_1.writeFileSync)(targetfile, filecontent);
|
|
231
|
+
}
|
|
232
|
+
else if (filecategory == 'service') { //service file won't override if exists
|
|
233
|
+
const targetfile = `${backendServiceFolder}/${doctype}.${filecategory}.${filetype}`;
|
|
234
|
+
if (!(0, fs_1.existsSync)(backendServiceFolder)) {
|
|
235
|
+
(0, fs_1.mkdirSync)(backendServiceFolder, { recursive: true });
|
|
236
|
+
}
|
|
237
|
+
if (!(0, fs_1.existsSync)(targetfile)) {
|
|
238
|
+
const filecontent = eta.render(templatepath, variables);
|
|
239
|
+
(0, fs_1.writeFileSync)(targetfile, filecontent);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
193
242
|
}
|
|
194
|
-
else {
|
|
195
|
-
|
|
243
|
+
else if (foldertype == 'nuxt') {
|
|
244
|
+
const capname = capitalizeFirstLetter(docname);
|
|
245
|
+
const validateWritePage = (folder, isexists) => {
|
|
246
|
+
if (!jsonschemas[docname][X_PAGE_TYPE]) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
else if (!isexists) {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
else if ((0, fs_1.existsSync)(`${folder}/delete-me.txt`)) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const mapfiles = {
|
|
260
|
+
'pages.[id].vue.eta': {
|
|
261
|
+
to: `pages/[xorg]/${docname}`,
|
|
262
|
+
as: '[id].vue',
|
|
263
|
+
validate: validateWritePage
|
|
264
|
+
},
|
|
265
|
+
'pages.crud.vue.eta': {
|
|
266
|
+
to: `pages/[xorg]/${docname}`,
|
|
267
|
+
as: 'index.vue',
|
|
268
|
+
validate: validateWritePage
|
|
269
|
+
},
|
|
270
|
+
'simpleapp.doc.ts.eta': {
|
|
271
|
+
to: `simpleapp/docs`,
|
|
272
|
+
as: `${capname}Doc.ts`,
|
|
273
|
+
validate: (folder, isexists) => !isexists
|
|
274
|
+
},
|
|
275
|
+
'default.ts.eta': {
|
|
276
|
+
to: `simpleapp/generate/defaults`,
|
|
277
|
+
as: `${capname}.default.ts`,
|
|
278
|
+
validate: (folder, isexists) => {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
'simpleapp.generate.client.ts.eta': {
|
|
283
|
+
to: `simpleapp/generate/clients`,
|
|
284
|
+
as: `${capname}Client.ts`,
|
|
285
|
+
validate: (folder, isexists) => {
|
|
286
|
+
return true;
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
};
|
|
290
|
+
const target = mapfiles[filename];
|
|
291
|
+
const targetfolder = `${generateTypes[foldertype]}/${target.to}`;
|
|
292
|
+
const targetfile = `${targetfolder}/${target.as}`;
|
|
293
|
+
const isexists = (0, fs_1.existsSync)(targetfile);
|
|
294
|
+
const iswrite = target.validate(targetfolder, isexists);
|
|
295
|
+
log.warn("process: ", filename, '---->', targetfile);
|
|
296
|
+
if (iswrite && !(0, fs_1.existsSync)(targetfolder)) {
|
|
297
|
+
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
298
|
+
(0, fs_1.writeFileSync)(`${targetfolder}/delete-me.txt`, "delete this file for keep modified page");
|
|
299
|
+
}
|
|
300
|
+
// if(
|
|
301
|
+
// target.override=="always" ||
|
|
302
|
+
// !existsSync(targetfile) ||
|
|
303
|
+
// (target.override=="check" && existsSync(`${targetfolder}/delete-me.txt`))
|
|
304
|
+
// ){
|
|
305
|
+
if (iswrite) {
|
|
306
|
+
const filecontent = eta.render(templatepath, variables);
|
|
307
|
+
(0, fs_1.writeFileSync)(targetfile, filecontent);
|
|
308
|
+
}
|
|
196
309
|
}
|
|
197
310
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
311
|
+
});
|
|
312
|
+
};
|
|
313
|
+
const finalize = (modules) => {
|
|
314
|
+
const renderProperties = {
|
|
315
|
+
configs: configs,
|
|
316
|
+
modules: modules,
|
|
317
|
+
allroles: allroles,
|
|
318
|
+
foreignkeys: storage_1.allforeignkeys,
|
|
319
|
+
};
|
|
320
|
+
Object.getOwnPropertyNames(generateTypes).forEach((foldertype) => {
|
|
321
|
+
const frameworkpath = generateTypes[foldertype];
|
|
322
|
+
log.info("Generate ", foldertype);
|
|
323
|
+
const frameworkfolder = `${constants.templatedir}/${foldertype}`;
|
|
324
|
+
const frameworkfiles = (0, fs_1.readdirSync)(frameworkfolder, { recursive: true });
|
|
325
|
+
const eta = new Eta({ views: frameworkfolder });
|
|
326
|
+
//generate code for framework
|
|
327
|
+
for (let index = 0; index < frameworkfiles.length; index++) {
|
|
328
|
+
const longfilename = String(frameworkfiles[index]);
|
|
329
|
+
const patharr = longfilename.split('/');
|
|
330
|
+
const filename = lodash_1.default.last(patharr);
|
|
331
|
+
const arrfilename = filename.split('.');
|
|
332
|
+
// log.info("check longfilename:::",longfilename,"become====",arrfilename)
|
|
333
|
+
//only process .eta
|
|
334
|
+
if (lodash_1.default.last(arrfilename) == 'eta') {
|
|
335
|
+
const relativepath = longfilename.includes('/') ? longfilename.replace(`/${filename}`, '') : '';
|
|
336
|
+
const foldername = `${frameworkpath}/${relativepath}`;
|
|
337
|
+
const shortfilename = filename.replace('.eta', '');
|
|
338
|
+
const targetfilename = `${foldername}/${shortfilename}`;
|
|
339
|
+
if (!(0, fs_1.existsSync)(foldername)) {
|
|
340
|
+
(0, fs_1.mkdirSync)(foldername, { recursive: true });
|
|
341
|
+
}
|
|
342
|
+
const templatename = `${frameworkfolder}/${longfilename}`.replace(".eta", "");
|
|
343
|
+
log.info("Write template:", templatename, '----> ', targetfilename);
|
|
344
|
+
const txt = eta.render(longfilename, renderProperties);
|
|
345
|
+
(0, fs_1.writeFileSync)(targetfilename, txt);
|
|
210
346
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const txtController = eta.render('./controller', variables);
|
|
214
|
-
(0, fs_1.writeFileSync)(controllerfile, txtController);
|
|
215
|
-
// prepare module
|
|
216
|
-
const txtModule = eta.render('./module', variables);
|
|
217
|
-
(0, fs_1.writeFileSync)(`${targetfolder}/${doctype}.module.ts`, txtModule);
|
|
218
|
-
// prepare readme
|
|
219
|
-
// const txtReadme = eta.render('./readme', variables);
|
|
220
|
-
// writeFileSync(`${targetfolder}/README.md`, txtReadme);
|
|
221
|
-
const frontendfile = `${frontendfolder}/simpleapp/simpleappdocs/${variables.typename}Doc.ts`;
|
|
222
|
-
let frontEndCode = '';
|
|
223
|
-
if ((0, fs_1.existsSync)(frontendfile)) {
|
|
224
|
-
const clientcodes = (0, fs_1.readFileSync)(frontendfile).toString();
|
|
225
|
-
/* extract string frontend code, put in back */
|
|
226
|
-
const regex3 = /\/\/<begin-frontend-code>([\s\S]*?)\/\/<end-frontend-code>/g;
|
|
227
|
-
const frontendresult = clientcodes.match(regex3);
|
|
228
|
-
if (frontendresult) {
|
|
229
|
-
frontEndCode = frontendresult[0];
|
|
347
|
+
else {
|
|
348
|
+
log.warn("skip: ", longfilename);
|
|
230
349
|
}
|
|
231
350
|
}
|
|
232
|
-
|
|
233
|
-
const txtDocClient = eta.render('./simpleappclient.eta', variables);
|
|
234
|
-
(0, fs_1.writeFileSync)(frontendfile, txtDocClient);
|
|
235
|
-
generateClientPage(variables, eta, frontendpagefolder);
|
|
236
|
-
log.info(`- write completed: ${doctype}`);
|
|
237
|
-
}
|
|
351
|
+
});
|
|
238
352
|
};
|
|
239
|
-
const
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
(0, fs_1.writeFileSync)(`${targetfolder}/index.vue`, txtIndex);
|
|
251
|
-
(0, fs_1.writeFileSync)(`${targetfolder}/[id].vue`, txtIndexwithid);
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
const prepareEnvironments = (backendfolder, frontendfolder) => {
|
|
255
|
-
const targetfolder = `${backendfolder}/src/class`;
|
|
256
|
-
const targetfrontendfolder = `${frontendfolder}/server/api`;
|
|
257
|
-
try {
|
|
258
|
-
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
259
|
-
(0, fs_1.mkdirSync)(targetfrontendfolder, { recursive: true });
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
//do nothing
|
|
353
|
+
const prepareRoles = (groupsettings) => {
|
|
354
|
+
let roles = [];
|
|
355
|
+
const docnames = Object.getOwnPropertyNames(groupsettings);
|
|
356
|
+
for (let i = 0; i < docnames.length; i++) {
|
|
357
|
+
let docname = docnames[i];
|
|
358
|
+
let docpermissions = groupsettings[docname];
|
|
359
|
+
for (let j = 0; j < docpermissions.length; j++) {
|
|
360
|
+
const perm = docpermissions[j];
|
|
361
|
+
const typename = lodash_1.default.upperFirst(docname);
|
|
362
|
+
roles.push(`${typename}_${perm}`);
|
|
363
|
+
}
|
|
263
364
|
}
|
|
264
|
-
|
|
265
|
-
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/SimpleAppController.eta`, `${targetfolder}/SimpleAppController.ts`);
|
|
266
|
-
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/Workflow.eta`, `${targetfolder}/Workflow.ts`);
|
|
267
|
-
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/TenantMiddleware.eta`, `${targetfolder}/TenantMiddleware.ts`);
|
|
268
|
-
(0, fs_1.copyFileSync)(`${constants.templatedir}/nest/UserProvider.eta`, `${targetfolder}/UserProvider.ts`);
|
|
269
|
-
//copy over frontend apiabstract class
|
|
270
|
-
// copyFileSync(`${constants.templatedir}/nuxt.apigateway.eta`,`${targetfrontendfolder}/[...].ts`)
|
|
271
|
-
//prepare backend config.ts
|
|
272
|
-
//copy over frontend config.ts
|
|
273
|
-
};
|
|
274
|
-
const finalize = (modules, backendfolder, frontendfolder) => {
|
|
275
|
-
log.info("Finalizing foreignkey:", JSON.stringify(storage_1.foreignkeys));
|
|
276
|
-
(0, fs_1.mkdirSync)(`${backendfolder}/src/dicts/`, { recursive: true });
|
|
277
|
-
(0, fs_1.mkdirSync)(`${frontendfolder}/composables/`, { recursive: true });
|
|
278
|
-
const eta = new Eta({ views: constants.templatedir });
|
|
279
|
-
const txtMainModule = eta.render('./nest/app.module.eta', modules);
|
|
280
|
-
(0, fs_1.writeFileSync)(`${backendfolder}/src/app.module.ts`, txtMainModule);
|
|
281
|
-
const txtMainService = eta.render('./nest/app.service.eta', modules);
|
|
282
|
-
(0, fs_1.writeFileSync)(`${backendfolder}/src/app.service.ts`, txtMainService);
|
|
283
|
-
const txtAppController = eta.render('./nest/app.controller.eta', modules);
|
|
284
|
-
(0, fs_1.writeFileSync)(`${backendfolder}/src/app.controller.ts`, txtAppController);
|
|
285
|
-
const foreignkeyfile = `${backendfolder}/src/dicts/foreignkeys.json`;
|
|
286
|
-
(0, fs_1.writeFileSync)(foreignkeyfile, JSON.stringify(storage_1.foreignkeys));
|
|
287
|
-
log.info("write to foreignkey file ", foreignkeyfile);
|
|
288
|
-
const txtCatalogue = eta.render('./nuxt/composables.getautocomplete.ts.eta', modules);
|
|
289
|
-
(0, fs_1.writeFileSync)(`${frontendfolder}/composables/getAutocomplete.ts`, txtCatalogue);
|
|
290
|
-
const txtMenus = eta.render('./nuxt/composables.getmenus.ts.eta', modules);
|
|
291
|
-
(0, fs_1.writeFileSync)(`${frontendfolder}/composables/getMenus.ts`, txtMenus);
|
|
292
|
-
const txtStringHelper = eta.render('./nuxt/composables.stringHelper.ts.eta', modules);
|
|
293
|
-
(0, fs_1.writeFileSync)(`${frontendfolder}/composables/stringHelper.ts`, txtStringHelper);
|
|
365
|
+
return roles;
|
|
294
366
|
};
|
|
295
367
|
//# sourceMappingURL=generate.js.map
|