Skip to main content
Version: 3.7.x

Universal Requests

All Requests are availiable in both node.js and browser environments.

This is because the library use window.fetch and node-fetch, if it detects your node.js environment.

Browser

For example with bundler we can use:

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

export const getWhateverRequest = (): Promise<IResponse> =>
  new RestRequest().getRequest({
    endpoint: "http://localhost:3000",
    responseSchema: Joi.object({
      username: Joi.string().required(),
      info: Joi.object({
        killers: Joi.array().items(
          Joi.object({
            username: Joi.string().required(),
            count: Joi.number().required(),
          })
        ),
      }),
    }),
  });

Node.js

In pure Node.js environment wihout any bundlers we can use:

const Joi = require("joi");
const { RestRequest, IResponse } = require("@mihanizm56/fetch-api");

module.exports.getWhateverRequest = (): Promise<IResponse> =>
  new RestRequest().getRequest({
    endpoint: "http://localhost:3000",
    responseSchema: Joi.object({
      username: Joi.string().required()
    }),
  });

With bundlers in Node.js we also can use es6 imports

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

export const getWhateverRequest = (): Promise<IResponse> =>
  new RestRequest().getRequest({
    endpoint: "http://localhost:3000",
    responseSchema: Joi.object({
      username: Joi.string().required(),
      info: Joi.object({
        killers: Joi.array().items(
          Joi.object({
            username: Joi.string().required(),
            count: Joi.number().required(),
          })
        ),
      }),
    }),
  });