notherbase-fs 4.0.23 → 4.1.0
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/controllers/creation.js
CHANGED
|
@@ -64,12 +64,31 @@ export default class Creation {
|
|
|
64
64
|
main: req.main,
|
|
65
65
|
query: req.query,
|
|
66
66
|
route: req.path,
|
|
67
|
-
requireUser: req.lock
|
|
67
|
+
requireUser: req.lock,
|
|
68
|
+
preprocessed: {}
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
if (req.session.currentUser) {
|
|
71
72
|
context.user = await req.db.Spirit.recallOne("user", null, { username: req.session.currentUser });
|
|
72
|
-
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//preprocess
|
|
76
|
+
let preprocessScripts = fs.existsSync(req.preprocess) ? fs.readdirSync(req.preprocess) : [];
|
|
77
|
+
for (let preprocessScript of preprocessScripts) {
|
|
78
|
+
try {
|
|
79
|
+
let scriptPath = `${req.preprocess}/${preprocessScript}`;
|
|
80
|
+
|
|
81
|
+
if (fs.existsSync(scriptPath)) {
|
|
82
|
+
let script = await import(process.env.WINDOWS == "true" ? `file://${scriptPath}` : scriptPath);
|
|
83
|
+
let result = await script.default(req, context.user, this.io);
|
|
84
|
+
context.preprocessed[preprocessScript.split(".")[0]] = result;
|
|
85
|
+
}
|
|
86
|
+
else context.preprocessed[preprocessScript.split(".")[0]] = `Error: Script Not Found`;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
console.log(error);
|
|
89
|
+
context.preprocessed[preprocessScript.split(".")[0]] = `Error: Server Error`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
73
92
|
|
|
74
93
|
res.render(req.toRender, context);
|
|
75
94
|
}
|
|
@@ -89,6 +108,7 @@ export default class Creation {
|
|
|
89
108
|
*/
|
|
90
109
|
front = async (req, res, next) => {
|
|
91
110
|
req.main = req.contentPath + "/the-front/index";
|
|
111
|
+
req.preprocess = req.contentPath + "/the-front/_preprocess";
|
|
92
112
|
req.siteTitle = this.bases[req.hosting].title;
|
|
93
113
|
req.toRender = "explorer";
|
|
94
114
|
next();
|
|
@@ -102,6 +122,7 @@ export default class Creation {
|
|
|
102
122
|
*/
|
|
103
123
|
frontDetail = async (req, res, next) => {
|
|
104
124
|
req.main = `${req.contentPath}/the-front/${req.params.frontDetail}/index`;
|
|
125
|
+
req.preprocess = `${req.contentPath}/the-front/${req.params.frontDetail}/_preprocess`;
|
|
105
126
|
req.siteTitle = `${this.bases[req.hosting].title} - ${req.params.frontDetail}`;
|
|
106
127
|
req.toRender = "explorer";
|
|
107
128
|
next();
|
|
@@ -115,6 +136,7 @@ export default class Creation {
|
|
|
115
136
|
*/
|
|
116
137
|
poi = async (req, res, next) => {
|
|
117
138
|
req.main = `${req.contentPath}/${req.params.region}/${req.params.area}/${req.params.poi}/index`;
|
|
139
|
+
req.preprocess = `${req.contentPath}/${req.params.region}/${req.params.area}/${req.params.poi}/_preprocess`;
|
|
118
140
|
req.siteTitle = `${this.bases[req.hosting].title} - ${req.params.poi}`;
|
|
119
141
|
req.toRender = "explorer";
|
|
120
142
|
next();
|
|
@@ -128,6 +150,7 @@ export default class Creation {
|
|
|
128
150
|
*/
|
|
129
151
|
detail = async (req, res, next) => {
|
|
130
152
|
req.main = `${req.contentPath}/${req.params.region}/${req.params.area}/${req.params.poi}/${req.params.detail}/index`;
|
|
153
|
+
req.preprocess = `${req.contentPath}/${req.params.region}/${req.params.area}/${req.params.poi}/${req.params.detail}/_preprocess`;
|
|
131
154
|
req.siteTitle = `${this.bases[req.hosting].title} - ${req.params.detail}`;
|
|
132
155
|
req.toRender = "explorer";
|
|
133
156
|
next();
|
|
@@ -141,6 +164,7 @@ export default class Creation {
|
|
|
141
164
|
*/
|
|
142
165
|
page = async (req, res, next) => {
|
|
143
166
|
req.main = `${req.contentPath}/pages/${req.params.page}/index`;
|
|
167
|
+
req.preprocess = `${req.contentPath}/pages/${req.params.page}/_preprocess`;
|
|
144
168
|
req.siteTitle = `${req.params.page}`;
|
|
145
169
|
req.toRender = req.main;
|
|
146
170
|
next();
|
package/notherbase-fs.js
CHANGED
|
@@ -26,8 +26,10 @@ class NotherBaseFS {
|
|
|
26
26
|
this.spiritWorld = new SpiritWorld(this.io);
|
|
27
27
|
this.creation = new Creation(bases);
|
|
28
28
|
|
|
29
|
-
//set
|
|
29
|
+
//set view engine
|
|
30
30
|
this.app.set("view engine", "ejs");
|
|
31
|
+
|
|
32
|
+
//set views path
|
|
31
33
|
this.app.set("views", `${__dirname}/views`);
|
|
32
34
|
|
|
33
35
|
// allows us to use post body data
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default async (req, user, io) => {
|
|
2
|
-
let spirit = await req.db.Spirit.
|
|
2
|
+
let spirit = await req.db.Spirit.recallOrCreateOne("test-save3", user.memory._id);
|
|
3
3
|
// console.log(req.body.text, spirit.memory);
|
|
4
4
|
|
|
5
5
|
await spirit.commit({
|