0.11.5 • Published 10 months ago

@query-key-gen/used-generator v0.11.5

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

🔍 Query Key Used Generator

Vite plugin that scans your project and tracks where queryKey values from globalQueryKeys are used — useful for dead query analysis, usage stats, or documentation.

📦 Compatible with @query-key-gen/generator
🛠 Designed for use with React Query


🚀 1. Installation

pnpm add @query-key-gen/used-generator

⚙️ 2. Setup

// vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import QueryKeyUsedPlugin from '@query-key-gen/used-generator';

export default defineConfig({
    plugins: [react(), QueryKeyUsedPlugin()]
});

📘 Configuration Guide

All options are optional. If not specified, default values will be used.

OptionTypeDefaultRequiredDescription
outputstring'./src/query-key-used-info.ts'Path to the file where usage info will be written
globalQueryKeyNamestring'globalQueryKeys'The variable name of the generated global query key object
ignoreFilesstring[]['.d.ts', 'query-key-used-info.ts']Files to exclude from analysis (e.g., generated files, type defs)

⚠️ Caution: Using with @query-key-gen/generator

If you're using @query-key-gen/generator together with this plugin, make sure to exclude its output file in the ignoreFiles array to prevent circular analysis or unnecessary tracking.

✅ Example

// @query-key-gen/generator output path add
QueryKeyUsedPlugin({
    ignoreFiles: ['./src/queryKeys.ts']
});

🛠 Full Example

// vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import QueryKeyUsedPlugin from '@query-key-gen/used-generator';

export default defineConfig({
    plugins: [
        react(),
        QueryKeyUsedPlugin({
            output: './src/query-key-used-info.ts',
            globalQueryKeyName: 'globalQueryKeys',
            ignoreFiles: ['**/test/**', 'legacy.ts', './src/queryKeys.ts']
        })
    ]
});

📄 Generated Output Format

The plugin will generate a file like query-key-used-info.ts containing an array of usage entries:

interface QueryKeyUsedInfo {
    sourceFile: {
        name: string;
    };
    ['query-key']: {
        name: string;
        pos: number;
        end: number;
    };
    func: {
        name: string;
        pos: number;
        end: number;
    };
}

export const queryKeyUsedInfo: QueryKeyUsedInfo[] = [
    {
        sourceFile: { name: 'service/mutation.ts' },
        'query-key': { name: "globalQueryKeys.post['def']", pos: 384, end: 412 },
        func: { name: 'useExampleMutation', pos: 130, end: 436 }
    }
];

💡 Uses

  • Analyze which queryKeys are actively used
  • Clean up unused keys
  • Visualize usage map of data dependencies
0.11.5

10 months ago

0.11.3

10 months ago

0.11.2

10 months ago

0.11.0

10 months ago

0.10.0

10 months ago

0.9.0

10 months ago

0.8.1

10 months ago

0.8.0

10 months ago

0.7.0

10 months ago

0.5.0

10 months ago

0.4.0

10 months ago

0.3.0

10 months ago

0.2.0

10 months ago

0.1.0

10 months ago

0.0.0

10 months ago