123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
- import minimist from 'minimist';
- import fs from 'node:fs/promises';
- import path from 'node:path';
- import { Logger } from '../logger.js';
- import { generateUrl } from './url.js';
- import { pathToFileURL } from 'url';
- /**
- * Return absolute path from path segments
- * @param pathSegment
- * @returns
- */
- export const getPath = (...pathSegment) => {
- return path.resolve(process.cwd(), ...pathSegment);
- };
- /**
- * Return all runtime paths
- * @param config
- * @returns
- */
- export const getRuntimePaths = (config) => {
- // Check whether user enabled index sitemap or not
- const sitemapIndexEnabled = config?.generateIndexSitemap;
- // Set sitemap index file
- const SITEMAP_INDEX_FILE = sitemapIndexEnabled
- ? getPath(config.outDir, `${config.sitemapBaseFileName}.xml`)
- : undefined;
- // Set sitemap index url
- const SITEMAP_INDEX_URL = sitemapIndexEnabled
- ? generateUrl(config?.siteUrl, `${config.sitemapBaseFileName}.xml`)
- : undefined;
- return {
- BUILD_MANIFEST: getPath(config.sourceDir, 'build-manifest.json'),
- PRERENDER_MANIFEST: getPath(config.sourceDir, 'prerender-manifest.json'),
- ROUTES_MANIFEST: getPath(config.sourceDir, 'routes-manifest.json'),
- EXPORT_MARKER: getPath(config.sourceDir, 'export-marker.json'),
- ROBOTS_TXT_FILE: getPath(config.outDir, 'robots.txt'),
- SITEMAP_INDEX_URL,
- SITEMAP_INDEX_FILE,
- };
- };
- /**
- * Get config file path
- * @returns
- */
- export const getConfigFilePath = async () => {
- // Extract args from command
- const args = minimist(process.argv.slice(2));
- // Config file path
- const configPath = getPath(args.config || 'next-sitemap.config.js');
- // Check file stat
- return fs
- .stat(configPath)
- .then(() => pathToFileURL(configPath).toString())
- .catch((err) => {
- Logger.noConfigFile();
- throw err;
- });
- };
|