Skip to content

refactor: consolidate noop function usage across framework packages #9228

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

braden-w
Copy link
Contributor

@braden-w braden-w commented May 31, 2025

Multiple framework-specific packages (solid-query, svelte-query, and angular-query-experimental) were maintaining their own implementations of the noop function, creating unnecessary code duplication across the codebase.

// Before: Each package had its own noop
// packages/svelte-query/src/utils.ts
export function noop(): void {}

Consolidated all noop usage to import from the canonical implementation in @tanstack/query-core, which all framework packages already depend on.

// After: Single source of truth
import { noop } from '@tanstack/query-core'
  • Removed duplicate noop definition from packages/svelte-query/src/utils.ts

  • Updated import statements in Solid Query and Svelte Query to use noop from @tanstack/query-core

  • Fixed missing utils file in Solid Query that was causing import errors

  • Resolved TypeScript compatibility issues with noop's overloaded return types

  • Persisters were intentionally left unchanged as they don't import query-core and maintain their own lightweight utils

  • Framework packages already depend on query-core, making this consolidation natural and dependency-free

Multiple framework-specific packages (`solid-query`, `svelte-query`, and `angular-query-experimental`) were maintaining their own implementations of the `noop` function, creating unnecessary code duplication across the codebase.

```typescript
// Before: Each package had its own noop
// packages/svelte-query/src/utils.ts
export function noop(): void {}

// packages/solid-query/src/utils.ts (missing, causing import errors)
// Local noop definitions scattered across files
```

Consolidated all `noop` usage to import from the canonical implementation in `@tanstack/query-core`, which all framework packages already depend on.

```typescript
// After: Single source of truth
import { noop } from '@tanstack/query-core'
```

- **Removed duplicate `noop` definition** from `packages/svelte-query/src/utils.ts`
- **Updated import statements** in Solid Query and Svelte Query to use `noop` from `@tanstack/query-core`
- **Fixed missing utils file** in Solid Query that was causing import errors
- **Resolved TypeScript compatibility** issues with `noop`'s overloaded return types

- **Persisters were intentionally left unchanged** as they don't import `query-core` and maintain their own lightweight utils
- **Framework packages already depend on `query-core`**, making this consolidation natural and dependency-free
Copy link

nx-cloud bot commented May 31, 2025

View your CI Pipeline Execution ↗ for commit 5e71f10.

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 3m 7s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 44s View ↗

☁️ Nx Cloud last updated this comment at 2025-05-31 16:39:35 UTC

Copy link

pkg-pr-new bot commented May 31, 2025

More templates

@tanstack/angular-query-devtools-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-devtools-experimental@9228

@tanstack/angular-query-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-experimental@9228

@tanstack/eslint-plugin-query

npm i https://pkg.pr.new/@tanstack/eslint-plugin-query@9228

@tanstack/query-async-storage-persister

npm i https://pkg.pr.new/@tanstack/query-async-storage-persister@9228

@tanstack/query-broadcast-client-experimental

npm i https://pkg.pr.new/@tanstack/query-broadcast-client-experimental@9228

@tanstack/query-core

npm i https://pkg.pr.new/@tanstack/query-core@9228

@tanstack/query-devtools

npm i https://pkg.pr.new/@tanstack/query-devtools@9228

@tanstack/query-persist-client-core

npm i https://pkg.pr.new/@tanstack/query-persist-client-core@9228

@tanstack/query-sync-storage-persister

npm i https://pkg.pr.new/@tanstack/query-sync-storage-persister@9228

@tanstack/react-query

npm i https://pkg.pr.new/@tanstack/react-query@9228

@tanstack/react-query-devtools

npm i https://pkg.pr.new/@tanstack/react-query-devtools@9228

@tanstack/react-query-next-experimental

npm i https://pkg.pr.new/@tanstack/react-query-next-experimental@9228

@tanstack/react-query-persist-client

npm i https://pkg.pr.new/@tanstack/react-query-persist-client@9228

@tanstack/solid-query

npm i https://pkg.pr.new/@tanstack/solid-query@9228

@tanstack/solid-query-devtools

npm i https://pkg.pr.new/@tanstack/solid-query-devtools@9228

@tanstack/solid-query-persist-client

npm i https://pkg.pr.new/@tanstack/solid-query-persist-client@9228

@tanstack/svelte-query

npm i https://pkg.pr.new/@tanstack/svelte-query@9228

@tanstack/svelte-query-devtools

npm i https://pkg.pr.new/@tanstack/svelte-query-devtools@9228

@tanstack/svelte-query-persist-client

npm i https://pkg.pr.new/@tanstack/svelte-query-persist-client@9228

@tanstack/vue-query

npm i https://pkg.pr.new/@tanstack/vue-query@9228

@tanstack/vue-query-devtools

npm i https://pkg.pr.new/@tanstack/vue-query-devtools@9228

commit: 5e71f10

Copy link

codecov bot commented May 31, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.06%. Comparing base (b475d21) to head (5e71f10).
Report is 13 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #9228       +/-   ##
===========================================
+ Coverage   45.30%   84.06%   +38.75%     
===========================================
  Files         209       49      -160     
  Lines        8257      822     -7435     
  Branches     1856      168     -1688     
===========================================
- Hits         3741      691     -3050     
+ Misses       4076      113     -3963     
+ Partials      440       18      -422     
Components Coverage Δ
@tanstack/angular-query-devtools-experimental ∅ <ø> (∅)
@tanstack/angular-query-experimental 85.00% <ø> (-0.05%) ⬇️
@tanstack/eslint-plugin-query ∅ <ø> (∅)
@tanstack/query-async-storage-persister ∅ <ø> (∅)
@tanstack/query-broadcast-client-experimental ∅ <ø> (∅)
@tanstack/query-codemods ∅ <ø> (∅)
@tanstack/query-core ∅ <ø> (∅)
@tanstack/query-devtools ∅ <ø> (∅)
@tanstack/query-persist-client-core ∅ <ø> (∅)
@tanstack/query-sync-storage-persister ∅ <ø> (∅)
@tanstack/query-test-utils ∅ <ø> (∅)
@tanstack/react-query ∅ <ø> (∅)
@tanstack/react-query-devtools ∅ <ø> (∅)
@tanstack/react-query-next-experimental ∅ <ø> (∅)
@tanstack/react-query-persist-client ∅ <ø> (∅)
@tanstack/solid-query 78.13% <100.00%> (-0.08%) ⬇️
@tanstack/solid-query-devtools ∅ <ø> (∅)
@tanstack/solid-query-persist-client 100.00% <ø> (ø)
@tanstack/svelte-query 88.07% <ø> (-0.08%) ⬇️
@tanstack/svelte-query-devtools ∅ <ø> (∅)
@tanstack/svelte-query-persist-client 100.00% <ø> (ø)
@tanstack/vue-query ∅ <ø> (∅)
@tanstack/vue-query-devtools ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@TkDodo TkDodo merged commit 1fba7fc into TanStack:main Jun 3, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants