xenforo-dl
Version:
XenForo Forum Downloader
30 lines • 1.82 kB
JavaScript
import { pickDefined } from '../lib/utils/Misc.js';
import CLIOptionValidator from './CLIOptionValidator.js';
import CommandLineParser from './CommandLineParser.js';
export function getCLIOptions() {
const commandLineOptions = CommandLineParser.parse();
const dirStructure = CLIOptionValidator.validateFlags(commandLineOptions.dirStructure, 's', 'pl', 'pi', 't', 'a', '-');
const options = {
url: CLIOptionValidator.validateRequired(commandLineOptions.url, 'No target URL specified'),
outDir: CLIOptionValidator.validateString(commandLineOptions.outDir),
dirStructure: pickDefined(dirStructure, 'splta'),
overwrite: CLIOptionValidator.validateBoolean(commandLineOptions.overwrite),
request: {
maxRetries: CLIOptionValidator.validateNumber(commandLineOptions?.request?.maxRetries),
maxConcurrent: CLIOptionValidator.validateNumber(commandLineOptions?.request?.maxConcurrent),
minTime: {
page: CLIOptionValidator.validateNumber(commandLineOptions?.request?.minTime?.page),
attachment: CLIOptionValidator.validateNumber(commandLineOptions?.request?.minTime?.attachment)
},
cookie: CLIOptionValidator.validateString(commandLineOptions?.request?.cookie) || null
},
noPrompt: CLIOptionValidator.validateBoolean(commandLineOptions.noPrompt) || false,
logging: {
level: CLIOptionValidator.validateString(commandLineOptions.logging?.level, 'info', 'debug', 'warn', 'error', 'none') || 'info',
file: CLIOptionValidator.validateString(commandLineOptions.logging?.file)
},
continue: CLIOptionValidator.validateBoolean(commandLineOptions.continue) || false
};
return options;
}
//# sourceMappingURL=CLIOptions.js.map