1
0
mirror of synced 2025-12-21 10:57:10 -05:00
Files
docs/middleware/block-robots.js
Kevin Heis 8a56437c93 Pretty format (#20352)
* Update prettier flow to include JS

* Run prettier

* ...run prettier
2021-07-14 14:35:01 -07:00

38 lines
1.2 KiB
JavaScript

import languages from '../lib/languages.js'
import { productMap } from '../lib/all-products.js'
import { deprecated } from '../lib/enterprise-server-releases.js'
const pathRegExps = [
// Disallow indexing of WIP localized content
...Object.values(languages)
.filter((language) => language.wip)
.map((language) => new RegExp(`^/${language.code}(/.*)?$`, 'i')),
// Disallow indexing of WIP products
...Object.values(productMap)
.filter((product) => product.wip || product.hidden)
.map((product) => [
new RegExp(`^/.*?${product.href}`, 'i'),
...product.versions.map((version) => new RegExp(`^/.*?${version}/${product.id}`, 'i')),
]),
// Disallow indexing of deprecated enterprise versions
...deprecated.map((version) => [
new RegExp(`^/.*?/enterprise-server@${version}/.*?`, 'i'),
new RegExp(`^/.*?/enterprise/${version}/.*?`, 'i'),
]),
].flat()
export function blockIndex(path) {
return pathRegExps.some((pathRe) => pathRe.test(path))
}
const middleware = function blockRobots(req, res, next) {
if (blockIndex(req.path)) res.set('x-robots-tag', 'noindex')
return next()
}
middleware.blockIndex = blockIndex
export default middleware