diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts index d4cf8a863e..88593754bc 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -24,17 +24,6 @@ describe('DependencyTree', () => { expect(empty.detectCircularDependency()).toBeUndefined(); }); - it('should reject multiple producers', () => { - expect(() => - DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['a'] }, - }), - ).toThrow( - "Dependency conflict detected, 'a' may not be produced by both '1' and '2'", - ); - }); - it('should detect circular dependencies', () => { expect( DependencyTree.fromMap({ diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts index fe915cfa9d..a11ce3cbaf 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ConflictError, ForwardedError, InputError } from '@backstage/errors'; +import { ForwardedError, InputError } from '@backstage/errors'; interface NodeInput { id: string; @@ -62,26 +62,16 @@ export class DependencyTree { #allProduced: Set; #allConsumed: Set; - #producedBy: Map; #consumedBy: Map>; private constructor(readonly nodes: Map) { this.#allProduced = new Set(); this.#allConsumed = new Set(); - this.#producedBy = new Map(); this.#consumedBy = new Map(); for (const node of this.nodes.values()) { for (const produced of node.produces) { this.#allProduced.add(produced); - if (this.#producedBy.has(produced)) { - throw new ConflictError( - `Dependency conflict detected, '${produced}' may not be produced by both '${this.#producedBy.get( - produced, - )}' and '${node.id}'`, - ); - } - this.#producedBy.set(produced, node.id); } for (const consumed of node.consumes) { this.#allConsumed.add(consumed);