# Code coverage report for lib/rules/parse.js

## Statements: 80% (12 / 15) Branches: 25% (2 / 8) Functions: 100% (2 / 2) Lines: 80% (12 / 15)

All files » lib/rules/ » parse.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    441
    1

    1
    2

    2

    2

    2
    2
    2

    2

    2

    1

     'use strict';
    var fs = require('fs');

    /**
     * Parse the nodemon config file, supporting both old style
     * plain text config file, and JSON version of the config
     *
     * @param  {String}   filename
     * @param  {Function} callback
     */
    function parse(filename, callback) {
      var rules = {
        ignore: [],
        watch: []
      };

      fs.readFile(filename, 'utf8', function (err, content) {

        Iif (err) {
          return callback(err);
        }

        var json = null;
        try {
          json = JSON.parse(content);
        } catch (e) {}

        Iif (json !== null) {
          rules = {
            ignore: json.ignore || [],
            watch: json.watch || [],
          };

          return callback(null, rules);
        }

        // otherwise return the raw file
        return callback(null, { raw: content.split(/\n/) });
      });
    }

    module.exports = parse;