A lightweight React hook for handling API requests with TypeScript support.
npm install saber-api
# or
yarn add saber-apiA powerful hook for handling API requests with built-in loading, error, and status management.
import { useSaber, fetchSaber } from 'saber-api';
function MyComponent() {
const { data, loading, error, status, call } = useSaber(async () => {
// Your API call here
return await fetchSaber<UserData>('https://api.example.com/users');
});
// Trigger the API call
useEffect(() => {
call();
}, []);
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
if (data) return <div>Data: {JSON.stringify(data)}</div>;
return null;
}The useSaber hook provides:
data: The response data (null initially)loading: Boolean indicating if the request is in progresserror: Any error that occurred during the requeststatus: Current status ('idle' | 'loading' | 'success' | 'error')call: Function to trigger the API request
The fetchSaber utility function provides a typed wrapper around the fetch API with proper error handling.
- Clone the repository
- Install dependencies:
npm install
- Run tests:
npm test # or with watch mode npm run test:watch
- Build the package:
npm run build
- For development with watch mode:
npm run dev
Additional development commands:
npm run lint: Run ESLintnpm run format: Format code with Prettier
- React >= 18.0.0
- React DOM >= 18.0.0
MIT