@volumax/requests
Version:
A requests handler
50 lines (48 loc) • 2.19 kB
text/typescript
// Interfaces
import { R } from ".."
import { CsrfResponse } from "../interfaces/i_CsrfResponse"
export async function fetchAction(request: Request, ctx: R): Promise<Response> {
const res = await fetch(request)
.then( async data => {
if(!data.ok){
return Promise.reject(data.status)
}
return data
})/* .catch(async function (error) {
switch(error){
case 459:
if(ctx.csrfUrl == undefined) throw new Error('CSRF invalid')
const csrf: CsrfResponse = await ctx.getJSON({url: ctx.csrfUrl}) as CsrfResponse
ctx.setGeneralHeader('X-CSRF-Token', csrf.csrf_token)
ctx.setGetHeader('X-CSRF-Token', csrf.csrf_token)
ctx.setPostHeader('X-CSRF-Token', csrf.csrf_token)
ctx.setPutHeader('X-CSRF-Token', csrf.csrf_token)
ctx.setDeleteHeader('X-CSRF-Token', csrf.csrf_token)
request.headers.set('X-CSRF-Token', csrf.csrf_token)
console.log('New CSRF-Token set')
console.log('Fetch again')
console.log(request)
const settings: RequestInit = {
body: request.body,
cache: request.cache,
credentials : request.credentials,
headers: request.headers,
integrity: request.integrity,
keepalive : request.keepalive,
method: request.method,
mode: request.mode,
redirect: request.redirect,
referrer: request.referrer,
referrerPolicy: request.referrerPolicy,
signal: request.signal
}
const rqst = new Request(request.url, settings)
console.log('NEW Request')
return await fetch(rqst)
break;
}
}) */
console.log('Response')
console.log(res)
return res
}