vanilla-http

like fetch

Usage no npm install needed!

<script type="module">
  import vanillaHttp from 'https://cdn.skypack.dev/vanilla-http';
</script>

README

Vanilla-http (Tiny fetch)

仅有 1kb(gzip) 的体积, 仅仅是 fetch 的封装

Feature

  • 更加简化的返回类型, 焦距最终的返回值, 而不是过程
  • Promise 风格
  • JSON 自动处理
  • GET 请求 params 自动处理

Example

import { createHttp } from "vanilla-http";

const http = createHttp({
  // 默认为0ms,在固定间隔时间内的请求,若参数相同,直接走缓存
  cacheTime: 0,
  // 可选,请求URL前缀
  baseURL: "http://127.0.0.1:4000",
  reducer: (e) => {
    return e;
  },
  onError: (e) => {
    console.log("have-error:", e);
    return e;
  },
});

const fetchSometing = async () => {
  // 给某个请求开启缓存
  const data1 = await http.get("/hello", {}, { useCache: true });
  const data2 = await http.post(
    "/hello",
    { name: "dog", age: 5 },
    {
      onerror: (e) => {
        // 对一些状态单独做处理, 例如,弱error就返回null
        return null;
      },
    }
  );
  const data3 = await http.put("/hello", { name: "dog", age: 5 });
  const data4 = await http.delete("/hello", { name: "dog", age: 5 });
  const data4 = await http.options("/hello", { name: "dog", age: 5 });
};