From 067d9d0fbf304180daaf15466bbff0023ad8d030 Mon Sep 17 00:00:00 2001 From: Sebastian Lorenz Date: Wed, 29 Oct 2025 13:43:01 +0100 Subject: [PATCH 1/4] backport graph module changes (#5660) Co-authored-by: Mattia Manzati --- .changeset/good-regions-care.md | 5 +++++ packages/effect/src/Graph.ts | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 .changeset/good-regions-care.md diff --git a/.changeset/good-regions-care.md b/.changeset/good-regions-care.md new file mode 100644 index 00000000000..24054176b55 --- /dev/null +++ b/.changeset/good-regions-care.md @@ -0,0 +1,5 @@ +--- +"effect": minor +--- + +Backport `Graph` module updates diff --git a/packages/effect/src/Graph.ts b/packages/effect/src/Graph.ts index 59f1cf509c0..7ded75b4f6e 100644 --- a/packages/effect/src/Graph.ts +++ b/packages/effect/src/Graph.ts @@ -1493,11 +1493,6 @@ export const neighbors = ( graph: Graph | MutableGraph, nodeIndex: NodeIndex ): Array => { - // For undirected graphs, use the specialized helper that returns the other endpoint - if (graph.type === "undirected") { - return getUndirectedNeighbors(graph as any, nodeIndex) - } - const adjacencyList = graph.adjacency.get(nodeIndex) if (adjacencyList === undefined) { return [] From 8489801c97457c535df9a47e78aab679a44fd4e6 Mon Sep 17 00:00:00 2001 From: vinassefranche Date: Tue, 14 Oct 2025 17:28:30 +0200 Subject: [PATCH 2/4] Add changeset --- .changeset/gold-doors-wish.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/gold-doors-wish.md diff --git a/.changeset/gold-doors-wish.md b/.changeset/gold-doors-wish.md new file mode 100644 index 00000000000..ea03a8eae9d --- /dev/null +++ b/.changeset/gold-doors-wish.md @@ -0,0 +1,5 @@ +--- +"effect": patch +--- + +Add `Chunk.getSomes` From a27af919565de9a3610e45ebb451b81d0dfe7b1c Mon Sep 17 00:00:00 2001 From: vinassefranche Date: Tue, 14 Oct 2025 17:28:40 +0200 Subject: [PATCH 3/4] Add Chunk.getSomes --- packages/effect/src/Chunk.ts | 7 +++++++ packages/effect/test/Chunk.test.ts | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/packages/effect/src/Chunk.ts b/packages/effect/src/Chunk.ts index 8afd6da9f17..4fb4ff819da 100644 --- a/packages/effect/src/Chunk.ts +++ b/packages/effect/src/Chunk.ts @@ -1493,3 +1493,10 @@ export const difference: { 2, (self: Chunk, that: Chunk): Chunk => unsafeFromArray(RA.difference(that, self)) ) + +/** + * @category filtering + * @since 3.20.0 + */ +export const getSomes: (self: Chunk>) => Chunk = (self) => + unsafeFromArray(RA.getSomes(toReadonlyArray(self))) diff --git a/packages/effect/test/Chunk.test.ts b/packages/effect/test/Chunk.test.ts index 55d8de45fe4..02fb869ca3c 100644 --- a/packages/effect/test/Chunk.test.ts +++ b/packages/effect/test/Chunk.test.ts @@ -887,4 +887,9 @@ describe("Chunk", () => { assertEquals(Chunk.difference(curr, Chunk.empty()), Chunk.empty()) assertEquals(Chunk.difference(curr, curr), Chunk.empty()) }) + + it("getSomes", () => { + assertEquals(Chunk.getSomes(Chunk.empty()), Chunk.empty()) + assertEquals(Chunk.getSomes(Chunk.make(Option.some(1), Option.none())), Chunk.of(1)) + }) }) From d2d9dbd1c62089375d14719109d24d1e070fad06 Mon Sep 17 00:00:00 2001 From: vinassefranche Date: Tue, 4 Nov 2025 09:42:30 +0100 Subject: [PATCH 4/4] Remove bad things from rebase --- .changeset/good-regions-care.md | 5 ----- packages/effect/src/Graph.ts | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 .changeset/good-regions-care.md diff --git a/.changeset/good-regions-care.md b/.changeset/good-regions-care.md deleted file mode 100644 index 24054176b55..00000000000 --- a/.changeset/good-regions-care.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"effect": minor ---- - -Backport `Graph` module updates diff --git a/packages/effect/src/Graph.ts b/packages/effect/src/Graph.ts index 7ded75b4f6e..59f1cf509c0 100644 --- a/packages/effect/src/Graph.ts +++ b/packages/effect/src/Graph.ts @@ -1493,6 +1493,11 @@ export const neighbors = ( graph: Graph | MutableGraph, nodeIndex: NodeIndex ): Array => { + // For undirected graphs, use the specialized helper that returns the other endpoint + if (graph.type === "undirected") { + return getUndirectedNeighbors(graph as any, nodeIndex) + } + const adjacencyList = graph.adjacency.get(nodeIndex) if (adjacencyList === undefined) { return []