import * as fsp from 'fs/promises' import { PagesManifest } from 'next/dist/build/webpack/plugins/pages-manifest-plugin' import * as path from 'path' import { TransformerConfig } from '../types/config.types' export const findRoutes = async ({ config, }: { config: TransformerConfig }): Promise> => { const pagesManifestPath = path.join( config.distDir, 'server/pages-manifest.json', ) const pagesManifest: PagesManifest = await fsp .readFile(pagesManifestPath, 'utf-8') .then(JSON.parse) const validPaths = Object.entries(pagesManifest).filter( ([path]) => !path.startsWith('/_') && !path.startsWith('/api/') && !['/404', '/500'].includes(path), ) return validPaths }