zet-lib 1.3.39 → 1.3.40

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/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;