* Create a sync pipeline from source through transforms. * @yields {Uint8Array[]}
(source, transforms)
| 524 | * @yields {Uint8Array[]} |
| 525 | */ |
| 526 | function* 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 |
no test coverage detected
searching dependent graphs…