Skip to content

Commit

Permalink
async config
Browse files Browse the repository at this point in the history
  • Loading branch information
gitgrimbo committed Jun 6, 2020
1 parent f94e466 commit 68558c3
Showing 1 changed file with 40 additions and 36 deletions.
76 changes: 40 additions & 36 deletions bin/cli.js
Expand Up @@ -11,50 +11,54 @@ const combineConfig = require('../lib/helpers/combine-config');
const errorHandler = require('../lib/helpers/error-handler');
const successHandler = require('../lib/helpers/success-handler');

//Extract parameters
const {configFile} = argv;
async function main() {
//Extract parameters
const {configFile} = argv;

//Verify arguments
if (argv._.length < 3 && !configFile) {
errorHandler('Replace in file needs at least 3 arguments');
}
//Verify arguments
if (argv._.length < 3 && !configFile) {
errorHandler('Replace in file needs at least 3 arguments');
}

//Load config and combine with passed arguments
const config = loadConfig(configFile);
const options = combineConfig(config, argv);
//Load config and combine with passed arguments
const config = await loadConfig(configFile);
const options = combineConfig(config, argv);

//Extract settings
const {from, to, files, isRegex, verbose, quiet} = options;
//Extract settings
const {from, to, files, isRegex, verbose, quiet} = options;

//Single star globs already get expanded in the command line
options.files = files.reduce((files, file) => {
return files.concat(file.split(','));
}, []);
//Single star globs already get expanded in the command line
options.files = files.reduce((files, file) => {
return files.concat(file.split(','));
}, []);

//If the isRegex flag is passed, convert the from parameter to a RegExp object
if (isRegex) {
const flags = from.replace(/.*\/([gimyus]*)$/, '$1');
const pattern = from.replace(new RegExp(`^/(.*?)/${flags}$`), '$1');
try {
options.from = new RegExp(pattern, flags);
}
catch (error) {
errorHandler(error, 'Error creating RegExp from `from` parameter');
}
}

//Log
if (!quiet) {
console.log(`Replacing '${from}' with '${to}'`);
}

//If the isRegex flag is passed, convert the from parameter to a RegExp object
if (isRegex) {
const flags = from.replace(/.*\/([gimyus]*)$/, '$1');
const pattern = from.replace(new RegExp(`^/(.*?)/${flags}$`), '$1');
//Replace
try {
options.from = new RegExp(pattern, flags);
const results = replace.sync(options);
if (!quiet) {
successHandler(results, verbose);
}
}
catch (error) {
errorHandler(error, 'Error creating RegExp from `from` parameter');
errorHandler(error);
}
}

//Log
if (!quiet) {
console.log(`Replacing '${from}' with '${to}'`);
}

//Replace
try {
const results = replace.sync(options);
if (!quiet) {
successHandler(results, verbose);
}
}
catch (error) {
errorHandler(error);
}
main().catch((error) => errorHandler(error));

0 comments on commit 68558c3

Please sign in to comment.