'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const path = require('path');
const fsStat = require('@nodelib/fs.stat');
const fs = require('./adapters/fs');
class Settings {
  constructor(_options = {}) {
    this._options = _options;
    this.followSymbolicLinks = this._getValue(
      this._options.followSymbolicLinks,
      false
    );
    this.fs = fs.createFileSystemAdapter(this._options.fs);
    this.pathSegmentSeparator = this._getValue(
      this._options.pathSegmentSeparator,
      path.sep
    );
    this.stats = this._getValue(this._options.stats, false);
    this.throwErrorOnBrokenSymbolicLink = this._getValue(
      this._options.throwErrorOnBrokenSymbolicLink,
      true
    );
    this.fsStatSettings = new fsStat.Settings({
      followSymbolicLink: this.followSymbolicLinks,
      fs: this.fs,
      throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink,
    });
  }
  _getValue(option, value) {
    return option !== null && option !== void 0 ? option : value;
  }
}
exports.default = Settings;