TASKS-1823 WebManager module

This commit is contained in:
Igor Martyniuk
2026-08-28 08:35:58 +00:00
parent fdb2cf3837
commit c93d8c025b
654 changed files with 26232 additions and 6075 deletions
+46
View File
@@ -0,0 +1,46 @@
import 'server-only';
import { cache } from 'react';
import { createEmptySiteSettings, normalizeRoutePath } from '../data/normalize';
import type { PageRenderData } from '../types';
import { getWebRuntimeAPI } from './web-runtime-api';
export const resolvePageRenderData = cache(
async (locale: string, requestedPath: string): Promise<PageRenderData | null> => {
const api = getWebRuntimeAPI();
const request = {
locale: locale.trim(),
path: normalizeRoutePath(requestedPath)
};
const resolution = await api.resolvePage(request);
if (!resolution || resolution.page.status !== 'published') {
return null;
}
const settings = resolution.settings ?? (await api.getSettings(request.locale));
return {
page: resolution.page,
settings: settings ?? createEmptySiteSettings(request.locale),
languageAlternatives: resolution.languageAlternatives
};
}
);
export async function resolvePreviewRenderData(token: string): Promise<PageRenderData | null> {
if (!token) {
return null;
}
const resolution = await getWebRuntimeAPI().getPreview(token);
if (!resolution) {
return null;
}
return {
page: resolution.page,
settings: resolution.settings ?? createEmptySiteSettings(resolution.page.locale),
languageAlternatives: resolution.languageAlternatives
};
}