Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
next-redux-wrapper
Advanced tools
The next-redux-wrapper package is a utility that helps integrate Redux with Next.js applications. It simplifies the process of setting up Redux in a Next.js environment by providing a higher-order component (HOC) that can wrap the Next.js App component, ensuring that the Redux store is properly initialized and available throughout the application.
Store Initialization
This feature allows you to initialize a Redux store and wrap your Next.js application with it. The `createWrapper` function from next-redux-wrapper is used to create a wrapper that can be applied to the Next.js App component.
import { createStore } from 'redux';
import { createWrapper } from 'next-redux-wrapper';
const reducer = (state = { count: 0 }, action) => {
switch (action.type) {
case 'INCREMENT':
return { ...state, count: state.count + 1 };
default:
return state;
}
};
const makeStore = () => createStore(reducer);
export const wrapper = createWrapper(makeStore);
Server-Side Rendering (SSR) with Redux
This feature demonstrates how to use next-redux-wrapper to handle server-side rendering with Redux. The `getServerSideProps` function is wrapped with `wrapper.getServerSideProps`, allowing you to dispatch actions and access the Redux store on the server side.
import { wrapper } from '../store';
const Page = ({ count }) => (
<div>
<h1>Count: {count}</h1>
</div>
);
export const getServerSideProps = wrapper.getServerSideProps((store) => async () => {
store.dispatch({ type: 'INCREMENT' });
return { props: { count: store.getState().count } };
});
export default Page;
Static Site Generation (SSG) with Redux
This feature shows how to use next-redux-wrapper for static site generation with Redux. The `getStaticProps` function is wrapped with `wrapper.getStaticProps`, enabling you to dispatch actions and access the Redux store during the build process.
import { wrapper } from '../store';
const Page = ({ count }) => (
<div>
<h1>Count: {count}</h1>
</div>
);
export const getStaticProps = wrapper.getStaticProps((store) => async () => {
store.dispatch({ type: 'INCREMENT' });
return { props: { count: store.getState().count } };
});
export default Page;
The next-redux-saga package integrates Redux-Saga with Next.js. It provides a similar HOC to wrap the Next.js App component, but it focuses on managing side effects using Redux-Saga. Compared to next-redux-wrapper, it adds the capability to handle complex asynchronous flows with sagas.
The next-redux-cookie-wrapper package extends next-redux-wrapper by adding support for persisting Redux state in cookies. This is useful for maintaining state across server and client in a Next.js application. It offers similar functionality to next-redux-wrapper but with added state persistence capabilities.
FAQs
Redux wrapper for Next.js
We found that next-redux-wrapper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.