Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/souporserious/next-remote-refresh

Enable Fast Refresh for remote data in Next.js
https://github.com/souporserious/next-remote-refresh

Last synced: 5 days ago
JSON representation

Enable Fast Refresh for remote data in Next.js

Awesome Lists containing this project

README

        

# next-remote-refresh

Utilize Fast Refresh for remote data in Next.js. See the [example](/example) for setup.

## Install

```bash
yarn add next-remote-refresh --dev
```

```bash
npm install next-remote-refresh --save-dev
```

## Usage

### plugin

Add and configure plugin in `next.config.mjs`:

```js
// next.config.mjs
import { resolve } from 'node:path'
import createRemoteRefresh from 'next-remote-refresh'

const withRemoteRefresh = createRemoteRefresh({
paths: [resolve(__dirname, './package.json')],
ignored: '**/*.json',
})

export default withRemoteRefresh({ ...next config here })
```

### `useRemoteRefresh` hook

Add the `useRemoteRefresh` hook to the top-level component in your app. You may also configure when the app should refresh based on the changed `path`:

```jsx
import { useRouter } from 'next/router'
import { useRemoteRefresh } from 'next-remote-refresh/hook'
import path from 'path'

function App({ name, version }) {
const router = useRouter()

useRemoteRefresh({
shouldRefresh: (path) => path.includes(router.query.slug),
})

return (


Package: {name} Version: {version}

)
}

export function getStaticProps() {
return {
props: path.resolve(process.cwd(), './package.json', 'utf-8'),
}
}
```

## Development

```bash
yarn install && yarn link
cd example
yarn install && yarn link next-remote-refresh
yarn dev
```

## Related

[Refreshing Server-Side Props](https://www.joshwcomeau.com/nextjs/refreshing-server-side-props/)

[next-remote-watch](https://github.com/hashicorp/next-remote-watch)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Travis Arnold
Travis Arnold

💻 📖
Joshua Comeau
Joshua Comeau

🤔
Fatih Kalifa
Fatih Kalifa

💻 📖
Jason Brown
Jason Brown

📖
Paco
Paco

💻
Arnav Gosain
Arnav Gosain

💻
Tim Davis
Tim Davis

💻


Kyle Herock
Kyle Herock

💻
Maggie Liu
Maggie Liu

💻
Patrick Kerschbaum
Patrick Kerschbaum

💻
Ajit
Ajit

🤔
Thomas Jan Uta
Thomas Jan Uta

💻

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!