text: "use strict";
  var __importDefault = (this && this.__importDefault) || function (mod) {
      return (mod && mod.__esModule) ? mod : { "default": mod };
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.makeCfg = void 0;
  var fs_1 = __importDefault(require("fs"));
  var path_1 = __importDefault(require("path"));
  function read(dir) {
      var f = path_1.default.resolve(dir, '.node-dev.json');
      return fs_1.default.existsSync(f) ? JSON.parse(fs_1.default.readFileSync(f, 'utf-8')) : null;
  }
  function resolvePath(unresolvedPath) {
      return path_1.default.resolve(process.cwd(), unresolvedPath);
  }
  var makeCfg = function (main, opts) {
      var dir = main ? path_1.default.dirname(main) : '.';
      var userDir = process.env.HOME || process.env.USERPROFILE;
      var c = read(dir) || read(process.cwd()) || (userDir && read(userDir)) || {};
      c.deps = parseInt(opts['deps-level'] || '') || 0;
      if (typeof c.depsLevel === 'number')
          c.deps = c.depsLevel;
      if (opts) {
          // Overwrite with CLI opts ...
          if (opts['deps'] || opts['all-deps'])
              c.deps = -1;
          if (opts.dedupe)
              c.dedupe = true;
          if (opts.respawn)
              c.respawn = true;
          if (opts.notify === false)
              c.notify = false;
          if (opts.clear || opts.cls)
              c.clear = true;
          c.fork = opts.fork;
      }
      var ignoreWatchItems = opts['ignore-watch']
          ? []
              .concat(opts['ignore-watch'])
              .map(function (_) { return _.trim(); })
          : [];
      var ignoreWatch = ignoreWatchItems.concat(c.ignore || []);
      opts.debug && console.log('Ignore watch:', ignoreWatch);
      var ignore = ignoreWatch.concat(ignoreWatch.map(resolvePath));
      return {
          vm: c.vm !== false,
          fork: c.fork !== false,
          notify: c.notify !== false,
          deps: c.deps,
          timestamp: c.timestamp || (c.timestamp !== false && 'HH:MM:ss'),
          clear: !!c.clear,
          dedupe: !!c.dedupe,
          ignore: ignore,
          respawn: c.respawn || false,
          debug: !!opts.debug,
          quiet: !!opts.quiet,
          extensions: c.extensions,
      };
  };
  exports.makeCfg = makeCfg;
  