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 🙏

© 2026 – Pkg Stats / Ryan Hefner

endlessflow

v1.5.0

Published

A lightweight and customizable infinite scroll library

Readme

EndlessFlow

EndlessFlow is a lightweight and customizable infinite scroll library for React applications. It simplifies infinite scrolling with easy-to-use components.

For more details and documentation, visit EndlessFlow Website.

Features

  • Effortless infinite scrolling.
  • Customizable API integration.
  • Lightweight and simple to integrate.
  • Handles loading states and supports querying for filtering data.

Installation

Install via npm:

npm install endlessflow

Usage

Example Code

// Import the library
import useFetcher, { InfiniteScroll } from "endlessflow";
import { Loader2 } from "lucide-react";

const {
  datas: users, // Fetched data
  loading,         // Loading state
  hasMore,         // Indicates if there's more data to fetch
  next,            // Function to fetch the next set of data
} = useFetcher({
  endpoint: "/api/get-users-byquery",
  firstFilter: "recentlyAdded", // Optional filter
  secondFilter: id,             // Optional filter
  thirdFilter: "Default",       // Optional filter
  limit: 6,                     // Number of items per fetch (default: 5)
});

return (
  <>
    <div>
      {users.map((user) => (
        <div key={user.id}>{user.name}</div>
      ))}
    </div>

    <InfiniteScroll
      hasMore={hasMore}
      isLoading={loading}
      next={next}
      threshold={1} 
    >
      {hasMore && (
        <div className="flex font-bold text-xl justify-center items-center my-12">
            <Loader2 className="h-12 w-12 animate-spin text-black" />
            loading....
        </div>
      )}
    </InfiniteScroll>
  </>
);

API Reference

useFetcher

Parameters:

| Parameter | Type | Required | Description | | -------------- | -------- | -------- | -------------------------------------------------------- | | endpoint | String | Yes | The API endpoint to fetch data from. | | firstFilter | String | No | An optional filter to include in the API query. | | secondFilter | String | No | Another optional filter to include in the API query. | | thirdFilter | String | No | An optional third filter to include in the API query. | | limit | number | No | Number of items to fetch per request (default: 5). |

Returns:

| Return Value | Type | Description | | --------------- | ---------- | ------------------------------------------------ | | datas | Array | The fetched data. | | loading | Boolean | Indicates if the data is currently being loaded. | | hasMore | Boolean | Indicates if there is more data to fetch. | | next | Function | Function to fetch the next set of data. |


InfiniteScroll

Props:

| Prop | Type | Required | | ----------- | ---------- | -------- | | hasMore | Boolean | Yes | | isLoading | Boolean | Yes | | next | Function | Yes | | threshold | Number | yes |


Troubleshooting

TypeScript Users

If you encounter TypeScript issues with this library:

  • Ensure that your TypeScript configuration allows the use of third-party libraries without type definitions.
  • If necessary, temporarily use the //@ts-ignore directive above the import statement to suppress errors:
    //@ts-ignore
    import useFetcher, { InfiniteScroll } from "endlessflow";

License

This project is licensed under the ISC License.