New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

redux-path-store

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redux-path-store

Simplified react context store management leveraging the power of pathing objects.

  • 2.0.22
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
11
decreased by-84.06%
Maintainers
1
Weekly downloads
 
Created
Source

Redux Path Store

Simplified redux store management leveraging the power of pathing objects.

Introduction

A path store is simply an automatically generated redux store which includes the reducers and actions based upon the initial state it was provided.

Intuitive usage

Manage the redux state without having to dig into the management of updating reducers or actions. Manage the redux state like you would manage the local state.

Modern and Typed

Uses TypeScript out of the box and will only support the usage of React Hooks. The redux store paths are automatically typed for you to prevent miss spellings and add autofill for your IDE.

Light and minimalistic

Its only built with a few files as it mostly piggy backs off of "@redux/toolkit" and "object-path-immutable".

Redux DevTools

Works with Redux DevTools, the automatically generated actions will show up in the extension as normal.

Example

redux/rootStore.ts

interface RootState {
    farms: {name: string}[]
    farmer: {
      name: string
      details: {
        age: number
      }
    }
}

const initialState = {
    farms: [{name: 'Red Farm'}],
    farmer: {name: 'Bobby Red', details: {age: 50}}
}

const {store, pathMap} = createStoreFromState<RootState>(initialState)

// Normal redux store, packaged with auto generated actions/reducers based upon initialState.
export const rootStore = store

// A pathProp pathing map of your Store to be consumed by your "useReduxState" hook.
export const Root = pathMap

console.log(Root.farms) // "farms"
console.log(Root.farmer) // "farmer"
console.log(Root.farmer.details.age) // "farmer.details.age"
console.log(Root.doggy) // undefined, typescript error will occur.

components/Farms.tsx

import {Root} from './redux/rootStore'
import {useReduxState} from 'redux-path-store'

const Farms: React.FC = () => {
  // Local State
  const [animals, setAnimals] = useState([])

  // Redux State
  const [farmerAge, setFarmerAge] = useReduxState(Root.farmer.details.age)
  const [farms, setFarms] = useReduxState(Root.farms)
  const [farmer, setFarmer] = useReduxState(Root.farmer)
  
  useEffect(() => {
      // Redux action/reducer and dispatch all taken care of.
      setFarms((farms) => ({name: 'Blue Farm'})) // Action dispatched "FARMS"
      setFarmerAge(25) // Action dispatched "FARMER-DETAILS-AGE"
  }, [])

  return (<>
    {farms.map((farm) => <div>{farm.name}</div>)}
  </>)
}

FAQs

Package last updated on 07 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc