Files
overleaf-cep/services/web/frontend/macros/cypress-cache-variant.js
Kristina b3beca0e8d [web] isolate cypress webpack caches (#33516)
GitOrigin-RevId: 65f8bf162df4fa3b67c8ac19f36fd578251e88f4
2026-05-12 08:05:24 +00:00

24 lines
677 B
JavaScript

const path = require('path')
// Returns the cache subdirectory name for the current Cypress CT variant,
// or null when CYPRESS_RESULTS is not set.
// Throws if the derived basename is unsafe to prevent path traversal or
// absolute-path escapes.
function cypressCacheVariant() {
if (!process.env.CYPRESS_RESULTS) return null
const variant = path.basename(process.env.CYPRESS_RESULTS)
if (
!variant ||
variant === '.' ||
variant === '..' ||
path.isAbsolute(variant)
) {
throw new Error(
`CYPRESS_RESULTS must resolve to a safe basename; got "${process.env.CYPRESS_RESULTS}"`
)
}
return variant
}
module.exports = cypressCacheVariant