2017-05-24 00:19:04 +03:00
|
|
|
|
/*
|
|
|
|
|
* runPrettier – spawns `prettier` process.
|
|
|
|
|
* Adopted from Jest's integration tests suite.
|
|
|
|
|
*/
|
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
|
const path = require("path");
|
|
|
|
|
const spawnSync = require("cross-spawn").sync;
|
|
|
|
|
|
|
|
|
|
const PRETTIER_PATH = path.resolve(__dirname, "../bin/prettier.js");
|
|
|
|
|
|
|
|
|
|
// return the result of the spawned process:
|
|
|
|
|
// [ 'status', 'signal', 'output', 'pid', 'stdout', 'stderr',
|
|
|
|
|
// 'envPairs', 'options', 'args', 'file' ]
|
2017-06-07 02:10:24 +03:00
|
|
|
|
function runPrettier(dir, args, options) {
|
2017-05-24 00:19:04 +03:00
|
|
|
|
const isRelative = dir[0] !== "/";
|
|
|
|
|
|
|
|
|
|
if (isRelative) {
|
|
|
|
|
dir = path.resolve(__dirname, dir);
|
|
|
|
|
}
|
|
|
|
|
|
2017-06-07 02:10:24 +03:00
|
|
|
|
const result = spawnSync(
|
|
|
|
|
PRETTIER_PATH,
|
|
|
|
|
args || [],
|
|
|
|
|
Object.assign({}, options, { cwd: dir })
|
|
|
|
|
);
|
2017-05-24 00:19:04 +03:00
|
|
|
|
|
|
|
|
|
result.stdout = result.stdout && result.stdout.toString();
|
|
|
|
|
result.stderr = result.stderr && result.stderr.toString();
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = runPrettier;
|