Moved to next js ssr (with fixes)

This commit is contained in:
anibus
2026-08-15 18:42:06 +03:00
parent 2184f1642c
commit 23bfad8956
21 changed files with 1473 additions and 1659 deletions
+19 -6
View File
@@ -2,6 +2,11 @@
// Runs only on the server (Node.js) — uses NEXT_PUBLIC_HOST_URL which is inlined at build time.
import { IMod } from '@/src/types/Imod';
import { Irace } from '@/src/types/Irace';
import { IRaceUnits } from '@/src/types/IUnitShort';
import { IRaceBuildings } from '@/src/types/IBuildingShort';
import { IUnit } from '@/src/types/IUnit';
import { IBuilding } from '@/src/types/IBuilding';
const API = process.env.NEXT_PUBLIC_HOST_URL || '';
export const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL || 'https://dow-wiki.example.com';
@@ -17,19 +22,19 @@ async function fetchJson<T>(url: string): Promise<T | null> {
}
export async function getMod(modId: string) {
return fetchJson<{ name: string; version: string }>(`${API}/api/v1/mods/${modId}`);
return fetchJson<IMod>(`${API}/api/v1/mods/${modId}`);
}
export async function getRace(raceId: string) {
return fetchJson<{ name: string }>(`${API}/api/v1/races/${raceId}`);
return fetchJson<Irace>(`${API}/api/v1/races/${raceId}`);
}
export async function getUnit(unitId: string) {
return fetchJson<{ name: string; description: string }>(`${API}/api/v1/units/${unitId}`);
return fetchJson<IUnit>(`${API}/api/v1/units/${unitId}`);
}
export async function getBuilding(buildingId: string) {
return fetchJson<{ name: string; filename: string }>(`${API}/api/v1/buildings/${buildingId}`);
return fetchJson<IBuilding>(`${API}/api/v1/buildings/${buildingId}`);
}
export async function getMods() {
@@ -41,9 +46,17 @@ export async function getRacesForMod(modId: string | number) {
}
export async function getUnitsForMod(modId: string | number) {
return fetchJson<Array<{ race: { id: string }; infantry: Array<{ id: number }>; support: Array<{ id: number }>; tech: Array<{ id: number }> }>>(`${API}/api/v1/units/mod/${modId}`);
return fetchJson<IRaceUnits[]>(`${API}/api/v1/units/mod/${modId}`);
}
export async function getBuildingsForMod(modId: string | number) {
return fetchJson<Array<{ race: { id: string }; buildings: Array<{ id: number }>; buildingsAdvanced: Array<{ id: number }> }>>(`${API}/api/v1/buildings/mod/${modId}`);
return fetchJson<IRaceBuildings[]>(`${API}/api/v1/buildings/mod/${modId}`);
}
export async function getRaceUnits(modId: string | number, raceId: string) {
return fetchJson<IRaceUnits>(`${API}/api/v1/units/${modId}/${raceId}`);
}
export async function getRaceBuildings(modId: string | number, raceId: string) {
return fetchJson<IRaceBuildings>(`${API}/api/v1/buildings/${modId}/${raceId}`);
}