@miyagi/core
Version:
miyagi is a component development tool for JavaScript template engines.
52 lines (44 loc) • 1.41 kB
JavaScript
/**
* Helper functions for the render module
* @module renderHelpers
*/
import path from "path";
/**
* @param {object} config - the user configuration object
* @param {object} data - the mock data object that will be passed into the component
* @param {object} component
* @returns {Promise<object>} the extended data object
*/
export const extendTemplateData = async (config, data, component) => {
for (const extension of config.extensions) {
if (extension) {
const ext = Array.isArray(extension) ? extension[0] : extension;
if (ext.extendTemplateData) {
data = await ext.extendTemplateData(
path.join(config.components.folder, component.paths.tpl.short),
{},
data,
);
}
}
}
return data;
};
export const getUserUiConfig = (cookies = {}) => {
const projectName = global.config.projectName.replaceAll(" ", "-");
const mode = cookies[`miyagi_${projectName}_mode`];
const theme = cookies[`miyagi_${projectName}_theme`];
const componentTextDirection =
cookies[`miyagi_${projectName}_text_direction`];
return {
mode: global.config.isBuild ? "presentation" : mode || "dev",
theme: theme || global.config.ui.mode,
componentTextDirection:
componentTextDirection || global.config.components.textDirection,
};
};
export const getThemeMode = (cookies = {}) => {
return cookies[
`miyagi_${global.config.projectName.replaceAll(" ", "-")}_theme`
];
};