function processFindFilesResponse()

in src/parallel-process-queue.ts [103:148]


function processFindFilesResponse(
  pid: number,
  response: ParallelProcess.FindFilesResponse,
) {
  const requestId = response.requestId;
  const currentCount = requestIdToCount.get(requestId, 0);
  if (currentCount == 0) {
    return;
  }

  requestIdToCount = requestIdToCount.set(requestId, currentCount - 1);

  const source = requestIdToSequenceSource.get(requestId);
  if (source) {
    for (var i = 0; i < response.foundFilePaths.length; i++) {
      source.nextValue(response.foundFilePaths[i]);
    }
  }

  for (var j = 0; j < response.foundDirectoriesToSearch.length; j++) {
    const directoryToScan: File.AbsoluteFilePath =
      response.foundDirectoriesToSearch[j];
    const queueRequest: ParallelProcess.Request = {
      requestType: ParallelProcess.RequestType.findFilesRequest,
      findFilesRequest: {
        requestId: requestId,
        directoryToSearch: directoryToScan,
        fileExtension: response.fileExtension,
      },
    };
    dispatchFindFilesRequest(queueRequest);
  }

  requestIdToCount = requestIdToCount.set(
    requestId,
    currentCount - 1 + response.foundDirectoriesToSearch.length,
  );

  if (requestIdToCount.get(requestId, 0) === 0) {
    if (source) {
      source.finished();
    }
    requestIdToCount = requestIdToCount.remove(requestId);
    requestIdToSequenceSource = requestIdToSequenceSource.remove(requestId);
  }
}