next-fetcher is a powerful, TypeScript-friendly utility for seamless data fetching in Next.js app router. It leverages Axios for HTTP requests, supports customizable request configurations, and provides robust error handling with optional .throwOnError() chaining. Simplify your client and server-side data fetching workflows with next-fetcher.
** This utility only for nextjs app router. Page router do not support this package.
Small in Size
All functionality
Zero config
Properly Maintained
Installation
$ npm i next-fetcher
Server Components
import { createServerFetcher } from "next-fetcher";
const Page = async () => {
const fetcher = createServerFetcher({ next: true, sessionName: "token" });
//It can be called outside of component.
//On that case you can import fetcher for use it in your component.
const data = await fetcher.get("/api");
return (
<div>
{JSON.stringify(data)}
</div>
);
};
export default Page;
API (Server Components)
Name
Types
Default
Description
next
Boolean (Required)
Give `true` if you are using nextjs api. If you are using non-nextjs api then give this value as `false`.
baseURL
string (Required if `next` is `false`)
Give the base url if you are not using nextjs api.
sessionName
string (Required if you do not provide `cookie`)
The cookie name which one need to be sent for authorization
cookie
string (Required if you do not provide `sessionName`)
If you want to you can directly provide the cookie value
sessionOptions
Options (Optional)
Cookie options
Client Components
import { createClientFetcher, Fetcher } from "next-fetcher";
import { useQuery } from "@tanstack/react-query";
const GET_BOOKS = async(fetcher: Fetcher)=> {
return fetcher.get("/api")
}
const Page = () => {
const fetcher = createClientFetcher({ next: true, sessionName: "token" });
//It can be called outside of component.
//On that case you can import fetcher for use it in your component.
//Using tanstack/react-query
const { data } = useQuery({ queryKey: ["books"], queryFn: () => GET_BOOKS(fetcher) })
return (
<div>
{JSON.stringify(data)}
</div>
);
};
export default Page;
API (Client Components)
Name
Types
Default
Description
next
Boolean (Required)
Give `true` if you are using nextjs api. If you are using non-nextjs api then give this value as `false`.
baseURL
string (Required if `next` is `false`)
Give the base url if you are not using nextjs api.
sessionName
string (Required if you do not provide `cookie`)
The cookie name which one need to be sent for authorization
cookie
string (Required if you do not provide `sessionName`)
If you want to you can directly provide the cookie value
sessionOptions
Options (Optional)
Cookie options
Error Handling
next-fetcher do not throwing any error during data fetching. But if you want to throw error you can use throwOnError() chaining method.
NOTE! When deleting a cookie and you're not relying on the default attributes, you must pass the exact same path and domain attributes that were used to set the cookie:
A nextjs typescript friendly utility for seamless data fetching.
We found that next-fetcher demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 0 open source maintainers collaborating on the project.
Package last updated on 23 Nov 2024
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Opengrep continues building momentum with the alpha release of its Playground tool, demonstrating the project's rapid evolution just two months after its initial launch.