1.0.0 • Published 9 months ago

@giancosta86/captain-hook v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

captain-hook

TypeScript hooks for React

GitHub CI npm version MIT License

captain-hook is a TypeScript library for React dedicated to functional programming via hooks - as described in this article.

Installation

The package on NPM is:

@giancosta86/captain-hook

The public API entirely resides in the root package index, so you shouldn't reference specific modules.

Usage

useAsyncFetcher()

Multi-stage approach to data fetching, alternative to SWR.

It creates a sort of fetching pipeline having the following parameters - to be packed into an object:

  • fetcher: the () => Promise<T | undefined> function used to fetch data - for example, from some API. If the function returns Promise<undefined>, the process will be stopped and onCancel (if passed) will be called instead of onData

  • onData: basically a (data: T) => void | Promise<void> function manipulating the fetched data; for example, you might want to call React state setters

  • onError: precisely an (err: unknown) => void | Promise<void> function only called if an error is thrown by fetcher or any other handler (including onCancel and onStale)

  • onCancel: optional () => void | Promise<void> function called in lieu of onData when fetcher returns undefined

  • onStale: optional () => void | Promise<void> function called when fetcher returns but in the meantime another fetcher has been started because of a change in dependencies

  • dependencies: the array of dependencies referenced by the internal useEffect(); the hook by itself does not automatically set any implicit dependency.