Skip to content

Replace run-parallel-limit with p-limit#824

Draft
Copilot wants to merge 3 commits intov3from
copilot/replace-run-parallel-limit-with-p-limit
Draft

Replace run-parallel-limit with p-limit#824
Copilot wants to merge 3 commits intov3from
copilot/replace-run-parallel-limit-with-p-limit

Conversation

Copy link

Copilot AI commented Mar 26, 2026

Replaces the callback-based run-parallel-limit with the promise-based p-limit v7.3.0 (latest). Despite being ESM-only, it works because Node 22+ supports require() of synchronous ESM modules.

Changes

  • cleanTask.ts — Converted to async; fse.remove() already returns a promise, so callbacks are no longer needed
  • copyTask.ts — Converted to async; stream operations wrapped in promises with proper writeStream.on('finish') (previously used readStream.on('end') which could resolve before the write completes)
  • sassTask.tssass.render callbacks wrapped in promises; added missing .catch(reject) on the postcss promise chain
  • package.json — Added p-limit@^7.3.0, removed run-parallel-limit and @types/run-parallel-limit

Before/After

// Before (callback-based)
import parallelLimit = require('run-parallel-limit');
return function clean(done: (err: Error | null) => void) {
  const tasks = paths.map(p => (cb) => fse.remove(p, cb));
  parallelLimit(tasks, limit, done);
};

// After (promise-based)
import pLimit from 'p-limit';
return async function clean() {
  const limiter = pLimit(limit);
  await Promise.all(paths.map(p => limiter(() => fse.remove(p))));
};

Public API surface is unchanged per api-extractor.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • ofcncog2cu-dsn.algolia.net
    • Triggering command: /opt/hostedtoolcache/node/24.14.0/x64/bin/node /opt/hostedtoolcache/node/24.14.0/x64/bin/node /home/REDACTED/work/just/just/.yarn/releases/yarn-4.13.0.cjs add p-limit@latest (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits March 26, 2026 01:33
- Replace `run-parallel-limit` (callback-based) with `p-limit` v7.3.0 (promise-based)
- Remove `@types/run-parallel-limit` dev dependency (p-limit ships its own types)
- Update cleanTask.ts: convert to async function using p-limit
- Update copyTask.ts: convert to async function, wrap stream operations in promises
- Update sassTask.ts: wrap callback-based tasks in promises, use p-limit for concurrency

Co-authored-by: ecraig12345 <5864305+ecraig12345@users.noreply.github.com>
Agent-Logs-Url: https://github.com/microsoft/just/sessions/defe8523-a502-4f0a-9655-e353589f4cbb
…ing in sassTask

Co-authored-by: ecraig12345 <5864305+ecraig12345@users.noreply.github.com>
Agent-Logs-Url: https://github.com/microsoft/just/sessions/defe8523-a502-4f0a-9655-e353589f4cbb
Copilot AI changed the title [WIP] Replace run-parallel-limit with p-limit Replace run-parallel-limit with p-limit Mar 26, 2026
Copilot AI requested a review from ecraig12345 March 26, 2026 01:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants