Registry / devops / graphql-lint-unused-fields

graphql-lint-unused-fields

JSON →
library1.6.18jsnpmunverified

Terminal and pipeline tool for detecting unused fields in GraphQL queries across JavaScript/TypeScript projects. Current stable version: 1.6.18. Released as part of a monorepo with extensions. Supports traditional `gql`/`graphql` template literals, React JSX, hooks, destructuring, cross-file analysis, alias mapping, and configurable pipelines. CLI and programmatic API available. Output formats include console, JSON, and ESLint. Requires Node >=16.0.0. Open source core with optional extensions.

npm install graphql-lint-unused-fields
INSTALL
IMPORT
SIG · GRAPHQL-LINT-UNUSE
G
graphql-lint-unused-fields
devopsjavascriptv1.6.18
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

UnusedFieldsLinter
import { UnusedFieldsLinter } from 'graphql-lint-unused-fields'
const UnusedFieldsLinter = require('graphql-lint-unused-fields')
Default export is not provided; use named import. ESM only.
UnusedFieldsLinter (CommonJS)
const { UnusedFieldsLinter } = require('graphql-lint-unused-fields')
const UnusedFieldsLinter = require('graphql-lint-unused-fields')
CommonJS require works with named exports. Do not call require without destructuring.
TypeScript types
import type { UnusedFieldsLinter, LinterConfig, LinterResult } from 'graphql-lint-unused-fields'
import { UnusedFieldsLinter, LinterConfig, LinterResult } from 'graphql-lint-unused-fields'
Use import type for type-only imports to avoid runtime overhead.

Programmatic usage: create linter instance, analyze project, output unused fields.

import { UnusedFieldsLinter } from 'graphql-lint-unused-fields'; async function main() { const linter = new UnusedFieldsLinter(); const result = await linter.analyze('./src', { include: ['src/**/*.{ts,tsx,js,jsx}'], exclude: ['node_modules/**', '**/*.test.*'], advanced: true, maxFiles: 1000 }); console.log(`Unused fields: ${result.unusedFields.length}`); for (const field of result.unusedFields) { console.log(`${field.fieldName} in ${field.filePath}:${field.line}`); } } main().catch(console.error);
Debug
Known issues
gotchaUnusedFieldsLinter.analyze() expects a directory path, not a file path. Passing a single file will skip analysis.
fix
Always pass a directory path, e.g., './src' instead of './src/index.ts'.
affects: >=1.0.0
gotchaThe tool only analyzes files matching include patterns; if no files match, result.unusedFields will be empty.
fix
Ensure your include patterns match your project file extensions, e.g., ['src/**/*.{ts,tsx}'].
affects: >=1.0.0
gotchaField usage detection relies on static analysis; dynamic field references (e.g., computed keys) may not be detected, leading to false positives.
fix
Review reported unused fields manually or add them to an ignore list in configuration.
affects: >=1.0.0
deprecatedThe CLI subcommand 'graphql-lint-pipeline' is deprecated in favor of direct 'graphql-lint-unused-fields' usage with --format flag.
fix
Use 'npx graphql-lint-unused-fields /project --format console,json' instead.
affects: >=1.5.0
Errors
Common errors & fixes
Cannot find module 'graphql-lint-unused-fields'
Package not installed or not in node_modules.
fix
Run 'npm install graphql-lint-unused-fields' in your project root.
TypeError: graphql_lint_unused_fields_1.UnusedFieldsLinter is not a constructor
CommonJS require was used without destructuring, importing the module object itself.
fix
Use 'const { UnusedFieldsLinter } = require('graphql-lint-unused-fields');'
Error: No files found matching include patterns
The include patterns are too restrictive or the project path is incorrect.
fix
Check your configuration's include array and ensure the project directory contains matching files.
Upgrade
Version history
1.6.18latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
6 hits · last 30 days
node
6
Resources
graphql-lint-unused-fields — npm install graphql-lint-unused-fields · libregistry