diff --git a/bin/prettier.js b/bin/prettier.js index 02828b83c..983ab2720 100755 --- a/bin/prettier.js +++ b/bin/prettier.js @@ -102,32 +102,27 @@ if (argv["find-config-path"] && filepatterns.length) { } function getOptionsForFile(filePath) { - const optionsPromise = - argv["config"] === false - ? Promise.resolve(null) - : resolver.resolveConfig(filePath); + const options = + argv["config"] === false ? null : resolver.resolveConfig.sync(filePath); - return optionsPromise - .then(options => { - const parsedArgs = minimist(args, { - boolean: booleanOptionNames, - string: stringOptionNames, - default: Object.assign( - { - semi: true, - "bracket-spacing": true, - parser: "babylon" - }, - dashifyObject(options) - ) - }); - - return getOptions(Object.assign({}, argv, parsedArgs)); - }) - .catch(error => { - console.error("Invalid configuration file:", error.toString()); - process.exit(2); + try { + const parsedArgs = minimist(args, { + boolean: booleanOptionNames, + string: stringOptionNames, + default: Object.assign( + { + semi: true, + "bracket-spacing": true, + parser: "babylon" + }, + dashifyObject(options) + ) }); + return getOptions(Object.assign({}, argv, parsedArgs)); + } catch (error) { + console.error("Invalid configuration file:", error.toString()); + process.exit(2); + } } function getOptions(argv) { @@ -324,17 +319,17 @@ if (argv["find-config-path"]) { resolveConfig(argv["find-config-path"]); } else if (stdin) { getStream(process.stdin).then(input => { - getOptionsForFile(process.cwd()).then(options => { - if (listDifferent(input, options, "(stdin)")) { - return; - } + const options = getOptionsForFile(process.cwd()); - try { - writeOutput(format(input, options), options); - } catch (e) { - handleError("stdin", e); - } - }); + if (listDifferent(input, options, "(stdin)")) { + return; + } + + try { + writeOutput(format(input, options), options); + } catch (e) { + handleError("stdin", e); + } }); } else { eachFilename(filepatterns, (filename, options) => { @@ -433,13 +428,12 @@ function listDifferent(input, options, filename) { } function resolveConfig(filePath) { - resolver.resolveConfigFile(filePath).then(configFile => { - if (configFile) { - console.log(path.relative(process.cwd(), configFile)); - } else { - process.exitCode = 1; - } - }); + const configFile = resolver.resolveConfigFile.sync(filePath); + if (configFile) { + console.log(path.relative(process.cwd(), configFile)); + } else { + process.exitCode = 1; + } } function writeOutput(result, options) { @@ -481,12 +475,9 @@ function eachFilename(patterns, callback) { process.exitCode = 2; return; } - // Use map series to ensure idempotency - mapSeries(ignorer.filter(filePaths), filePath => { - return getOptionsForFile(filePath).then(options => - callback(filePath, options) - ); - }); + ignorer + .filter(filePaths) + .forEach(filePath => callback(filePath, getOptionsForFile(filePath))); }) .catch(err => { console.error( @@ -496,16 +487,3 @@ function eachFilename(patterns, callback) { process.exitCode = 2; }); } - -function mapSeries(array, iteratee) { - let current = Promise.resolve(); - - const promises = array.map((item, i) => { - current = current.then(() => { - return iteratee(item, i, array); - }); - return current; - }); - - return Promise.all(promises); -}