Files
hoanghapc_nextJs/src/lib/slug/slugMap.ts

29 lines
757 B
TypeScript
Raw Normal View History

2025-12-30 18:05:53 +07:00
import { resolveArticlePage } from "./resolveArticlePage";
import { resolveProductPage } from "./resolveProductPage";
2026-02-10 17:11:24 +07:00
import { resolveJobPage } from "./resolveJobPage";
2025-12-29 17:43:31 +07:00
export type SlugResult =
2025-12-30 18:05:53 +07:00
| ReturnType<typeof resolveArticlePage>
2026-02-10 17:11:24 +07:00
| ReturnType<typeof resolveProductPage>
| ReturnType<typeof resolveJobPage>;
2025-12-29 17:43:31 +07:00
2025-12-30 18:05:53 +07:00
export function findBySlug(slug?: string): SlugResult | null {
2026-02-09 16:46:26 +07:00
2026-01-15 17:30:04 +07:00
if (!slug || slug.trim() === '') {
return null;
2026-02-09 16:46:26 +07:00
}
2025-12-30 18:05:53 +07:00
// PRODUCT
const product = resolveProductPage(slug);
if (product) return product;
2025-12-29 17:43:31 +07:00
2025-12-30 18:05:53 +07:00
// ARTICLE
2026-02-05 17:22:56 +07:00
const article = resolveArticlePage(slug);
if (article) return article;
2026-01-15 17:30:04 +07:00
2026-02-10 17:11:24 +07:00
// Job
const job = resolveJobPage(slug);
if (job) return job;
2026-01-15 17:30:04 +07:00
// 404
return null;
2025-12-30 18:05:53 +07:00
}