| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; |
| const async_1 = require("./providers/async"); |
| const stream_1 = require("./providers/stream"); |
| const sync_1 = require("./providers/sync"); |
| const settings_1 = require("./settings"); |
| exports.Settings = settings_1.default; |
| function walk(directory, optionsOrSettingsOrCallback, callback) { |
| if (typeof optionsOrSettingsOrCallback === 'function') { |
| new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); |
| return; |
| } |
| new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); |
| } |
| exports.walk = walk; |
| function walkSync(directory, optionsOrSettings) { |
| const settings = getSettings(optionsOrSettings); |
| const provider = new sync_1.default(directory, settings); |
| return provider.read(); |
| } |
| exports.walkSync = walkSync; |
| function walkStream(directory, optionsOrSettings) { |
| const settings = getSettings(optionsOrSettings); |
| const provider = new stream_1.default(directory, settings); |
| return provider.read(); |
| } |
| exports.walkStream = walkStream; |
| function getSettings(settingsOrOptions = {}) { |
| if (settingsOrOptions instanceof settings_1.default) { |
| return settingsOrOptions; |
| } |
| return new settings_1.default(settingsOrOptions); |
| } |