package lib import ( "encoding/json" "fmt" "os" ) type PackageJSON struct { Name string `json:"name"` Version string `json:"version"` Dependencies map[string]string `json:"dependencies"` DevDependencies map[string]string `json:"devDependencies"` } func ParsePackageJson(path string) (PackageJSON, error) { f, err := os.Open(path) if os.IsNotExist(err) { return PackageJSON{}, os.ErrNotExist } else if err != nil { return PackageJSON{}, fmt.Errorf("could not read file: %v", err) } defer f.Close() var p PackageJSON if err := json.NewDecoder(f).Decode(&p); err != nil { return PackageJSON{}, fmt.Errorf("could not parse package.json file: %v", err) } return p, nil }