readPackageJSONDeps reads package.json and returns a set of all dependency names (from both "dependencies" and "devDependencies").
(dir string)
| 420 | // readPackageJSONDeps reads package.json and returns a set of all dependency names |
| 421 | // (from both "dependencies" and "devDependencies"). |
| 422 | func readPackageJSONDeps(dir string) map[string]bool { |
| 423 | data, err := os.ReadFile(filepath.Join(dir, "package.json")) |
| 424 | if err != nil { |
| 425 | return make(map[string]bool) |
| 426 | } |
| 427 | var pkg struct { |
| 428 | Dependencies map[string]string `json:"dependencies"` |
| 429 | DevDependencies map[string]string `json:"devDependencies"` |
| 430 | } |
| 431 | if err := json.Unmarshal(data, &pkg); err != nil { |
| 432 | return make(map[string]bool) |
| 433 | } |
| 434 | deps := make(map[string]bool) |
| 435 | for k := range pkg.Dependencies { |
| 436 | deps[k] = true |
| 437 | } |
| 438 | for k := range pkg.DevDependencies { |
| 439 | deps[k] = true |
| 440 | } |
| 441 | return deps |
| 442 | } |
| 443 | |
| 444 | func hasDep(deps map[string]bool, name string) bool { |
| 445 | return deps[name] |