Files
Verso/services/web/test/smoke/src/support/Csrf.mjs
T
Andrew RumbleandCopybot b5216af8f7 Convert to ESM
GitOrigin-RevId: 097bc45d500b4d2538ee49d60a597619579419a5
2025-11-06 09:06:52 +00:00

24 lines
680 B
JavaScript

import OError from '@overleaf/o-error'
import { assertHasStatusCode } from './requestHelper.mjs'
const CSRF_REGEX = /<meta name="ol-csrfToken" content="(.+?)">/
export function _parseCsrf(body) {
const match = CSRF_REGEX.exec(body)
if (!match) {
throw new Error('Cannot find csrfToken in HTML')
}
return match[1]
}
export function getCsrfTokenForFactory({ request }) {
return async function getCsrfTokenFor(endpoint) {
try {
const response = await request(endpoint)
assertHasStatusCode(response, 200)
return _parseCsrf(response.body)
} catch (err) {
throw new OError(`error fetching csrf token on ${endpoint}`, {}, err)
}
}
}