Skip to content
This repository has been archived by the owner on Mar 25, 2021. It is now read-only.

Commit

Permalink
no-implicit-dependencies: treat malformed package.json as empty (#3373)
Browse files Browse the repository at this point in the history
[bugfix] `no-implicit-dependencies` don't crash on malformed package.json
Fixes: #3369
  • Loading branch information
ajafff authored and adidahiya committed Oct 23, 2017
1 parent 306c1c6 commit 814277f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 14 deletions.
32 changes: 18 additions & 14 deletions src/rules/noImplicitDependenciesRule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,20 +114,24 @@ function getDependencies(fileName: string, options: Options): Set<string> {
const result = new Set<string>();
const packageJsonPath = findPackageJson(path.resolve(path.dirname(fileName)));
if (packageJsonPath !== undefined) {
// don't use require here to avoid caching
// remove BOM from file content before parsing
const content = JSON.parse(fs.readFileSync(packageJsonPath, "utf8").replace(/^\uFEFF/, "")) as PackageJson;
if (content.dependencies !== undefined) {
addDependencies(result, content.dependencies);
}
if (!options.dev && content.peerDependencies !== undefined) {
addDependencies(result, content.peerDependencies);
}
if (options.dev && content.devDependencies !== undefined) {
addDependencies(result, content.devDependencies);
}
if (options.optional && content.optionalDependencies !== undefined) {
addDependencies(result, content.optionalDependencies);
try {
// don't use require here to avoid caching
// remove BOM from file content before parsing
const content = JSON.parse(fs.readFileSync(packageJsonPath, "utf8").replace(/^\uFEFF/, "")) as PackageJson;
if (content.dependencies !== undefined) {
addDependencies(result, content.dependencies);
}
if (!options.dev && content.peerDependencies !== undefined) {
addDependencies(result, content.peerDependencies);
}
if (options.dev && content.devDependencies !== undefined) {
addDependencies(result, content.devDependencies);
}
if (options.optional && content.optionalDependencies !== undefined) {
addDependencies(result, content.optionalDependencies);
}
} catch {
// treat malformed package.json files as empty
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import foo from 'foo';
~~~~~ [Module 'foo' is not listed as dependency in package.json]

0 comments on commit 814277f

Please sign in to comment.