nuǝW pǝuoᴉʇᴉsoԀ ʎlǝʌᴉʇɐƃǝN

    licenz

    0.1.5 • Public • Published

    licenz

    Make sure your NPM modules have licenses.

    licenz logo

    Installation

    Make sure you have Node.js and NPM installed. Then, run the following to use licenz system-wide:

    npm install -g licenz

    Alternatively, install it as a development dependency in your current module:

    npm install licenz --save-dev

    Use

    CLI

    licenz ./path/to/module/

    Run licenz --help for additional help.

    White-listing Licenses

    Does your project’s dependencies have licenses that you know are acceptable? Tell licenz they’re okay by using the --licenses flag:

    licenz --licenses "Apache 2, WTFPL, Public Domain" ./path/to/module

    White-listing Modules

    A are dependencies licenses undetectable by licenz? No problem! Use the --modules flag to make them pass:

    licenz --modules "module-1@1.0.0, module2@^2.1.0" ./path/to/module

    Programatically

    Licenz exports a single function which you can require:

    var licenz = require('licenz');
     
    licenz(options, function(err, res) {
      if (err) {
        console.error(err);
      }
      console.log(res);
    });

    It expects two optional arguments:

    • options (object): Hash of configurations for licenz. The following keys are used:

      • path (string): Path to the directory to scan. Example:

        var options = {
          path: './path/to/module'
        };
      • whitelistLicenses (array): List of licenses to accept. Example:

        var options = {
          whitelistLicenses: ['My Cool License', 'My Other License']
        };
      • whitelistModules (object): List of modules to accept. Use module names as the keys and corresponding semver-compatible versions or ranges as the values:

        var options = {
          whitelistModules: {
            'my-module': '^2.3.0',
            'my-other-module': '0.5.2',
            'my-best-module': '~8.0.0'
          }
        };
    • callback (function): Node-style callback function. The “response” is an array of unlicensed module objects. A possible way of dealing with it:

      licenz(options, function(err, res) {
        if (err) {
          return console.error(err);
        }
        if (res.length) {
          res.forEach(function(module) {
            console.log('Unlicensed: ' + module.name + '@' + module.version);
          });
        } else {
          console.log('All licensed!');
        }
      });

      In this example, res would be populated with these objects:

      {
        licenses: 'UNKNOWN',
        licenseFile: undefined,
        name: 'unlicensed-module'
        repository: 'https://github.com/unlicensed-user/unlicensed-module',
        version: '1.0.0'
      }

    licenz also supports a Promise interface:

    licenz(options).then(function(results) {
      console.log(results);
    }).catch(function(error) {
      console.error(error);
    });

    Integrating With Pre-Commit

    Integrating licenz with git’s pre-commit hook is easy using pre-commit. Make sure both pre-commit and licenz are installed (npm i pre-commit licenz --save-dev). Then, add a licenz to a script in your package.json:

    //...
    "scripts": {
      "validate": "licenz",
      //...
    }
    //...

    Then, create a precommit key and add the script:

    //...
    "precommit": [
      "validate",
      //...
    ]
    //...

    Install

    npm i licenz

    DownloadsWeekly Downloads

    17

    Version

    0.1.5

    License

    MIT

    Last publish

    Collaborators

    • cdaringe
    • dylancwood
    • jwtlake
    • mstone121
    • nidev
    • rsskmr
    • ruwang
    • swashcap