1.1.2 • Published 6 months ago

blest-react v1.1.2

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

BLEST React

A React client for BLEST (Batch-able, Lightweight, Encrypted State Transfer), an improved communication protocol for web APIs which leverages JSON, supports request batching by default, and provides a modern alternative to REST.

To learn more about BLEST, please visit the website: https://blest.jhunt.dev

Features

  • Built on JSON - Reduce parsing time and overhead
  • Request Batching - Save bandwidth and reduce load times
  • Compact Payloads - Save even more bandwidth
  • Single Endpoint - Reduce complexity and facilitate introspection
  • Fully Encrypted - Improve data privacy

Installation

Install BLEST React from npm

With npm:

npm install --save blest-react

or using yarn:

yarn add blest-react

Usage

Wrap your app (or just part of it) with BlestProvider.

import React from 'react'
import { BlestProvider } from 'blest-react'

const blestOptions = {
  maxBatchSize: 25,
  bufferDelay: 10,
  httpHeaders: { Authorization: 'Bearer token' }
}

const App = () => {
  return (
    <BlestProvider
      url='http://localhost:8080'
      options={blestOptions}
    >
      {/* Your app here */}
    </BlestProvider>
  )
}

Use the useBlestRequest hook to perform passive requests on mount and when parameters change.

import { useBlestRequest } from 'blest-react'

const MyComponent = () => {
  const { data, loading, error } = useBlestRequest(
    'listItems', // route
    { limit: 24 }, // body
    { select: ['edges', ['pageInfo', ['endCursor', 'hasNextPage']]] } // options
  )

  return (
    // Your component here
  )
}

Use the useBlestLazyRequest hook to generate a request function you can call when needed.

import { useBlestLazyRequest } from 'blest-react'

const MyForm = () => {
  const [submitForm, { data, loading, error }] = useBlestLazyRequest(
    'submitForm', // route
    { select: ['success'] } // options
  )

  const handleSubmit = (values) => {
    submitForm(values)
  }

  return (
    // Your form here
  )
}

License

This project is licensed under the MIT License.

1.1.1

6 months ago

1.1.0

6 months ago

1.0.9

6 months ago

1.0.8

6 months ago

1.1.2

6 months ago

1.0.2

7 months ago

1.0.7

7 months ago

1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.1

7 months ago

1.0.0

9 months ago

0.1.25

11 months ago

0.1.24

12 months ago

0.1.22

1 year ago

0.1.20

1 year ago

0.1.21

1 year ago

0.1.19

1 year ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.16

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago