MCPcopy Index your code
hub / github.com/nodejs/node / createSyncPipeline

Function createSyncPipeline

lib/internal/streams/iter/pull.js:526–550  ·  view source on GitHub ↗

* Create a sync pipeline from source through transforms. * @yields {Uint8Array[]}

(source, transforms)

Source from the content-addressed store, hash-verified

524 * @yields {Uint8Array[]}
525 */
526function* createSyncPipeline(source, transforms) {
527 let current = source;
528
529 // Apply transforms - fuse consecutive stateless transforms into a single
530 // generator layer to avoid unnecessary generator ticks.
531 let statelessRun = [];
532
533 for (let i = 0; i < transforms.length; i++) {
534 const transform = transforms[i];
535 if (isTransformObject(transform)) {
536 if (statelessRun.length > 0) {
537 current = applyFusedStatelessSyncTransforms(current, statelessRun);
538 statelessRun = [];
539 }
540 current = applyStatefulSyncTransform(current, transform.transform);
541 } else {
542 ArrayPrototypePush(statelessRun, transform);
543 }
544 }
545 if (statelessRun.length > 0) {
546 current = applyFusedStatelessSyncTransforms(current, statelessRun);
547 }
548
549 yield* current;
550}
551
552// =============================================================================
553// Async Pipeline Implementation

Callers 2

[SymbolIterator]Function · 0.85
pipeToSyncFunction · 0.85

Calls 3

isTransformObjectFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…