Website Structure

This commit is contained in:
supalerk-ar66 2026-01-13 10:46:40 +07:00
parent 62812f2090
commit 71f0676a62
22365 changed files with 4265753 additions and 791 deletions

View file

@ -0,0 +1,32 @@
'use strict';
const defu = require('defu');
const klona = require('klona');
const isJSObject = (value) => typeof value === "object" && !Array.isArray(value);
const configMerger = (base, ...defaults) => {
if (!base) {
return klona.klona(defaults[0]);
}
return defu.createDefu((obj, key, value) => {
if (key === "content") {
if (isJSObject(obj[key]) && Array.isArray(value)) {
obj[key] = { ...obj[key], files: [...obj[key]["files"] || [], ...value] };
return true;
} else if (Array.isArray(obj[key]) && isJSObject(value)) {
obj[key] = { ...value, files: [...obj[key], ...value.files || []] };
return true;
}
if (obj[key] && typeof value === "function") {
obj[key] = value(Array.isArray(obj[key]) ? obj[key] : obj[key]["files"]);
return true;
}
if (typeof obj[key] === "function" && value) {
obj[key] = obj[key](Array.isArray(value) ? value : value["files"]);
return true;
}
}
})(klona.klona(base), ...defaults.map(klona.klona));
};
module.exports = configMerger;