1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;
|
4 | const fs = require("fs");
|
5 | const os = require("os");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | const CPU_COUNT = Math.max(os.cpus().length, 1);
|
11 | exports.DEFAULT_FILE_SYSTEM_ADAPTER = {
|
12 | lstat: fs.lstat,
|
13 | lstatSync: fs.lstatSync,
|
14 | stat: fs.stat,
|
15 | statSync: fs.statSync,
|
16 | readdir: fs.readdir,
|
17 | readdirSync: fs.readdirSync
|
18 | };
|
19 | class Settings {
|
20 | constructor(_options = {}) {
|
21 | this._options = _options;
|
22 | this.absolute = this._getValue(this._options.absolute, false);
|
23 | this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);
|
24 | this.braceExpansion = this._getValue(this._options.braceExpansion, true);
|
25 | this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);
|
26 | this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);
|
27 | this.cwd = this._getValue(this._options.cwd, process.cwd());
|
28 | this.deep = this._getValue(this._options.deep, Infinity);
|
29 | this.dot = this._getValue(this._options.dot, false);
|
30 | this.extglob = this._getValue(this._options.extglob, true);
|
31 | this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);
|
32 | this.fs = this._getFileSystemMethods(this._options.fs);
|
33 | this.globstar = this._getValue(this._options.globstar, true);
|
34 | this.ignore = this._getValue(this._options.ignore, []);
|
35 | this.markDirectories = this._getValue(this._options.markDirectories, false);
|
36 | this.objectMode = this._getValue(this._options.objectMode, false);
|
37 | this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);
|
38 | this.onlyFiles = this._getValue(this._options.onlyFiles, true);
|
39 | this.stats = this._getValue(this._options.stats, false);
|
40 | this.suppressErrors = this._getValue(this._options.suppressErrors, false);
|
41 | this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);
|
42 | this.unique = this._getValue(this._options.unique, true);
|
43 | if (this.onlyDirectories) {
|
44 | this.onlyFiles = false;
|
45 | }
|
46 | if (this.stats) {
|
47 | this.objectMode = true;
|
48 | }
|
49 | }
|
50 | _getValue(option, value) {
|
51 | return option === undefined ? value : option;
|
52 | }
|
53 | _getFileSystemMethods(methods = {}) {
|
54 | return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);
|
55 | }
|
56 | }
|
57 | exports.default = Settings;
|