chore(v3.3): transformation helpers + lazy companion RFC roadmap
@ramongr is already working on this.
Since May 5, 2026.
Assessment
This issue has not been assessed yet.
Description
v3.3 — Transformation helpers + lazy companion RFC (additive)
Third post-3.0 wave. Adds predicate-driven chunking, zip/unzip, and an RFC
for the lazy/iterator companion. Non-breaking.
Transformation helpers (E3)
-
chunkBy(values, { predicate })— group consecutive items while the
predicate matches; new filesrc/transformations/chunkBy.ts -
chunkWhile(values, { predicate })— predicate over(prev, curr);
starts a new chunk when the predicate returnsfalse - Tests, docs entry under
docs/transformations.md, README API table
update,CHANGELOG.mdentry
Pair helpers (E4)
- #43
zip(left, right)— pair-of-data, fits the carve-out (positional) - #44
unzip(pairs)— single-arg, positional - Tests, docs entry under
docs/transformations.md, README API table
update,CHANGELOG.mdentry
Inherited from v2.3 (re-homed when v2.x went patch-only)
All of the following follow the v3 calling convention (data-first +
options-object) where they take more than one argument. Each ships
self-contained per AGENTS.md (impl + tests + docs + README + CHANGELOG).
- #12
combinations(values, { size })— k-combinations - #13
cycle(values, { times })— repeat an array N times - #40
sample(values, { rng? })— random pick - #41
sampleSize(values, { size, rng? })— random subset - #45
shuffle(values, { rng? })— immutable Fisher–Yates - #46
rotate(values, { by })— cyclic shift - #47
intersperse(values, { separator }) - #48
windows(values, { size, step? })— sliding window
Lazy companion (E5) — RFC only
- Design RFC issue — scoping for
op-array/lazy(iterator and
async-iterator companion). Covers: subpath layout, calling
convention (data-first + options carries over), interaction with
existing eager API, prior-art comparison (iter-tools, IxJS,
itertools-ts), TypeScript inference strategy - Implementation slips to v3.4 or later — v3.3 only commits the
design to writing
Process
- All PRs target
main,additivelabel, reference this issue - Released as
3.3.0once the chunk* and zip/unzip helpers ship and the
E5 RFC issue is opened
Refs #86
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ramongr/op-array
-
additive v3-accepted
-
additive v3-accepted
-
chore(v3.0): roadmap Openbreaking-change v3-accepted
All issues in ramongr/op-array
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·