github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/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() pkg.Cataloger {
    19  	return generic.NewCataloger("javascript-lock-cataloger").
    20  		WithParserByGlobs(parsePackageLock, "**/package-lock.json").
    21  		WithParserByGlobs(parseYarnLock, "**/yarn.lock").
    22  		WithParserByGlobs(parsePnpmLock, "**/pnpm-lock.yaml")
    23  }