github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/pkg/cataloger/javascript/cataloger.go (about) 1 /* 2 Package javascript provides a concrete Cataloger implementation for packages relating to the JavaScript language ecosystem. 3 */ 4 package javascript 5 6 import ( 7 "github.com/anchore/syft/syft/pkg" 8 "github.com/anchore/syft/syft/pkg/cataloger/generic" 9 ) 10 11 // NewPackageCataloger returns a new cataloger object for NPM. 12 func NewPackageCataloger() pkg.Cataloger { 13 return generic.NewCataloger("javascript-package-cataloger"). 14 WithParserByGlobs(parsePackageJSON, "**/package.json") 15 } 16 17 // NewLockCataloger returns a new cataloger object for NPM (and NPM-adjacent, such as yarn) lock files. 18 func NewLockCataloger(cfg CatalogerConfig) pkg.Cataloger { 19 yarnLockAdapter := newGenericYarnLockAdapter(cfg) 20 packageLockAdapter := newGenericPackageLockAdapter(cfg) 21 return generic.NewCataloger("javascript-lock-cataloger"). 22 WithParserByGlobs(packageLockAdapter.parsePackageLock, "**/package-lock.json"). 23 WithParserByGlobs(yarnLockAdapter.parseYarnLock, "**/yarn.lock"). 24 WithParserByGlobs(parsePnpmLock, "**/pnpm-lock.yaml") 25 }