You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
const fsStat = require("@nodelib/fs.stat"); |
|
const fsWalk = require("@nodelib/fs.walk"); |
|
const reader_1 = require("./reader"); |
|
class ReaderSync extends reader_1.default { |
|
constructor() { |
|
super(...arguments); |
|
this._walkSync = fsWalk.walkSync; |
|
this._statSync = fsStat.statSync; |
|
} |
|
dynamic(root, options) { |
|
return this._walkSync(root, options); |
|
} |
|
static(patterns, options) { |
|
const entries = []; |
|
for (const pattern of patterns) { |
|
const filepath = this._getFullEntryPath(pattern); |
|
const entry = this._getEntry(filepath, pattern, options); |
|
if (entry === null || !options.entryFilter(entry)) { |
|
continue; |
|
} |
|
entries.push(entry); |
|
} |
|
return entries; |
|
} |
|
_getEntry(filepath, pattern, options) { |
|
try { |
|
const stats = this._getStat(filepath); |
|
return this._makeEntry(stats, pattern); |
|
} |
|
catch (error) { |
|
if (options.errorFilter(error)) { |
|
return null; |
|
} |
|
throw error; |
|
} |
|
} |
|
_getStat(filepath) { |
|
return this._statSync(filepath, this._fsStatSettings); |
|
} |
|
} |
|
exports.default = ReaderSync;
|
|
|