@playbooks/adapters
v0.13.0
Published
A collection of adapters for various projects.
Maintainers
Readme
Overview
A collection of networking adapters for various projects.
Each adapter offers a wrapper around a base networking library (ie cross-fetch) that will simplify your implementation.
For advanced scenarios, you can unpack the logic in each adapter and tailor it to your use-case.
By abstracting this logic into a package, we're able to reduce the boilerplate code necessary for each project.
Prerequisites
- @playbooks/utils
Installation
npm install @playbooks/adaptersUsage
import React from 'react';
import { BaseAdapter } from '@playbooks/adapters';
const StoreContext = React.createContext(null);
const StoreProvider = ({ children }) => {
// Computed
const client = new BaseAdapter({ domain: process.env.NEXT_PUBLIC_API_DOMAIN });
// Methods
const request = async ({ method = 'GET', url, headers, params, data }) => {
return await client.apiRequest({ method, url, headers, params, data });
};
// Render
return <StoreContext.Provider value={{ client, request }}>{children}</StoreContext.Provider>;
};
const useStore = () => {
return React.useContext(StoreContext);
};
export { StoreProvider, useStore };Development
This project uses yalc for local development.
- npm run dev
- switch to project
- npx yalc add @playbooks/adapters
- After that, this library should hot reload into the consuming application
Scripts
- We've included a couple of helpful scripts for faster development.
- deploy:
npm run deploy -- 'commit message' - publish:
npm run publish -- 'commit message' [major|minor|patch]
Husky
- Husky configuration is setup to lint and format the repo on every commit
- Edit the
.husky/pre-commitfile to change your settings
Author
Notes
To see this library in action, checkout the following projects:
