npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

remote-file-monitor

v0.4.0

Published

English | [简体中文](./README-zh.md)

Downloads

56

Readme

English | 简体中文

Example

Remote file monitoring

This library is used to monitor whether the remote file has changed, and notify the user to refresh the page when it changes.

Principle

By leveraging the browser's cache negotiation mechanism, this library utilizes a Web Worker to periodically poll the entry file. If an update is detected, it notifies the user through the new Notification feature.

Install

Install the remote file monitoring library using npm:

npm install remote-file-monitor

Instructions

First, import the required modules and interface definitions, default configuration, out of the box:

import { remoteFileMonitor } from 'remote-file-monitor';

remoteFileMonitor()

Custom parameter example

import { remoteFileMonitor } from 'remote-file-monitor';

const config: WorkerConfig = {
   loopMs: 5000,
   checkFileUrl: 'https://example.com/index.html',
   enable: process.env.NODE_ENV !== 'development',
   clickCallback: () => {
     window.location.reload();
   },
   notification: {
     title: 'The page has been updated!',
     options: {
       dir: 'auto',
       body: 'Found a new update, please click to refresh the page',
       requireInteraction: true,
     },
   },
};

remoteFileMonitor(config);

This will check the remote file for changes at the specified interval and send a notification when it changes.

configuration items

The following configuration items are available and their descriptions:

|Params|Default|Required|describe| |---|---|---|--| |loopMs|10000|No|The time interval in milliseconds for file checking| |checkFileUrl|location.origin + /index.html|No|Defaults to the URL of the current page.| |enable|true|No|Whether it is enabled| |clickCallback|() => location.reload()|No|Click event| |notification| - |No|The notification is window.notification|

Precautions

  • Remote file monitoring needs to run in a browser that supports Web Workers.
  • If the browser does not support Web Workers, an error message will be output to the console.
  • Please ensure that cross-origin access to remote files is properly configured.
  • Remote file monitoring can only monitor files under the HTTPS protocol.
  • If the user suppresses the notification notification, it becomes invalid.