zet-lib 1.3.40 → 1.3.42
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/LICENSE +21 -21
- package/README.md +15 -15
- package/lib/ErrorWithCode.js +6 -6
- package/lib/Form.js +1020 -1019
- package/lib/Mail.js +68 -68
- package/lib/Modal.js +95 -95
- package/lib/Pool.js +437 -437
- package/lib/UI.js +7 -7
- package/lib/Util.js +1384 -1384
- package/lib/access.js +6 -6
- package/lib/cache.js +3 -3
- package/lib/connection.js +409 -409
- package/lib/debug.js +22 -22
- package/lib/index.js +36 -36
- package/lib/io.js +44 -44
- package/lib/languages/lang_en.js +125 -125
- package/lib/languages/lang_fr.js +125 -125
- package/lib/languages/lang_id.js +126 -126
- package/lib/languages/lang_jp.js +125 -125
- package/lib/moduleLib.js +661 -661
- package/lib/tableForm.js +10 -10
- package/lib/views/generator.ejs +598 -598
- package/lib/views/generator_layout.ejs +224 -224
- package/lib/views/generatorjs.ejs +927 -927
- package/lib/zAppRouter.js +1637 -1637
- package/lib/zCache.js +301 -301
- package/lib/zComponent.js +27 -27
- package/lib/zFn.js +58 -58
- package/lib/zFunction.js +20 -20
- package/lib/zGeneratorRouter.js +1641 -1641
- package/lib/zMenuRouter.js +556 -556
- package/lib/zPage.js +188 -188
- package/lib/zReport.js +982 -982
- package/lib/zRole.js +256 -256
- package/lib/zRoleRouter.js +609 -609
- package/lib/zRoute.js +5787 -5025
- package/lib/zTester.js +93 -93
- package/lib/zapp.js +65 -65
- package/lib/zdataTable.js +330 -330
- package/package.json +56 -56
package/lib/zPage.js
CHANGED
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* For dynamic router
|
|
3
|
-
*/
|
|
4
|
-
const axios = require('axios');
|
|
5
|
-
const fs = require('fs-extra');
|
|
6
|
-
const nodemailer = require('nodemailer');
|
|
7
|
-
const qs = require('qs');
|
|
8
|
-
const moment = require('moment');
|
|
9
|
-
const pm2 = require('pm2');
|
|
10
|
-
const { minify } = require('html-minifier-terser');
|
|
11
|
-
const connection = require('./connection');
|
|
12
|
-
const Util = require('./Util');
|
|
13
|
-
const myCache = require('./cache');
|
|
14
|
-
|
|
15
|
-
const zpage = {};
|
|
16
|
-
|
|
17
|
-
zpage.build = async (req, res) => {
|
|
18
|
-
let layouts = await connection.results({
|
|
19
|
-
table : "zlayout"
|
|
20
|
-
});
|
|
21
|
-
let layoutObj = Util.arrayToObject(layouts,"id");
|
|
22
|
-
let results = await connection.results({
|
|
23
|
-
table: "zpage",
|
|
24
|
-
where: {
|
|
25
|
-
active: 1
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
let server_code = zpage.coreCode();
|
|
29
|
-
results.forEach(function (result) {
|
|
30
|
-
server_code += zpage.createRoute(result, res.locals.token, layoutObj);
|
|
31
|
-
server_code += Util.newLine;
|
|
32
|
-
});
|
|
33
|
-
server_code += `module.exports = router;`;
|
|
34
|
-
|
|
35
|
-
fs.writeFileSync(dirRoot + "/routes/zindex.js", server_code, 'utf-8');
|
|
36
|
-
if (process.env.NODE_ENV === "production") {
|
|
37
|
-
setTimeout(function () {
|
|
38
|
-
pm2.connect(function (err) {
|
|
39
|
-
if (err) {
|
|
40
|
-
console.log(err.toString());
|
|
41
|
-
}
|
|
42
|
-
pm2.restart(process.env.PM2_NAME, (err, proc) => {
|
|
43
|
-
//io.to(room).emit("message","Restart done")
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}, 3000)
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
zpage.coreCode = () => {
|
|
51
|
-
return `const router = require('express').Router();
|
|
52
|
-
const csrf = require('csurf');
|
|
53
|
-
const csrfProtection = csrf({cookie: true});
|
|
54
|
-
const fs = require('fs-extra');
|
|
55
|
-
const qs = require('qs');
|
|
56
|
-
const axios = require('axios');
|
|
57
|
-
const { connection, Util, io, zCache, myCache, zDebug, zDataTable, moduleLib, zFunction, zFn, zMail, zRoute, zRole} = require('zet-lib');
|
|
58
|
-
|
|
59
|
-
`;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
zpage.createRoute = (obj, token, layoutObj) => {
|
|
63
|
-
const MYMODELS = myCache.get('MYMODELS');
|
|
64
|
-
const MYMODEL = MYMODELS.zpage;
|
|
65
|
-
let DIR = dirRoot + "/views/zindex";
|
|
66
|
-
let METHOD = MYMODEL.widgets.method.fields;
|
|
67
|
-
let layout = "new-blank.ejs";
|
|
68
|
-
if (obj.layouts == 2) {
|
|
69
|
-
layout = "one.ejs"
|
|
70
|
-
} else if (obj.layouts == 3) {
|
|
71
|
-
layout = "two.ejs";
|
|
72
|
-
} else if(obj.layouts == 4) {
|
|
73
|
-
layout = layoutObj[obj.layout_id].name+".ejs" || "blank.ejs";
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
let renderDataforGet = "";
|
|
77
|
-
let routerforGet = "";
|
|
78
|
-
if (obj.method == 1) {
|
|
79
|
-
renderDataforGet = `renderData.csrfToken = req.csrfToken();`;
|
|
80
|
-
routerforGet = "csrfProtection, "
|
|
81
|
-
}
|
|
82
|
-
let commonData = {
|
|
83
|
-
company_id: obj.company_id,
|
|
84
|
-
updated_by: obj.updated_by,
|
|
85
|
-
created_by: obj.created_by
|
|
86
|
-
};
|
|
87
|
-
let ioto = `io.to("${token}").emit("error", e.toString())`;
|
|
88
|
-
|
|
89
|
-
let render = "";
|
|
90
|
-
let renderData = "";
|
|
91
|
-
if (obj.head) {
|
|
92
|
-
fs.writeFileSync(`${DIR}/page${obj.id}-head.ejs`, obj.head, 'utf-8');
|
|
93
|
-
renderData += `renderData.renderHead = "zindex/page${obj.id}-head.ejs"; `
|
|
94
|
-
} else {
|
|
95
|
-
fs.unlink(`${DIR}/page${obj.id}-head.ejs`, function (err) {
|
|
96
|
-
if (err) return console.log(err);
|
|
97
|
-
console.log('file deleted successfully');
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
let isrenderPage = false;
|
|
102
|
-
if (obj.client_code) {
|
|
103
|
-
fs.writeFileSync(`${DIR}/page${obj.id}.ejs`, obj.client_code, 'utf-8');
|
|
104
|
-
renderData += `renderData.renderBody = "zindex/page${obj.id}.ejs"; `
|
|
105
|
-
isrenderPage = true;
|
|
106
|
-
} else {
|
|
107
|
-
fs.unlink(`${DIR}/page${obj.id}.ejs`, function (err) {
|
|
108
|
-
if (err) return console.log(err);
|
|
109
|
-
console.log('file deleted successfully');
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
//optional
|
|
113
|
-
if(!isrenderPage && obj.method == 1) {
|
|
114
|
-
fs.writeFileSync(`${DIR}/page${obj.id}.ejs`, obj.client_code, 'utf-8');
|
|
115
|
-
renderData += `renderData.renderBody = "zindex/page${obj.id}.ejs"; `
|
|
116
|
-
}
|
|
117
|
-
//end optional
|
|
118
|
-
if (obj.scripts) {
|
|
119
|
-
fs.writeFileSync(`${DIR}/page${obj.id}-script.ejs`, obj.scripts, 'utf-8');
|
|
120
|
-
renderData += `renderData.renderEnd = "zindex/page${obj.id}-script.ejs"; `
|
|
121
|
-
} else {
|
|
122
|
-
fs.unlink(`${DIR}/page${obj.id}-script.ejs`, function (err) {
|
|
123
|
-
if (err) return console.log(err);
|
|
124
|
-
console.log('file deleted successfully');
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
if (renderData) {
|
|
128
|
-
render += `${Util.tab}res.render("layouts/${layout}", renderData);`;
|
|
129
|
-
}
|
|
130
|
-
let scripts = `router.${METHOD[obj.method]}('${obj.page}', ${routerforGet} async(req,res) => {
|
|
131
|
-
try {
|
|
132
|
-
let renderData = {};
|
|
133
|
-
let commonData = ${JSON.stringify(commonData)};
|
|
134
|
-
commonData.updated_at = Util.now();
|
|
135
|
-
commonData.created_at = Util.now();
|
|
136
|
-
${renderDataforGet}
|
|
137
|
-
let layout = "${layout}";
|
|
138
|
-
${obj.server_code}
|
|
139
|
-
${renderData}
|
|
140
|
-
${render}
|
|
141
|
-
} catch (e) {
|
|
142
|
-
console.log(e);
|
|
143
|
-
${ioto}
|
|
144
|
-
res.json(e.toString());
|
|
145
|
-
}
|
|
146
|
-
}); ${Util.newLine}
|
|
147
|
-
`;
|
|
148
|
-
|
|
149
|
-
return scripts;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
zpage.buildLayout = async (obj) => {
|
|
154
|
-
let name = Util.toName(obj.name);
|
|
155
|
-
if (obj.active) {
|
|
156
|
-
let html = await minify(obj.code,{
|
|
157
|
-
removeComments:true,
|
|
158
|
-
minifyJS:true,
|
|
159
|
-
minifyCSS:true,
|
|
160
|
-
collapseWhitespace: true
|
|
161
|
-
});
|
|
162
|
-
console.log(dirRoot + "/views/layouts/" + name + ".ejs");
|
|
163
|
-
fs.writeFileSync(dirRoot + "/views/layouts/" + name + ".ejs", html, 'utf-8');
|
|
164
|
-
if (process.env.NODE_ENV === "production") {
|
|
165
|
-
setTimeout(function () {
|
|
166
|
-
pm2.connect(function (err) {
|
|
167
|
-
if (err) {
|
|
168
|
-
console.log(err.toString());
|
|
169
|
-
}
|
|
170
|
-
pm2.restart(process.env.PM2_NAME, (err, proc) => {
|
|
171
|
-
//io.to(room).emit("message","Restart done")
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
}, 3000)
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
zpage.layoutDelete = async (obj) => {
|
|
180
|
-
let name = Util.toName(obj.name);
|
|
181
|
-
let path = dirRoot + "/views/layouts/customs/" + name + ".ejs"
|
|
182
|
-
fs.unlink(path, function (err) {
|
|
183
|
-
if (err) return console.log(err);
|
|
184
|
-
console.log('file deleted successfully');
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
module.exports = zpage;
|
|
1
|
+
/**
|
|
2
|
+
* For dynamic router
|
|
3
|
+
*/
|
|
4
|
+
const axios = require('axios');
|
|
5
|
+
const fs = require('fs-extra');
|
|
6
|
+
const nodemailer = require('nodemailer');
|
|
7
|
+
const qs = require('qs');
|
|
8
|
+
const moment = require('moment');
|
|
9
|
+
const pm2 = require('pm2');
|
|
10
|
+
const { minify } = require('html-minifier-terser');
|
|
11
|
+
const connection = require('./connection');
|
|
12
|
+
const Util = require('./Util');
|
|
13
|
+
const myCache = require('./cache');
|
|
14
|
+
|
|
15
|
+
const zpage = {};
|
|
16
|
+
|
|
17
|
+
zpage.build = async (req, res) => {
|
|
18
|
+
let layouts = await connection.results({
|
|
19
|
+
table : "zlayout"
|
|
20
|
+
});
|
|
21
|
+
let layoutObj = Util.arrayToObject(layouts,"id");
|
|
22
|
+
let results = await connection.results({
|
|
23
|
+
table: "zpage",
|
|
24
|
+
where: {
|
|
25
|
+
active: 1
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
let server_code = zpage.coreCode();
|
|
29
|
+
results.forEach(function (result) {
|
|
30
|
+
server_code += zpage.createRoute(result, res.locals.token, layoutObj);
|
|
31
|
+
server_code += Util.newLine;
|
|
32
|
+
});
|
|
33
|
+
server_code += `module.exports = router;`;
|
|
34
|
+
|
|
35
|
+
fs.writeFileSync(dirRoot + "/routes/zindex.js", server_code, 'utf-8');
|
|
36
|
+
if (process.env.NODE_ENV === "production") {
|
|
37
|
+
setTimeout(function () {
|
|
38
|
+
pm2.connect(function (err) {
|
|
39
|
+
if (err) {
|
|
40
|
+
console.log(err.toString());
|
|
41
|
+
}
|
|
42
|
+
pm2.restart(process.env.PM2_NAME, (err, proc) => {
|
|
43
|
+
//io.to(room).emit("message","Restart done")
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}, 3000)
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
zpage.coreCode = () => {
|
|
51
|
+
return `const router = require('express').Router();
|
|
52
|
+
const csrf = require('csurf');
|
|
53
|
+
const csrfProtection = csrf({cookie: true});
|
|
54
|
+
const fs = require('fs-extra');
|
|
55
|
+
const qs = require('qs');
|
|
56
|
+
const axios = require('axios');
|
|
57
|
+
const { connection, Util, io, zCache, myCache, zDebug, zDataTable, moduleLib, zFunction, zFn, zMail, zRoute, zRole} = require('zet-lib');
|
|
58
|
+
|
|
59
|
+
`;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
zpage.createRoute = (obj, token, layoutObj) => {
|
|
63
|
+
const MYMODELS = myCache.get('MYMODELS');
|
|
64
|
+
const MYMODEL = MYMODELS.zpage;
|
|
65
|
+
let DIR = dirRoot + "/views/zindex";
|
|
66
|
+
let METHOD = MYMODEL.widgets.method.fields;
|
|
67
|
+
let layout = "new-blank.ejs";
|
|
68
|
+
if (obj.layouts == 2) {
|
|
69
|
+
layout = "one.ejs"
|
|
70
|
+
} else if (obj.layouts == 3) {
|
|
71
|
+
layout = "two.ejs";
|
|
72
|
+
} else if(obj.layouts == 4) {
|
|
73
|
+
layout = layoutObj[obj.layout_id].name+".ejs" || "blank.ejs";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
let renderDataforGet = "";
|
|
77
|
+
let routerforGet = "";
|
|
78
|
+
if (obj.method == 1) {
|
|
79
|
+
renderDataforGet = `renderData.csrfToken = req.csrfToken();`;
|
|
80
|
+
routerforGet = "csrfProtection, "
|
|
81
|
+
}
|
|
82
|
+
let commonData = {
|
|
83
|
+
company_id: obj.company_id,
|
|
84
|
+
updated_by: obj.updated_by,
|
|
85
|
+
created_by: obj.created_by
|
|
86
|
+
};
|
|
87
|
+
let ioto = `io.to("${token}").emit("error", e.toString())`;
|
|
88
|
+
|
|
89
|
+
let render = "";
|
|
90
|
+
let renderData = "";
|
|
91
|
+
if (obj.head) {
|
|
92
|
+
fs.writeFileSync(`${DIR}/page${obj.id}-head.ejs`, obj.head, 'utf-8');
|
|
93
|
+
renderData += `renderData.renderHead = "zindex/page${obj.id}-head.ejs"; `
|
|
94
|
+
} else {
|
|
95
|
+
fs.unlink(`${DIR}/page${obj.id}-head.ejs`, function (err) {
|
|
96
|
+
if (err) return console.log(err);
|
|
97
|
+
console.log('file deleted successfully');
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
let isrenderPage = false;
|
|
102
|
+
if (obj.client_code) {
|
|
103
|
+
fs.writeFileSync(`${DIR}/page${obj.id}.ejs`, obj.client_code, 'utf-8');
|
|
104
|
+
renderData += `renderData.renderBody = "zindex/page${obj.id}.ejs"; `
|
|
105
|
+
isrenderPage = true;
|
|
106
|
+
} else {
|
|
107
|
+
fs.unlink(`${DIR}/page${obj.id}.ejs`, function (err) {
|
|
108
|
+
if (err) return console.log(err);
|
|
109
|
+
console.log('file deleted successfully');
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//optional
|
|
113
|
+
if(!isrenderPage && obj.method == 1) {
|
|
114
|
+
fs.writeFileSync(`${DIR}/page${obj.id}.ejs`, obj.client_code, 'utf-8');
|
|
115
|
+
renderData += `renderData.renderBody = "zindex/page${obj.id}.ejs"; `
|
|
116
|
+
}
|
|
117
|
+
//end optional
|
|
118
|
+
if (obj.scripts) {
|
|
119
|
+
fs.writeFileSync(`${DIR}/page${obj.id}-script.ejs`, obj.scripts, 'utf-8');
|
|
120
|
+
renderData += `renderData.renderEnd = "zindex/page${obj.id}-script.ejs"; `
|
|
121
|
+
} else {
|
|
122
|
+
fs.unlink(`${DIR}/page${obj.id}-script.ejs`, function (err) {
|
|
123
|
+
if (err) return console.log(err);
|
|
124
|
+
console.log('file deleted successfully');
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (renderData) {
|
|
128
|
+
render += `${Util.tab}res.render("layouts/${layout}", renderData);`;
|
|
129
|
+
}
|
|
130
|
+
let scripts = `router.${METHOD[obj.method]}('${obj.page}', ${routerforGet} async(req,res) => {
|
|
131
|
+
try {
|
|
132
|
+
let renderData = {};
|
|
133
|
+
let commonData = ${JSON.stringify(commonData)};
|
|
134
|
+
commonData.updated_at = Util.now();
|
|
135
|
+
commonData.created_at = Util.now();
|
|
136
|
+
${renderDataforGet}
|
|
137
|
+
let layout = "${layout}";
|
|
138
|
+
${obj.server_code}
|
|
139
|
+
${renderData}
|
|
140
|
+
${render}
|
|
141
|
+
} catch (e) {
|
|
142
|
+
console.log(e);
|
|
143
|
+
${ioto}
|
|
144
|
+
res.json(e.toString());
|
|
145
|
+
}
|
|
146
|
+
}); ${Util.newLine}
|
|
147
|
+
`;
|
|
148
|
+
|
|
149
|
+
return scripts;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
zpage.buildLayout = async (obj) => {
|
|
154
|
+
let name = Util.toName(obj.name);
|
|
155
|
+
if (obj.active) {
|
|
156
|
+
let html = await minify(obj.code,{
|
|
157
|
+
removeComments:true,
|
|
158
|
+
minifyJS:true,
|
|
159
|
+
minifyCSS:true,
|
|
160
|
+
collapseWhitespace: true
|
|
161
|
+
});
|
|
162
|
+
console.log(dirRoot + "/views/layouts/" + name + ".ejs");
|
|
163
|
+
fs.writeFileSync(dirRoot + "/views/layouts/" + name + ".ejs", html, 'utf-8');
|
|
164
|
+
if (process.env.NODE_ENV === "production") {
|
|
165
|
+
setTimeout(function () {
|
|
166
|
+
pm2.connect(function (err) {
|
|
167
|
+
if (err) {
|
|
168
|
+
console.log(err.toString());
|
|
169
|
+
}
|
|
170
|
+
pm2.restart(process.env.PM2_NAME, (err, proc) => {
|
|
171
|
+
//io.to(room).emit("message","Restart done")
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}, 3000)
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
zpage.layoutDelete = async (obj) => {
|
|
180
|
+
let name = Util.toName(obj.name);
|
|
181
|
+
let path = dirRoot + "/views/layouts/customs/" + name + ".ejs"
|
|
182
|
+
fs.unlink(path, function (err) {
|
|
183
|
+
if (err) return console.log(err);
|
|
184
|
+
console.log('file deleted successfully');
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
module.exports = zpage;
|