0.0.2 • Published 6 years ago

react-native-declarative-fetch v0.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

React Native Declarative Fetch

Custom component to query server in declarative way.

Inspiration

Inspired by Apollo GraphQL library.

Why?

Setting fetch function on every call is tedious. Declarative code add readability factor.

Installation

yarn add react-native-declarative-fetch

Quick Start

import {Provider, Query} from 'react-native-declarative-fetch'

export default class App extends Component {

  render() {
    return (
      <QueryProvider
        defaultMethod='GET'
        endpoints={{default: 'localhost:8081', v1: 'localhost:8082'}}
        defaultHeaders={{acceptLanguage: 'en'}}>
        <Query url='test'>{
          ({data, error, loading}) => {
            if (loading) {
              return <Text>Loading</Text>
            }
            if (error) {
              return <Text>Error</Text>
            }
            return <Text>{data}</Text>
          })
        }</Query>
      </QueryProvider>
    )
  }
}

Props

Provider

keytypeValueDescription
endpointsObjectMapping of allowed endpoints.
defaultMethodStringGETDefault Http method.
defaultHeadersObject{}Default Http headers.
onErrorFunction() => {}Default error handler. Invoked on every Query error.

Query

keytypeValueDescription
methodStringGETIf not defined QueryProvider defaultMethod is used.
headers: Object{}If not defined QueryProvider defaultHeaders is used.
urlStringRequired field, url that is added to QueryProvider endpoint.
skipBooleanfalseSkip fetch in React life cycle method.
variablesObject{}Variables to be used with Post request.
onCompletedFunction() => {}Callback to be invoked on successful request.
onErrorFunction() => {}Callback to be invoked on failed request. Fallback to QueryProvider onError callback.

};

Props passed to children function:

keytypeValueDescription
dataObjectResponse value.
errorBooleanFlag to indicate query error.
loadingBooleanFlag to indicate ongoing request.
fetchFunctionConditionally fetch

TODO

  • Add tests
  • Refactor code

License

MIT License. © Željko Marković 2018