import type { NextFunction, Response } from 'express' import { defaultCacheControl } from './cache-control' import type { ExtendedRequest } from '@/types' const defaultResponse = 'User-agent: *' const disallowAll = `User-agent: * Disallow: /` export default function robots(req: ExtendedRequest, res: Response, next: NextFunction) { if (req.path !== '/robots.txt') return next() res.type('text/plain') defaultCacheControl(res) const host = req.get('x-host') || req.get('x-forwarded-host') || req.get('host') // only include robots.txt when it's our production domain and adding localhost for robots-txt.ts test if ( host === 'docs.github.com' || req.hostname === 'docs.github.com' || req.hostname === '127.0.0.1' ) { res.send(defaultResponse) return } res.send(disallowAll) }