| 
								
							 | 
							
								"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);
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 |