-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtotal-number-objects.js
More file actions
64 lines (64 loc) · 2.47 KB
/
total-number-objects.js
File metadata and controls
64 lines (64 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const mendixplatformsdk_1 = require("mendixplatformsdk");
const client = new mendixplatformsdk_1.MendixPlatformClient();
var json2xls = require('json2xls');
var fs = require('fs');
let jsonXLS = [];
var listOfApps = [{ 'appName': '', 'appID': '' }];
/*
* PROJECT TO ANALYZE
*/
const projectsLoading = Promise.all(listOfApps.map(async (app) => {
await processApp(app);
})).then(() => {
var xls = json2xls(jsonXLS);
console.log("Writing File");
fs.writeFileSync('TotalCounts.xlsx', xls, 'binary');
});
async function processApp(app) {
await loadProject(app);
}
async function loadProject(appObj) {
const app = client.getApp(appObj.appID);
const repository = app.getRepository();
var useBranch = "";
const repositoryInfo = await repository.getInfo();
if (repositoryInfo.type === `svn`)
useBranch = `trunk`;
else
useBranch = `main`;
const wc = await app.createTemporaryWorkingCopy(useBranch);
await getProjectCounts(wc, appObj.appName, appObj.appID);
}
async function getProjectCounts(workingCopy, name, ID) {
console.log(`Project: ${name} counting`);
var NumberEntities = 0;
var model = await workingCopy.openModel();
model.allDomainModels().forEach(domainModel => {
NumberEntities += domainModel.entities.length;
});
var jsonObj = {
"Project Name": name,
"Project ID": ID,
"Entities": NumberEntities,
"Microflows": model.allMicroflows().length,
"Pages": model.allPages().length,
"Json Structures": model.allJsonStructures().length,
"Published OData": model.allPublishedODataServices().length,
"Published REST": model.allPublishedRestServices().length,
"Published SOAP": model.allPublishedWebServices().length,
"Published App Service": model.allPublishedAppServices().length,
"Export Mappings": model.allExportMappings().length,
"Imported WebServices": model.allImportedWebServices().length,
"Imported Mappings": model.allImportMappings().length,
"XML Schemas": model.allXmlSchemas().length,
"Documents": model.allDocuments().length,
"Document Templates": model.allDocumentTemplates().length,
"Java Actions": model.allJavaActions().length,
"Snippets": model.allSnippets().length,
"Navigation Documents": model.allNavigationDocuments().length
};
jsonXLS.push(jsonObj);
console.log(jsonObj);
}