github.com/anchore/syft@v1.38.2/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 pnpmLockAdapter := newGenericPnpmLockAdapter(cfg) 22 return generic.NewCataloger("javascript-lock-cataloger"). 23 WithParserByGlobs(packageLockAdapter.parsePackageLock, "**/package-lock.json"). 24 WithParserByGlobs(yarnLockAdapter.parseYarnLock, "**/yarn.lock"). 25 WithParserByGlobs(pnpmLockAdapter.parsePnpmLock, "**/pnpm-lock.yaml") 26 }