Skip to content

[Node.js] Rational, semantic functions for common Node.js iteration patterns.

License

Notifications You must be signed in to change notification settings

alexstevovich/iterational

Repository files navigation

iterational

Rational, semantic functions for common Node.js iteration patterns.

This package explores a structured approach to iteration, aiming to express intent clearly and to reduce refactoring friction.

Reasoning

This stems from a philosophical perspective on Node.js iteration patterns: different styles often lead to inconsistent bracket nesting, making refactoring require structural changes. Additionally, the intended iteration behavior is not always immediately clear.

iterational solves this by:

  • Making iteration intent explicit – Sync, sequential async, or parallel async.
  • Allowing easy experimentation – Swap iteration modes just by changing the function name.
  • Reducing syntax friction – Avoid deep nesting when working with async loops.

🔍 Standard vs. iterational Approach

Example of Standard Iterations Patterns

// Original (Sync)
items.forEach((item) => {
    //Process item here;
});

// Refactor to Sequential Async
for (const item of items) {
    await //Process item here;
}

// Refactor to Parallel Async
await Promise.all(items.map(async (item) => {
    await //Process item here;
}));

Iterationals Patterns

import { sync, seq, parallel } from 'iterational';

// Sync
sync(items, (item) => {
    //Process item here.
});

// Sequential Async
await seq(items, async (item) => {
    //Process item here.
});

// Parallel Async
await parallel(items, async (item) => {
    //Process item here.
});

Developer intent is clear from the function name, and switching between modes requires only changing the function—no structural refactoring needed.

Install

npm install iterational

API

sync( array, ( item ) => {...} )

Equivalent to .forEach().

seq( items, async ( item ) => {...})

Awaits each callback in order.

parallel(array, async ( item ) => {...})

Executes all async operations concurrently

Links

Development Homepage:

https://github.com/alexstevovich/iterational

This link might become iterational-node in the future if conflicts arise.

License

Licensed under the Apache License 2.0.

About

[Node.js] Rational, semantic functions for common Node.js iteration patterns.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published