Documentation: services / sitemapService
Purpose:
Build comprehensive sitemap combining static pages, posts, and tags.
Lifecycle Role:
Handles `/sitemap.xml` or sitemap API requests.
Dependencies:
Upstream:
- getAllPosts utility
- gray-matter markdown parser
- fast-glob file locator
- internal aggregation methods
Downstream:
- sitemap route handlers
- SEO utilities or build scripts
Data Flow:
Inputs:
Content directories and static sitemap JSON.
Outputs:
Structured sitemap tree and flattened arrays.
Side Effects:
Filesystem reads; console warnings on errors.
Performance and Scalability:
Bottlenecks:
- Multiple async file reads and JSON parsing.
- No caching causes repeated heavy IO.
Concurrency:
High IO load under concurrent requests.
Security and Stability:
Validation:
No Validation of frontmatter; risk of sensitive metadata exposure.
Vulnerabilities:
File read scope risks.
Architecture Assessment:
Coupling:
Heavy dependency on multiple IO and parsing utilities.
Abstraction:
No persistent caching or pre-generation.
Recommendations:
- Add persistent caching refreshed on content changes.
- Validate and sanitize frontmatter.
- Restrict file reads to safe directories.
- Pre-generate sitemap at build/deploy time.