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

chokro-loop

v1.0.2

Published

A **higher-order loop function** for JavaScript that behaves like a flexible `for` or `while` loop. This package allows you to define your own loop logic with **custom start values, test conditions, update rules, and body functions**.

Downloads

4

Readme

loop

A higher-order loop function for JavaScript that behaves like a flexible for or while loop. This package allows you to define your own loop logic with custom start values, test conditions, update rules, and body functions.


Table of Contents


Installation

Install via NPM:

npm install loop

Or using Yarn:

yarn add loop

Usage

Import the loop function:

const loop = require('loop');

// Or with ES Modules
import loop from 'loop';

API

loop(value, test, update, body)

A higher-order function that simulates a customizable loop.

Parameters

  • value
    Type: any
    Description: The initial value to start the loop with.

  • test
    Type: (currentValue) => boolean
    Description: A function that is called before each iteration. The loop continues only if it returns true.

  • update
    Type: (currentValue) => any
    Description: A function that generates the next value for the loop after each iteration.

  • body
    Type: (currentValue) => void
    Description: A function called on each iteration, receiving the current loop value. This is where you put the code to execute.

Return Value

The function does not return a value. It executes the body function for each iteration until the test function returns false.


Examples

Basic Countdown

const loop = require('loop');

loop(
    3,                 // starting value
    (i) => i > 0,      // test function
    (i) => --i,        // update function
    (i) => console.log(i)  // body function
);

// Output:
// 3
// 2
// 1

Count Up

loop(
    0,
    (i) => i < 5,
    (i) => i + 1,
    (i) => console.log(`Current value: ${i}`)
);

// Output:
// Current value: 0
// Current value: 1
// Current value: 2
// Current value: 3
// Current value: 4

Custom Step

loop(
    10,
    (i) => i > 0,
    (i) => i - 2,
    (i) => console.log(i)
);

// Output:
// 10
// 8
// 6
// 4
// 2

Advanced Usage

  • You can pass any type as value (number, object, array, etc.)
  • test and update can contain complex logic, enabling dynamic loops.
  • This function can replace traditional for or while loops in functional programming styles.