Skip to main content
Version: 3.9.x

Middlewares

You can add some middlewares to do some job with the response and ship you result as the final result for the request.

Add the middleware

import Joi from "joi";
import { RestRequest, IResponse, ABORT_REQUEST_EVENT_NAME } from "@mihanizm56/fetch-api";

new MiddlewaresController().setMiddleware({
  name: 'test', // middleware id
  middleware: async ({ retryRequest }) => {
    // we can add some additional requests to get some data (for example, retry some auth)
    const result = await new PureRestRequest().getRequest({
      endpoint: '/test-2',
      // If you don't want to get your "inside" request to be catched by middleware
      // then set the middlewaresAreDisabled parameter to true
      middlewaresAreDisabled: true, 
    });

    // then we can retry the initial request
    const data = await retryRequest({ middlewaresAreDisabled: true });

    // and ship the final result
    return data;
  },
});


const someFunction = async () => {
    // here we will get the result AFTER ALL middlewares finish to work
    const result = await new PureRestRequest().getRequest({
      endpoint: '/test-1',
    });
}

Delete the middleware

import Joi from "joi";
import { RestRequest, IResponse, ABORT_REQUEST_EVENT_NAME } from "@mihanizm56/fetch-api";

// here we insert the middleware id
new MiddlewaresController().deleteMiddleware('test');


const someFunction = async () => {
    const result = await new PureRestRequest().getRequest({
      endpoint: '/test-1',
    });
}