diff --git a/src/pipeline/pipeline.ts b/src/pipeline/pipeline.ts index f4fac697..1f621ccc 100644 --- a/src/pipeline/pipeline.ts +++ b/src/pipeline/pipeline.ts @@ -95,11 +95,14 @@ class Pipeline extends EventEmitter> { if (!processor) return; const subSteps = this._steps.get(processor.type); - this._steps.set( - processor.type, - subSteps.filter((proc) => proc != processor), - ); - this.emit('updated', processor); + + if (subSteps && subSteps.length) { + this._steps.set( + processor.type, + subSteps.filter((proc) => proc != processor), + ); + this.emit('updated', processor); + } } /** diff --git a/tests/pipeline/pipeline.test.ts b/tests/pipeline/pipeline.test.ts index 3ccf06e1..8df1ad37 100644 --- a/tests/pipeline/pipeline.test.ts +++ b/tests/pipeline/pipeline.test.ts @@ -70,6 +70,8 @@ describe('Pipeline', () => { expect(pipeline.steps).toHaveLength(1); pipeline.unregister(null); expect(pipeline.steps).toHaveLength(1); + pipeline.unregister(new NoopProcessor()); + expect(pipeline.steps).toHaveLength(1); pipeline.unregister(proc); expect(pipeline.steps).toHaveLength(0); });