Big news!Introducing Socket AI - ChatGPT-Powered Threat Analysis. Learn more
Socket
Log inDemoInstall

next-deploy-notifications

Package Overview
Dependencies
2
Maintainers
1
Versions
7
Issues
File Explorer

Advanced tools

next-deploy-notifications

This library lets your users know when you've deployed a new version of your Next.js application.

    0.1.6latest
    GitHub

Version published
Maintainers
1
Weekly downloads
327
decreased by-42.83%

Weekly downloads

Changelog

Source

v0.1.6

Bugfix

  • Allow typescript to resolve top module import

Readme

Source

Next.js Deploy Notifications

This library lets your users know when you've deployed a new version of your Next.js application.

Deploy notification

import { useHasNewDeploy } from "next-deploy-notifications"; function App() { let { hasNewDeploy } = useHasNewDeploy(); return ( <div> <main>Your app</main> {hasNewDeploy && ( <Notification> New version available! <button onClick={() => window.location.reload()}>Refresh</button> </Notification> )} </div> ); }

Installation

npm install next-deploy-notifications # or yarn add next-deploy-notifications

Setup

API Route

You'll first need to create a new API route in order for this library to work correctly. Paste the following into pages/api/has-new-deploy.js.

// pages/api/has-new-deploy.js export { APIRoute as default } from "next-deploy-notifications/api";

Usage

The useHasNewDeploy hook will tell you when a new version of your application has been deployed. This hook returns a hasNewDeploy property that's true whenever there's a new deploy.

import { useHasNewDeploy } from "next-deploy-notifications"; function Page() { let { hasNewDeploy } = useHasNewDeploy(); return hasNewDeploy && <div>A new deploy is available!</div>; }

The useHasNewDeploy hook will check for a new version of your application every 30 seconds. It will suspend checking for new versions if the application window is not focused by the user.

Development environments

When running in development this library will treat the current git commit as your application's version. If the latest git commit sha changes then useHasNewDeploy hook will react as if there was a new deploy.

To trigger a new commit without checking in code, you can use the following command:

git commit -m "Trigger useHasNewDeploy!" --allow-empty

It's worth noting that it can take up to 30 seconds for the application to see the git commit. You'll also need to make sure the application window is focused.

Production environments

This library works out of the box with the following hosting providers:

  • Vercel

    Note: Make sure you're application has "Automatically expose System Environment Variables" checked. This can be found in the Vercel dashboard under Settings > Environment variables.

  • Render

Other hosts

If your web host is not listed above you can add a custom version function in order to make this library work properly.

// pages/api/has-new-deploy.js import { APIRoute } from "next-deploy-notifications/api"; export APIRoute.configure({ // Return your app's version here. version: () => "123" })

The version function should return the current version of the application as a string. You can read from process.env, the file system, or even make network calls here.

If needed, version can be an async function or return a promise.

Whenever the value returned by version changes your application's users will be notified of a new deploy.

Please open a new issue if you are adding a custom version function for a well known web host. I'd love to make common hosts supported by default!

FAQs

Last updated on 12 Jun 2022

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc