Skip to content

Commit

Permalink
feat: add dependency kind
Browse files Browse the repository at this point in the history
  • Loading branch information
sxzz committed Sep 2, 2024
1 parent eebddb1 commit 21cd2dd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 5 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,14 @@ Unused({
include: [/\.([cm]?[jt]sx?|vue)$/],
exclude: [/node_modules/],
level: 'warning', // or 'error'
/**
* Ignore some dependencies.
*/
ignore: ['vue'],
/**
* Dependency kinds to check.
*/
depKinds: ['dependencies', 'peerDependencies'],
})
```

Expand Down
5 changes: 5 additions & 0 deletions src/core/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ export interface Options {
* @default 'warning'
*/
level?: 'warning' | 'error'
/**
* @default ['dependencies', 'peerDependencies']
*/
depKinds?: Array<'dependencies' | 'devDependencies' | 'peerDependencies'>
}

type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U
Expand All @@ -24,5 +28,6 @@ export function resolveOptions(options: Options): OptionsResolved {
exclude: options.exclude || [/node_modules/],
ignore: options.ignore || [],
level: options.level || 'warning',
depKinds: options.depKinds || ['dependencies', 'peerDependencies'],
}
}
13 changes: 8 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,14 @@ const plugin: UnpluginInstance<Options | undefined, false> = createUnplugin(
options.root ||= process.cwd()
pkgPath = path.resolve(await resolvePackageJSON(options.root))
const pkg = await readPackageJSON(pkgPath)
const dependencies = Object.keys(pkg.dependencies || {})
for (const dep of dependencies) {
if (options.ignore.includes(dep)) continue
deps.add(dep)
depsRegex[dep] = new RegExp(`["']${escapeStringRegexp(dep)}['"\\/]`)

for (const kind of options.depKinds) {
const dependencies = Object.keys(pkg[kind] || {})
for (const dep of dependencies) {
if (options.ignore.includes(dep) || deps.has(dep)) continue
deps.add(dep)
depsRegex[dep] = new RegExp(`["']${escapeStringRegexp(dep)}['"\\/]`)
}
}
},

Expand Down

0 comments on commit 21cd2dd

Please sign in to comment.