From dbb34318133f27304b533f8a33a005146af6690c Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Sun, 16 Feb 2025 21:05:04 +0700 Subject: [PATCH 1/5] add `"./package.json": "./package.json",` in `exports` field in `package.json` --- packages/svelte/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/svelte/package.json b/packages/svelte/package.json index aa8c1e9c..ff62df7c 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -34,6 +34,7 @@ "type": "module", "module": "./dist/lib/index.js", "exports": { + "./package.json": "./package.json", ".": { "types": "./dist/lib/index.d.ts", "svelte": "./dist/lib/index.js", From 3e80317cf6da0e9fdc111c3ade88f2a88a10dbd6 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Sun, 16 Feb 2025 21:06:58 +0700 Subject: [PATCH 2/5] Create few-rice-drive.md --- .changeset/few-rice-drive.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/few-rice-drive.md diff --git a/.changeset/few-rice-drive.md b/.changeset/few-rice-drive.md new file mode 100644 index 00000000..c72268c3 --- /dev/null +++ b/.changeset/few-rice-drive.md @@ -0,0 +1,5 @@ +--- +"@xyflow/svelte": patch +--- + +add `"./package.json": "./package.json",` in `exports` field in `package.json` From 5867bba8050d07378a45a2026557c4bce7bda239 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Thu, 20 Feb 2025 16:03:44 +0700 Subject: [PATCH 3/5] lint: remove unnecessary type assertion --- .changeset/warm-pandas-retire.md | 5 +++++ .../react/src/components/BatchProvider/index.tsx | 4 ++-- packages/react/src/container/ZoomPane/index.tsx | 2 +- packages/react/src/hooks/useReactFlow.ts | 6 +++--- packages/react/src/hooks/useResizeHandler.ts | 2 +- packages/react/src/store/index.ts | 12 ++++++------ tooling/eslint-config/src/index.js | 11 +++++++++++ 7 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 .changeset/warm-pandas-retire.md diff --git a/.changeset/warm-pandas-retire.md b/.changeset/warm-pandas-retire.md new file mode 100644 index 00000000..8da07c81 --- /dev/null +++ b/.changeset/warm-pandas-retire.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +lint: remove unnecessary type assertion diff --git a/packages/react/src/components/BatchProvider/index.tsx b/packages/react/src/components/BatchProvider/index.tsx index 5a5d1ed3..0ef7e399 100644 --- a/packages/react/src/components/BatchProvider/index.tsx +++ b/packages/react/src/components/BatchProvider/index.tsx @@ -35,7 +35,7 @@ export function BatchProvider[]) => { const { edges = [], setEdges, hasDefaultEdges, onEdgesChange, edgeLookup } = store.getState(); - let next = edges as EdgeType[]; + let next = edges; for (const payload of queueItems) { next = typeof payload === 'function' ? payload(next) : payload; } diff --git a/packages/react/src/container/ZoomPane/index.tsx b/packages/react/src/container/ZoomPane/index.tsx index 35fbb248..61af78e6 100644 --- a/packages/react/src/container/ZoomPane/index.tsx +++ b/packages/react/src/container/ZoomPane/index.tsx @@ -95,7 +95,7 @@ export function ZoomPane({ }, }); - const { x, y, zoom } = panZoom.current!.getViewport(); + const { x, y, zoom } = panZoom.current.getViewport(); store.setState({ panZoom: panZoom.current, diff --git a/packages/react/src/hooks/useReactFlow.ts b/packages/react/src/hooks/useReactFlow.ts index 57b2e001..8ffb15a6 100644 --- a/packages/react/src/hooks/useReactFlow.ts +++ b/packages/react/src/hooks/useReactFlow.ts @@ -95,7 +95,7 @@ export function useReactFlow prevNodes.map((node) => { if (node.id === id) { - const nextNode = typeof nodeUpdate === 'function' ? nodeUpdate(node as NodeType) : nodeUpdate; + const nextNode = typeof nodeUpdate === 'function' ? nodeUpdate(node) : nodeUpdate; return options.replace && isNode(nextNode) ? (nextNode as NodeType) : { ...node, ...nextNode }; } @@ -112,7 +112,7 @@ export function useReactFlow prevEdges.map((edge) => { if (edge.id === id) { - const nextEdge = typeof edgeUpdate === 'function' ? edgeUpdate(edge as EdgeType) : edgeUpdate; + const nextEdge = typeof edgeUpdate === 'function' ? edgeUpdate(edge) : edgeUpdate; return options.replace && isEdge(nextEdge) ? (nextEdge as EdgeType) : { ...edge, ...nextEdge }; } @@ -207,7 +207,7 @@ export function useReactFlow { const internalNode = store.getState().nodeLookup.get(n.id); - if (internalNode && !isRect && (n.id === nodeOrRect!.id || !internalNode.internals.positionAbsolute)) { + if (internalNode && !isRect && (n.id === nodeOrRect.id || !internalNode.internals.positionAbsolute)) { return false; } diff --git a/packages/react/src/hooks/useResizeHandler.ts b/packages/react/src/hooks/useResizeHandler.ts index 2db37499..4348208a 100644 --- a/packages/react/src/hooks/useResizeHandler.ts +++ b/packages/react/src/hooks/useResizeHandler.ts @@ -16,7 +16,7 @@ export function useResizeHandler(domNode: MutableRefObject createSelectionChange(nodeId, true)); - triggerNodeChanges(nodeChanges as NodeSelectionChange[]); + triggerNodeChanges(nodeChanges); return; } @@ -240,7 +240,7 @@ const createStore = ({ if (multiSelectionActive) { const changedEdges = selectedEdgeIds.map((edgeId) => createSelectionChange(edgeId, true)); - triggerEdgeChanges(changedEdges as EdgeSelectionChange[]); + triggerEdgeChanges(changedEdges); return; } @@ -265,8 +265,8 @@ const createStore = ({ }); const edgeChanges = edgesToUnselect.map((edge) => createSelectionChange(edge.id, false)); - triggerNodeChanges(nodeChanges as NodeSelectionChange[]); - triggerEdgeChanges(edgeChanges as EdgeSelectionChange[]); + triggerNodeChanges(nodeChanges); + triggerEdgeChanges(edgeChanges); }, setMinZoom: (minZoom) => { const { panZoom, maxZoom } = get(); @@ -292,11 +292,11 @@ const createStore = ({ const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get(); const nodeChanges = nodes.reduce( - (res, node) => (node.selected ? [...res, createSelectionChange(node.id, false) as NodeSelectionChange] : res), + (res, node) => (node.selected ? [...res, createSelectionChange(node.id, false)] : res), [] ); const edgeChanges = edges.reduce( - (res, edge) => (edge.selected ? [...res, createSelectionChange(edge.id, false) as EdgeSelectionChange] : res), + (res, edge) => (edge.selected ? [...res, createSelectionChange(edge.id, false)] : res), [] ); diff --git a/tooling/eslint-config/src/index.js b/tooling/eslint-config/src/index.js index f2ce34a0..0a80797e 100644 --- a/tooling/eslint-config/src/index.js +++ b/tooling/eslint-config/src/index.js @@ -29,4 +29,15 @@ module.exports = { rules: { '@typescript-eslint/no-non-null-assertion': 'off', }, + overrides: [ + { + files: ['**/*.{ts,tsx,cts,mts}'], + parserOptions: { + projectService: true, + }, + rules: { + '@typescript-eslint/no-unnecessary-type-assertion': 'error', + }, + }, + ], }; From 602627f5cc688c2e15c20196ea41987344cba714 Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Fri, 21 Feb 2025 16:31:59 +0100 Subject: [PATCH 4/5] Update few-rice-drive.md --- .changeset/few-rice-drive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/few-rice-drive.md b/.changeset/few-rice-drive.md index c72268c3..ad46f2fe 100644 --- a/.changeset/few-rice-drive.md +++ b/.changeset/few-rice-drive.md @@ -2,4 +2,4 @@ "@xyflow/svelte": patch --- -add `"./package.json": "./package.json",` in `exports` field in `package.json` +Add `"./package.json" to the `exports` field so that users can import it From cb55ff26ef17e3c1692d6c93590abfc2cdd3ddae Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Fri, 21 Feb 2025 16:38:08 +0100 Subject: [PATCH 5/5] Update warm-pandas-retire.md --- .changeset/warm-pandas-retire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/warm-pandas-retire.md b/.changeset/warm-pandas-retire.md index 8da07c81..ee52510c 100644 --- a/.changeset/warm-pandas-retire.md +++ b/.changeset/warm-pandas-retire.md @@ -2,4 +2,4 @@ '@xyflow/react': patch --- -lint: remove unnecessary type assertion +lint: remove unnecessary type assertions