Never-ending Pumpkin Mulch

    node-sloc
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.1 • Public • Published

    node-sloc

    A small tool written in node for counting source lines of code.

    NPM

    Installation

    Can be used as either a command line application or as a module.

    As a command line application

    Install it globally and use it as a CLI -- both node-sloc and sloc will work in this case.

    $ npm install -g node-sloc
    $ node-sloc .
    $ sloc . # Both node-sloc and sloc will run the CLI

    You can also run it with npx:

    $ npx node-sloc .

    As a node module

    npm install --save node-sloc

    Usage

    Command Line

    node-sloc [path] [options]

    Options

    usage:
               node-sloc [path] [options]
    options:
               -h, --help                         Prints usage information
    
               -l, --list-extensions              Lists all default file extensions
    
               -e, --include-extensions <list>    Include non-default file extensions,
                                                  specified by a comma separated string of extensions
    
               -i, --ignore-extensions <list>     Include list of file extensions to ignore,
                                                  specified by a comma separated string of extensions
    
               -x, --ignore-paths <list>          Include a list of folders to exclude. Supports glob patterns
    
               -d, --ignore-default               Ignore the default file extensions
    
               -v, --verbose                      Output extra information during execution
    
    

    Examples

     node-sloc ../app
     node-sloc ../app --include-extensions "aaa, bbb, ccc" --ignore-extensions "xml, yaml"
     node-sloc ../app --ignore-paths "node_modules, **/*.test.js"
     node-sloc file.js
    
    $ node-sloc . -x "node_modules"
    Reading file(s)...
    
        +---------------------------------------------------+
        | SLOC                          | 2682              |
        |-------------------------------|--------------------
        | Lines of comments             | 206               |
        |-------------------------------|--------------------
        | Blank lines                   | 134               |
        |-------------------------------|--------------------
        | Files counted                 | 27                |
        |-------------------------------|--------------------
        | Total LOC                     | 2888              |
        +---------------------------------------------------+
    

    Module

    CommonJS

    const sloc = require('node-sloc')
    
    const options = {...}
    
    sloc(options).then((res) => {...})

    ES Modules

    // Named import is also supported, i.e.
    // import {sloc} from 'node-sloc'
    import sloc from 'node-sloc'
    
    const options = {...}
    
    sloc(options).then((res) => {...})

    Options

    The options object the function takes as a parameter has the following properties:

    path             Required. The path to walk or file to read.
    extensions       Additional file extensions to look for. Required if ignoreDefault is set to true.
    ignorePaths      Optional. A list of directories to ignore. Supports glob patterns.
    ignoreDefault    Optional. Whether to ignore the default file extensions or not. Defaults to false.
    logger           Optional. Outputs extra information to if specified.
    

    Resolved object

    The object returned when executing the function has the following structure:

    {
      paths,      // An array of all filepaths counted
      loc,        // Lines of code (SLOC + comments)
      sloc,       // Source lines of code
      blank,      // Number of blank lines
      comments,   // Lines of comments
      files,      // Number of files counted
    }

    Example

    const sloc = require('node-sloc')
    
    const options = {
      path: '../app', // Required. The path to walk or file to read.
      extensions: ['aaa', 'bbb', 'ccc'], // Additional file extensions to look for. Required if ignoreDefault is set to true.
      ignorePaths: ['node_modules'], // A list of directories to ignore. Supports glob patterns.
      ignoreDefault: false, // Whether to ignore the default file extensions or not
      logger: console.log, // Optional. Outputs extra information to if specified.
    }
    
    // Using promises
    sloc(options).then((res) => {
      console.log(res.paths, res.sloc, res.comments)
    })
    
    // Using node-style callbacks
    sloc(options, (err, res) => {
      if (err) {
        // do some error handling
      }
      console.log(res.paths, res.sloc, res.comments)
    })
    
    // Async-await (if supported)
    const res = await sloc(options)
    console.log(res)

    Supported languages

    • ActionScript
    • Assembly
    • C#
    • C/C++
    • CoffeeScript
    • CSS
    • Elixir
    • Elm
    • Erlang
    • Go
    • Groovy
    • Handlebars
    • Haskell
    • HTML
    • Jade
    • Java
    • JavaScript
    • JSX
    • LESS
    • Lua
    • Mustache
    • Objective C
    • Perl
    • PHP
    • Pug
    • Python
    • Ruby
    • Rust
    • Sass
    • Scala
    • Shell script
    • Squirrel
    • Stylus
    • Swift
    • TypeScript
    • Visual Basic
    • XML
    • YAML
    • Any other language using C-style comments

    License

    MIT

    Keywords

    Install

    npm i node-sloc

    DownloadsWeekly Downloads

    3,257

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    38.9 kB

    Total Files

    16

    Last publish

    Collaborators

    • edvinh