lint: remove unnecessary type assertion

This commit is contained in:
Dimitri POSTOLOV
2025-02-20 16:03:44 +07:00
parent e041720a41
commit 5867bba805
7 changed files with 29 additions and 13 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@xyflow/react': patch
---
lint: remove unnecessary type assertion
@@ -35,7 +35,7 @@ export function BatchProvider<NodeType extends Node = Node, EdgeType extends Edg
* this queue is a relatively hot path so we'd like to avoid the overhead of * this queue is a relatively hot path so we'd like to avoid the overhead of
* array methods where we can. * array methods where we can.
*/ */
let next = nodes as NodeType[]; let next = nodes;
for (const payload of queueItems) { for (const payload of queueItems) {
next = typeof payload === 'function' ? payload(next) : payload; next = typeof payload === 'function' ? payload(next) : payload;
} }
@@ -56,7 +56,7 @@ export function BatchProvider<NodeType extends Node = Node, EdgeType extends Edg
const edgeQueueHandler = useCallback((queueItems: QueueItem<EdgeType>[]) => { const edgeQueueHandler = useCallback((queueItems: QueueItem<EdgeType>[]) => {
const { edges = [], setEdges, hasDefaultEdges, onEdgesChange, edgeLookup } = store.getState(); const { edges = [], setEdges, hasDefaultEdges, onEdgesChange, edgeLookup } = store.getState();
let next = edges as EdgeType[]; let next = edges;
for (const payload of queueItems) { for (const payload of queueItems) {
next = typeof payload === 'function' ? payload(next) : payload; next = typeof payload === 'function' ? payload(next) : payload;
} }
@@ -95,7 +95,7 @@ export function ZoomPane({
}, },
}); });
const { x, y, zoom } = panZoom.current!.getViewport(); const { x, y, zoom } = panZoom.current.getViewport();
store.setState({ store.setState({
panZoom: panZoom.current, panZoom: panZoom.current,
+3 -3
View File
@@ -95,7 +95,7 @@ export function useReactFlow<NodeType extends Node = Node, EdgeType extends Edge
setNodes((prevNodes) => setNodes((prevNodes) =>
prevNodes.map((node) => { prevNodes.map((node) => {
if (node.id === id) { 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 }; return options.replace && isNode(nextNode) ? (nextNode as NodeType) : { ...node, ...nextNode };
} }
@@ -112,7 +112,7 @@ export function useReactFlow<NodeType extends Node = Node, EdgeType extends Edge
setEdges((prevEdges) => setEdges((prevEdges) =>
prevEdges.map((edge) => { prevEdges.map((edge) => {
if (edge.id === id) { 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 }; return options.replace && isEdge(nextEdge) ? (nextEdge as EdgeType) : { ...edge, ...nextEdge };
} }
@@ -207,7 +207,7 @@ export function useReactFlow<NodeType extends Node = Node, EdgeType extends Edge
return (nodes || store.getState().nodes).filter((n) => { return (nodes || store.getState().nodes).filter((n) => {
const internalNode = store.getState().nodeLookup.get(n.id); 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; return false;
} }
+1 -1
View File
@@ -16,7 +16,7 @@ export function useResizeHandler(domNode: MutableRefObject<HTMLDivElement | null
if (!domNode.current) { if (!domNode.current) {
return false; return false;
} }
const size = getDimensions(domNode.current!); const size = getDimensions(domNode.current);
if (size.height === 0 || size.width === 0) { if (size.height === 0 || size.width === 0) {
store.getState().onError?.('004', errorMessages['error004']()); store.getState().onError?.('004', errorMessages['error004']());
+6 -6
View File
@@ -228,7 +228,7 @@ const createStore = ({
if (multiSelectionActive) { if (multiSelectionActive) {
const nodeChanges = selectedNodeIds.map((nodeId) => createSelectionChange(nodeId, true)); const nodeChanges = selectedNodeIds.map((nodeId) => createSelectionChange(nodeId, true));
triggerNodeChanges(nodeChanges as NodeSelectionChange[]); triggerNodeChanges(nodeChanges);
return; return;
} }
@@ -240,7 +240,7 @@ const createStore = ({
if (multiSelectionActive) { if (multiSelectionActive) {
const changedEdges = selectedEdgeIds.map((edgeId) => createSelectionChange(edgeId, true)); const changedEdges = selectedEdgeIds.map((edgeId) => createSelectionChange(edgeId, true));
triggerEdgeChanges(changedEdges as EdgeSelectionChange[]); triggerEdgeChanges(changedEdges);
return; return;
} }
@@ -265,8 +265,8 @@ const createStore = ({
}); });
const edgeChanges = edgesToUnselect.map((edge) => createSelectionChange(edge.id, false)); const edgeChanges = edgesToUnselect.map((edge) => createSelectionChange(edge.id, false));
triggerNodeChanges(nodeChanges as NodeSelectionChange[]); triggerNodeChanges(nodeChanges);
triggerEdgeChanges(edgeChanges as EdgeSelectionChange[]); triggerEdgeChanges(edgeChanges);
}, },
setMinZoom: (minZoom) => { setMinZoom: (minZoom) => {
const { panZoom, maxZoom } = get(); const { panZoom, maxZoom } = get();
@@ -292,11 +292,11 @@ const createStore = ({
const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get(); const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get();
const nodeChanges = nodes.reduce<NodeSelectionChange[]>( const nodeChanges = nodes.reduce<NodeSelectionChange[]>(
(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<EdgeSelectionChange[]>( const edgeChanges = edges.reduce<EdgeSelectionChange[]>(
(res, edge) => (edge.selected ? [...res, createSelectionChange(edge.id, false) as EdgeSelectionChange] : res), (res, edge) => (edge.selected ? [...res, createSelectionChange(edge.id, false)] : res),
[] []
); );
+11
View File
@@ -29,4 +29,15 @@ module.exports = {
rules: { rules: {
'@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-non-null-assertion': 'off',
}, },
overrides: [
{
files: ['**/*.{ts,tsx,cts,mts}'],
parserOptions: {
projectService: true,
},
rules: {
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
},
},
],
}; };