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  }