https://github.com/lirantal/licensewatch
Recurses a given node_modules directory to fetch all npm package licenses
https://github.com/lirantal/licensewatch
hacktoberfest-accepted hacktoberfest2022 license license-management nodejs npm npm-package
Last synced: about 1 month ago
JSON representation
Recurses a given node_modules directory to fetch all npm package licenses
- Host: GitHub
- URL: https://github.com/lirantal/licensewatch
- Owner: lirantal
- License: mit
- Created: 2017-02-12T21:12:09.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-09-24T07:53:48.000Z (over 2 years ago)
- Last Synced: 2025-02-26T18:22:12.547Z (about 2 months ago)
- Topics: hacktoberfest-accepted, hacktoberfest2022, license, license-management, nodejs, npm, npm-package
- Language: JavaScript
- Homepage:
- Size: 327 KB
- Stars: 3
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LicenseWatch
[](https://snyk.io/advisor/npm-package/licensewatch)
[](https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md)
## What is this?
This module reads the `node_modules` directory of a given
path and fetches all licenses from reading each module's
`package.json` and aggregates their counts into a hashmap
object of licenses.## Implementation
Current implementation is with an Observable pattern so consumers need to add listeners to events the module emits.
Previous version of this module includes a [Promises-based implementation](https://github.com/lirantal/licensewatch/releases/tag/v1.0.0-promises) and complete code coverage.
## Installation
```bash
yarn add licensewatch
```## Usage
```js
const LicenseWatch = require('licensewatch')
const licenses = new LicenseWatch('node_modules/**/package.json')licenses.fetch()
let licensesCount = 0licenses.on('files', (files) => {
console.log('files processed' + ' - ' + files.length + ' - ' + files[0])
})licenses.on('license', () => {
licensesCount++
})licenses.on('licenses', (licenses) => {
console.log(licenses.length)
})licenses.on('licensesSummary', (licenses) => {
console.log(licenses)
})licenses.on('error', (error) => {
console.log('errors mate, from down under')
console.log(error)
})
```## Tests
Project tests:
```bash
yarn run test
```Project linting:
```bash
yarn run lint
```## Coverage
```bash
yarn run test:coverage
```## Commit
The project uses the commitizen tool for standardizing changelog style commit
messages so you should follow it as so:```bash
git add . # add files to staging
npm run commit # use the wizard for the commit message
```