code: function jslintFile(file, extraArgs) {
      return readConf(homeDir, {})
          .then(function (homeConf) {
              if (Array.isArray(file)) {
                  return file.reduce(function (prom, file) {
                      return prom.then(function (oldReport) {
                          return jslintFile(file, extraArgs)
                              .then(function (newReport) {
                                  return oldReport.concat(newReport);
                              });
                      });
                  }, Promise.resolve([]));
              }
              return readFile(file, "utf8")
                  .then(function (data) {
                      const opts = (
                          typeof extraArgs === "object" && extraArgs !== null
                      )
                          ? extraArgs
                          : {};
                      const projectDir = opts.projectDir || process.cwd();
                      return readConf(projectDir, path.dirname(file), homeConf)
                          .then(function (conf) {
                              const newConf = Object.assign(
                                  {},
                                  conf,
                                  opts.options
                              );
                              const lines = Array.isArray(data)
                                  ? data
                                  : data.split(/\n|\r\n?/);
                              const sb = opts.shaBang
                                  ? lines[0].startsWith("#!")
                                      ? [""].concat(lines.slice(1))
                                      : lines
                                  : lines;
                              const report = {
                                  pathname: file,
                                  report: jslint(sb, newConf, opts.globals)
                              };
  
                              return typeof opts.callback === "function"
                                  ? opts.callback(report)
                                  : report;
                          });
                  });
          });
  }
docs: extraArgs = { callback: Function, globals: Array, options: Object, shaBang: Boolean }