fix: resolve sitemap build error caused by invalid Date values
- Replace new Date(b.created) with toSafeDate() helper to guard against invalid date strings from blog API responses - Use a single NOW constant instead of new Date() per entry to avoid serialization issues during static generation - Remove unused imports (cityData, DOMAIN_CONFIG, etc.) - Add CLAUDE.md with project architecture and development guidance Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
35408b059a
commit
ec536bfc32
+23
-27
@@ -1,39 +1,35 @@
|
||||
import { headers } from 'next/headers';
|
||||
import cityData from '../data/city.json';
|
||||
import specialtyData from '../data/specialties.json';
|
||||
import {
|
||||
DOMAIN_CONFIG,
|
||||
isMainDomain,
|
||||
createSitemapUrl,
|
||||
createSitemapEntry,
|
||||
limitArray,
|
||||
getBaseUrl
|
||||
} from '../utils/sitemap';
|
||||
import { getBaseUrl } from '../utils/sitemap';
|
||||
|
||||
function toSafeDate(value) {
|
||||
if (!value) return new Date();
|
||||
const d = new Date(value);
|
||||
return isNaN(d.getTime()) ? new Date() : d;
|
||||
}
|
||||
|
||||
const MAIN_DOMAIN = 'nobat724.com';
|
||||
|
||||
function getCurrentDomain() {
|
||||
try {
|
||||
const headersList = headers();
|
||||
const host = headersList.get('host');
|
||||
return host || DOMAIN_CONFIG.MAIN_DOMAIN;
|
||||
} catch (error) {
|
||||
console.warn('Headers not available during static generation, using main domain');
|
||||
return DOMAIN_CONFIG.MAIN_DOMAIN;
|
||||
return host || MAIN_DOMAIN;
|
||||
} catch {
|
||||
return MAIN_DOMAIN;
|
||||
}
|
||||
}
|
||||
|
||||
function getCityByDomain(domain) {
|
||||
return cityData.find(city => city.domain === domain);
|
||||
}
|
||||
const NOW = new Date();
|
||||
|
||||
function getStaticPages(baseUrl) {
|
||||
return [
|
||||
{ url: baseUrl, lastModified: new Date(), changeFrequency: 'daily', priority: 1 },
|
||||
{ url: `${baseUrl}/about-us`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
|
||||
{ url: `${baseUrl}/contact-us`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
|
||||
{ url: `${baseUrl}/blogs`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.9 },
|
||||
{ url: `${baseUrl}/doctors`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.9 },
|
||||
{ url: `${baseUrl}/clinics`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.9 },
|
||||
{ url: `${baseUrl}/specialties`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.9 },
|
||||
{ url: baseUrl, lastModified: NOW, changeFrequency: 'daily', priority: 1 },
|
||||
{ url: `${baseUrl}/about-us`, lastModified: NOW, changeFrequency: 'monthly', priority: 0.8 },
|
||||
{ url: `${baseUrl}/contact-us`, lastModified: NOW, changeFrequency: 'monthly', priority: 0.8 },
|
||||
{ url: `${baseUrl}/blogs`, lastModified: NOW, changeFrequency: 'weekly', priority: 0.9 },
|
||||
{ url: `${baseUrl}/doctors`, lastModified: NOW, changeFrequency: 'daily', priority: 0.9 },
|
||||
{ url: `${baseUrl}/clinics`, lastModified: NOW, changeFrequency: 'daily', priority: 0.9 },
|
||||
{ url: `${baseUrl}/specialties`, lastModified: NOW, changeFrequency: 'weekly', priority: 0.9 },
|
||||
];
|
||||
}
|
||||
|
||||
@@ -52,7 +48,7 @@ async function getDoctorUrls(baseUrl) {
|
||||
.filter((d) => d?.uuid)
|
||||
.map((d) => ({
|
||||
url: `${baseUrl}/doctor/${d.uuid}`,
|
||||
lastModified: new Date(),
|
||||
lastModified: NOW,
|
||||
changeFrequency: 'weekly',
|
||||
priority: 0.8,
|
||||
}));
|
||||
@@ -76,7 +72,7 @@ async function getClinicUrls(baseUrl) {
|
||||
.filter((c) => c?.uuid)
|
||||
.map((c) => ({
|
||||
url: `${baseUrl}/clinic/${c.uuid}`,
|
||||
lastModified: new Date(),
|
||||
lastModified: NOW,
|
||||
changeFrequency: 'weekly',
|
||||
priority: 0.7,
|
||||
}));
|
||||
@@ -100,7 +96,7 @@ async function getBlogUrls(baseUrl) {
|
||||
.filter((b) => b?.slug || b?.uuid)
|
||||
.map((b) => ({
|
||||
url: `${baseUrl}/blog/${b.slug || b.uuid}`,
|
||||
lastModified: b.created ? new Date(b.created) : new Date(),
|
||||
lastModified: toSafeDate(b.created),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.6,
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user