Skip to content

nucleuslabs/react-restfully

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-restfully

React Restfully is a set of React Hooks and their analogous vanilla JS functions that assist you in fetching data using the fetch() API.

Version 1.0.0

Quickstart

[TOC]

Hooks


usePost

Example
function hello() {
	const {data, loading, error} = usePost('__URL__', {
		variables: {language: 'english'},
	});
	
	if(loading) return <p>Loading ...</p>;
	return <h1>Hello {data.greeting.message}!</h1>;
}
Function Signature
usePost(
    url: String,
    fetchOptions: fetchOptions = {}, 
    dependencies?: Array = []
): FetchResult
Params
url
PARAM TYPE DESCRIPTION
url string The URL to supply to fetch()
fetchOptions
OPTION TYPE DESCRIPTION
headers array Headers (See fetch.DefaultHeaders)
payload ObjectMap Data to pass down. (Note: payload is appended to the URL for Get requests)
onCompleted function Callback on successful fetch
onError function Callback on failed fetch
transform Transformfunctionboolean Overrides default formatting of payload. Setting to FALSE will prevent any transformation to payload. (Note that the Transform object contains default transformation operations).
onError ResponseTypes Function used to handle the response body.
dependencies
PARAM TYPE DESCRIPTION
dependencies array The array of dependencies to pass to React's useEffect's second parameter. Used to determine when this hook is fired. Default: [].
Result
PROPERTY TYPE DESCRIPTION
data objectundefined Data returned from query
loading Boolean Whether or not query is ongoing
hasErrors Boolean Whether or not errors have occurred
error objectundefined Error returned. Defaults to undefined
payload Object Data passed down

useGet

Example
function hello() {
	const {data, loading, error} = useGet('__URL__', {
		variables: {language: 'english'},
	});
	
	if(loading) return <p>Loading ...</p>;
	return <h1>Hello {data.greeting.message}!</h1>;
}
Function Signature
useGet(
    url: String,
    fetchOptions?: fetchOptions = {},
    dependencies?: Array = []
): FetchResult
Params
url
PARAM TYPE DESCRIPTION
url string The URL to supply to fetch()
fetchOptions
OPTION TYPE DESCRIPTION
headers array Headers (See fetch.DefaultHeaders)
payload ObjectMap Data to pass down. (Note: payload is appended to the URL for Get requests)
onCompleted function Callback on successful fetch
onError function Callback on failed fetch
transform Transformfunctionboolean Overrides default formatting of payload. Setting to FALSE will prevent any transformation to payload. (Note that the Transform object contains default transformation operations).
onError ResponseTypes Function used to handle the response body.
dependencies
PARAM TYPE DESCRIPTION
dependencies array The array of dependencies to pass to React's useEffect's second parameter. Used to determine when this hook is fired. Default: [].
Result
PROPERTY TYPE DESCRIPTION
data objectundefined Data returned from query
loading Boolean Whether or not query is ongoing
hasErrors Boolean Whether or not errors have occurred
error objectundefined Error returned. Defaults to undefined
payload Object Data passed down

useSubmit

Example
function Hello() {
	const [loadGreeting, {called, loading, data}] = useSubmit('__URL__', {
		variables: {language: 'english'},
	});

	if(called && loading) return <p>Loading ...</p>
	if(!called) {
		return <button onClick={() => loadGreeting()}>Load greeting</button>
	}
	return <h1>Hello {data.greeting.message}!</h1>;
}
Function Signature
useSubmit(
    url: String,
    fetchOptions?: fetchOptions = {}
): [(function(): void), FetchResult]
Params
url
PARAM TYPE DESCRIPTION
url string The URL to supply to fetch()
fetchOptions
OPTION TYPE DESCRIPTION
headers array Headers (See fetch.DefaultHeaders)
payload ObjectMap Data to pass down. (Note: payload is appended to the URL for Get requests)
onCompleted function Callback on successful fetch
onError function Callback on failed fetch
transform Transformfunctionboolean Overrides default formatting of payload. Setting to FALSE will prevent any transformation to payload. (Note that the Transform object contains default transformation operations).
onError ResponseTypes Function used to handle the response body.
dependencies
PARAM TYPE DESCRIPTION
dependencies array The array of dependencies to pass to React's useEffect's second parameter. Used to determine when this hook is fired. Default: [].
Result
PROPERTY TYPE DESCRIPTION
data objectundefined Data returned from query
loading Boolean Whether or not query is ongoing
hasErrors Boolean Whether or not errors have occurred
error objectundefined Error returned. Defaults to undefined
payload Object Data passed down
called Boolean Whether or not the function has been called

Vanilla JS


post

Example
function App() {
	const [data, setData] = useState();
	useEffect(() => {
		post('https://gfgfsdagfsdagfsda.free.beeceptor.com/test', {
			payload: {language: 'english'},
		}).then(data => setData(data));
	}, []);

	if(typeof data === 'undefined') return <p>Loading ...</p>;
	return <h1>Hello {data.greeting.message}!</h1>;
}
Function Signature
post(
    url: Object,
    fetchOptions: fetchOptions = {}
): Promise
Params
url
PARAM TYPE DESCRIPTION
url string The URL to supply to fetch()
fetchOptions
OPTION TYPE DESCRIPTION
headers array Headers (See fetch.DefaultHeaders)
payload ObjectMap Data to pass down. (Note: payload is appended to the URL for Get requests)
onCompleted function Callback on successful fetch
onError function Callback on failed fetch
transform Transformfunctionboolean Overrides default formatting of payload. Setting to FALSE will prevent any transformation to payload. (Note that the Transform object contains default transformation operations).
onError ResponseTypes Function used to handle the response body.

get

Example
function Hello() {
	const [data, setData] = useState();
	useEffect(() => {
		get('__URL__', {
			payload: {language: 'english'},
		}).then(data => setData(data));
	}, []);

	if(typeof data === 'undefined') return <p>Loading ...</p>;
	return <h1>Hello {data.greeting.message}!</h1>;
}
Function Signature
get(
    url: Object,
    fetchOptions: fetchOptions = {} 
): Promise
Params
url
PARAM TYPE DESCRIPTION
url string The URL to supply to fetch()
fetchOptions
OPTION TYPE DESCRIPTION
headers array Headers (See fetch.DefaultHeaders)
payload ObjectMap Data to pass down. (Note: payload is appended to the URL for Get requests)
onCompleted function Callback on successful fetch
onError function Callback on failed fetch
transform Transformfunctionboolean Overrides default formatting of payload. Setting to FALSE will prevent any transformation to payload. (Note that the Transform object contains default transformation operations).
onError ResponseTypes Function used to handle the response body.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published