-
Notifications
You must be signed in to change notification settings - Fork 3
/
nextjs.go
45 lines (36 loc) · 918 Bytes
/
nextjs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package detection
import (
"github.com/anchordotdev/cli/anchorcli"
"github.com/anchordotdev/cli/detection/package_managers"
)
var NextJS = &NextJSDetector{}
type NextJSDetector struct {
FollowUpDetectors []Detector
}
func (d NextJSDetector) GetTitle() string { return "Next.js" }
func (d NextJSDetector) FollowUp() []Detector {
return d.FollowUpDetectors
}
func (d NextJSDetector) Detect(dirFS FS) (Match, error) {
_, err := dirFS.Stat("package.json")
if err != nil {
return Match{}, err
}
packageData, err := dirFS.ReadFile("package.json")
if err != nil {
return Match{}, err
}
packages, err := package_managers.ParsePackageJSON(packageData)
if err != nil {
return Match{}, err
}
if packages.HasDependency("next") {
return Match{
Detector: d,
Detected: true,
Confidence: High,
AnchorCategory: anchorcli.CategoryJavascript,
}, nil
}
return Match{}, nil
}