diff options
Diffstat (limited to 'scripts/generate-sitemap.ts')
| -rw-r--r-- | scripts/generate-sitemap.ts | 49 |
1 files changed, 28 insertions, 21 deletions
diff --git a/scripts/generate-sitemap.ts b/scripts/generate-sitemap.ts index 3270fea..e9f711f 100644 --- a/scripts/generate-sitemap.ts +++ b/scripts/generate-sitemap.ts @@ -1,36 +1,43 @@ -import { promises as fs } from 'node:fs'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; +import { promises as fs } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; -const SITE_URL = (process.env.SITE_URL ?? 'https://wsap.dev').replace(/\/+$/, ''); -const STATIC_ROUTES = ['/', '/about', '/apps']; +const SITE_URL = (process.env.SITE_URL ?? "https://wsap.dev").replace( + /\/+$/, + "", +); +const STATIC_ROUTES = ["/", "/about", "/apps"]; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const projectRoot = path.resolve(__dirname, '..'); -const postsDir = path.join(projectRoot, 'src', 'posts'); -const sitemapPath = path.join(projectRoot, 'static', 'sitemap.txt'); +const projectRoot = path.resolve(__dirname, ".."); +const postsDir = path.join(projectRoot, "src", "posts"); +const sitemapPath = path.join(projectRoot, "static", "sitemap.txt"); async function getPostRoutes(): Promise<string[]> { - const files = await fs.readdir(postsDir); + const files = await fs.readdir(postsDir); - return files - .filter((file) => file.endsWith('.svx')) - .map((file) => `/posts/${file.replace(/\.svx$/, '')}`) - .sort(); + return files + .filter((file) => file.endsWith(".svx")) + .map((file) => `/posts/${file.replace(/\.svx$/, "")}`) + .sort(); } async function main(): Promise<void> { - const postRoutes = await getPostRoutes(); - const urls = [...STATIC_ROUTES, ...postRoutes].map((route) => `${SITE_URL}${route}`); - const body = `${urls.join('\n')}\n`; + const postRoutes = await getPostRoutes(); + const urls = [...STATIC_ROUTES, ...postRoutes].map( + (route) => `${SITE_URL}${route}`, + ); + const body = `${urls.join("\n")}\n`; - await fs.writeFile(sitemapPath, body, 'utf8'); - console.log(`Generated sitemap: ${path.relative(projectRoot, sitemapPath)} (${urls.length} URLs)`); + await fs.writeFile(sitemapPath, body, "utf8"); + console.log( + `Generated sitemap: ${path.relative(projectRoot, sitemapPath)} (${urls.length} URLs)`, + ); } main().catch((error: unknown) => { - console.error('Failed to generate sitemap.txt'); - console.error(error); - process.exit(1); + console.error("Failed to generate sitemap.txt"); + console.error(error); + process.exit(1); }); |
