Skip to content

Latest commit

 

History

600 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@codibre/fluent-iterable Monorepo

Monorepo for the @codibre/fluent-iterable ecosystem — LINQ-like fluent API operations for iterables, async iterables, streams, and events.

Packages

Package Description Version
libs/fluent-iterable Core library: @codibre/fluent-iterable — fluent operations for sync & async iterables npm
libs/augmentative-iterable augmentative-iterable — base iterable augmentation utilities used by the core npm
libs/fluent-iterable-rxjs @fluent-iterable/rxjs — RxJS integration plugin for fluent-iterable npm
libs/fluent-iterable-js-sdsl @fluent-iterable/js-sdsl — js-sdsl data structure plugin for fluent-iterable npm
libs/fluent-iterable-async-sema @fluent-iterable/async-sema — async-sema concurrency control integration for fluent-iterable npm

Getting Started

Prerequisites

  • Node.js >= 18
  • pnpm >= 11.1.3

Install Dependencies

pnpm install

Build All Packages

pnpm run build

Builds all libs with turbo, respecting inter-package dependencies (^build).

Test All Packages

pnpm run test
pnpm run test:cov   # with coverage

Lint All Packages

pnpm run lint
pnpm run lint:fix

Monorepo Structure

fluent-iterable/
├── libs/
│   ├── fluent-iterable          # @codibre/fluent-iterable (core)
│   ├── augmentative-iterable    # augmentative-iterable (base utils)
│   ├── fluent-iterable-rxjs     # @fluent-iterable/rxjs
│   ├── fluent-iterable-js-sdsl  # @fluent-iterable/js-sdsl
│   └── fluent-iterable-async-sema  # @fluent-iterable/async-sema
├── .github/workflows/           # CI: standard.yaml, publish.yaml
├── scripts/                     # Release helper scripts
├── pnpm-workspace.yaml          # Workspace config
├── turbo.json                   # Turbo task orchestration
└── package.json                 # Root monorepo entry

Releasing Packages

Each library can be released independently using release-it:

cd libs/fluent-iterable
pnpm exec release-it patch    # or minor / major

The CI pipeline (publish.yaml) auto-detects which libs need releasing by analyzing conventional commits via scripts/check-version-bump.sh.

Conventional Commits

Commit messages must follow Conventional Commits:

feat(iterable): add new flatMap operation
fix(rxjs): handle empty observable edge case
chore: update dependencies

Types allowed: feat, fix, docs, style, refactor, perf, test, chore, build, ci, revert.

License

MIT

About

An easy, optimized and powerful way to deal with Iterables, Async Iterables, Streams and Events

Resources

Stars

33 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages