qumra-engine 2.0.16 → 2.0.17
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.
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mergeDataMiddleware = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const mergeObjects_1 = require("../utils/mergeObjects");
|
|
9
|
+
const mergeNestedSchemaWithData_1 = require("../utils/mergeNestedSchemaWithData");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const mergeWidgetSources_1 = require("../utils/mergeWidgetSources");
|
|
12
|
+
const mergeDataMiddleware = async (req, res, next) => {
|
|
13
|
+
try {
|
|
14
|
+
const pageHandle = res.locals.render.context?.page.handle;
|
|
15
|
+
const pageJsonPath = path_1.default.join(res.locals.env.getGlobal("pagesPath"), `${pageHandle}.json`);
|
|
16
|
+
const hasJson = fs_1.default.existsSync(pageJsonPath);
|
|
17
|
+
if (!hasJson) {
|
|
18
|
+
console.warn(`❌ No JSON file found for '${pageHandle}' at ${pageJsonPath}`);
|
|
19
|
+
return next(new Error(`No JSON file found for '${pageHandle}'`));
|
|
20
|
+
}
|
|
21
|
+
const jsonData = fs_1.default.readFileSync(pageJsonPath, "utf-8");
|
|
22
|
+
const fileContent = JSON.parse(jsonData);
|
|
23
|
+
const onlineWidgets = res.locals.render.engine.page?.widgets ?? [];
|
|
24
|
+
const fileWidgets = fileContent?.widgets || [];
|
|
25
|
+
const widgets = (0, mergeWidgetSources_1.mergeWidgetSources)(fileWidgets, onlineWidgets);
|
|
26
|
+
res.locals.env.addGlobal("engineData", res.locals.render.engine);
|
|
27
|
+
res.locals.env.addGlobal("widgets", widgets);
|
|
28
|
+
res.locals.env.addGlobal("pageData", {
|
|
29
|
+
layout: res.locals.render.engine.page?.layout ?? fileContent.layout,
|
|
30
|
+
title: res.locals.render.engine.page?.title ?? fileContent.title,
|
|
31
|
+
handle: res.locals.render.engine.page?.handle ?? fileContent.handle,
|
|
32
|
+
});
|
|
33
|
+
const settingSchemaPath = path_1.default.join(res.locals.env.getGlobal("settingsPath"), "settings-schema.json");
|
|
34
|
+
const settingDataPath = path_1.default.join(res.locals.env.getGlobal("settingsPath"), "settings-data.json");
|
|
35
|
+
let schemaJson = {};
|
|
36
|
+
let dataJson = {};
|
|
37
|
+
if (fs_1.default.existsSync(settingSchemaPath)) {
|
|
38
|
+
const content = fs_1.default.readFileSync(settingSchemaPath, "utf-8");
|
|
39
|
+
schemaJson = JSON.parse(content);
|
|
40
|
+
}
|
|
41
|
+
if (fs_1.default.existsSync(settingDataPath)) {
|
|
42
|
+
const content = fs_1.default.readFileSync(settingDataPath, "utf-8");
|
|
43
|
+
dataJson = JSON.parse(content);
|
|
44
|
+
}
|
|
45
|
+
const mergedData = (0, mergeObjects_1.mergeObjects)(dataJson, res.locals.render.engine.settings || {}, "override");
|
|
46
|
+
const settingsData = (0, mergeNestedSchemaWithData_1.mergeNestedSchemaWithData)(schemaJson, mergedData);
|
|
47
|
+
res.locals.env.addGlobal("settings", settingsData);
|
|
48
|
+
next();
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
console.error("❌ mergeDataMiddleware error:", err);
|
|
52
|
+
return next(err);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.mergeDataMiddleware = mergeDataMiddleware;
|
|
@@ -1,49 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.mergeDataMiddleware = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const mergeObjects_1 = require("../utils/mergeObjects");
|
|
9
|
-
const mergeNestedSchemaWithData_1 = require("../utils/mergeNestedSchemaWithData");
|
|
10
|
-
const fs_1 = __importDefault(require("fs"));
|
|
11
|
-
const mergeWidgetSources_1 = require("../utils/mergeWidgetSources");
|
|
12
4
|
const mergeDataMiddleware = async (req, res, next) => {
|
|
13
5
|
try {
|
|
14
6
|
const pageHandle = res.locals.render.context?.page.handle;
|
|
15
|
-
const
|
|
16
|
-
const hasJson = fs_1.default.existsSync(pageJsonPath);
|
|
17
|
-
if (!hasJson) {
|
|
18
|
-
console.warn(`❌ No JSON file found for '${pageHandle}' at ${pageJsonPath}`);
|
|
19
|
-
return next(new Error(`No JSON file found for '${pageHandle}'`));
|
|
20
|
-
}
|
|
21
|
-
const jsonData = fs_1.default.readFileSync(pageJsonPath, "utf-8");
|
|
22
|
-
const fileContent = JSON.parse(jsonData);
|
|
23
|
-
const onlineWidgets = res.locals.render.engine.page?.widgets ?? [];
|
|
24
|
-
const fileWidgets = fileContent?.widgets || [];
|
|
25
|
-
const widgets = (0, mergeWidgetSources_1.mergeWidgetSources)(fileWidgets, onlineWidgets);
|
|
7
|
+
const widgets = res.locals.render.engine.page?.widgets ?? [];
|
|
26
8
|
res.locals.env.addGlobal("engineData", res.locals.render.engine);
|
|
27
9
|
res.locals.env.addGlobal("widgets", widgets);
|
|
28
10
|
res.locals.env.addGlobal("pageData", {
|
|
29
|
-
layout: res.locals.render.engine.page?.layout
|
|
30
|
-
title: res.locals.render.engine.page?.title
|
|
31
|
-
handle: res.locals.render.engine.page?.handle
|
|
11
|
+
layout: res.locals.render.engine.page?.layout,
|
|
12
|
+
title: res.locals.render.engine.page?.title,
|
|
13
|
+
handle: res.locals.render.engine.page?.handle,
|
|
32
14
|
});
|
|
33
|
-
const
|
|
34
|
-
const settingDataPath = path_1.default.join(res.locals.env.getGlobal("settingsPath"), "settings-data.json");
|
|
35
|
-
let schemaJson = {};
|
|
36
|
-
let dataJson = {};
|
|
37
|
-
if (fs_1.default.existsSync(settingSchemaPath)) {
|
|
38
|
-
const content = fs_1.default.readFileSync(settingSchemaPath, "utf-8");
|
|
39
|
-
schemaJson = JSON.parse(content);
|
|
40
|
-
}
|
|
41
|
-
if (fs_1.default.existsSync(settingDataPath)) {
|
|
42
|
-
const content = fs_1.default.readFileSync(settingDataPath, "utf-8");
|
|
43
|
-
dataJson = JSON.parse(content);
|
|
44
|
-
}
|
|
45
|
-
const mergedData = (0, mergeObjects_1.mergeObjects)(dataJson, res.locals.render.engine.settings || {}, "override");
|
|
46
|
-
const settingsData = (0, mergeNestedSchemaWithData_1.mergeNestedSchemaWithData)(schemaJson, mergedData);
|
|
15
|
+
const settingsData = res.locals.render.engine.settings;
|
|
47
16
|
res.locals.env.addGlobal("settings", settingsData);
|
|
48
17
|
next();
|
|
49
18
|
}
|