@coat/cli
Version:
TODO: See #3
39 lines (36 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.yamlFileFunctions = void 0;
var _jsonStableStringify = _interopRequireDefault(require("json-stable-stringify"));
var _jsYaml = _interopRequireDefault(require("js-yaml"));
var _json = require("./json");
var _getPrettier = require("../util/get-prettier");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function polish(source, filePath, context) {
// Sort properties
const sortedJsonContent = (0, _jsonStableStringify.default)(source);
const sortedSource = JSON.parse(sortedJsonContent);
const sortedContent = _jsYaml.default.dump(sortedSource);
const prettier = (0, _getPrettier.getPrettier)(context);
// Check whether prettier can already infer the parser
// from the current file path
const fileInfo = prettier.getFileInfo.sync(filePath);
let filePathForPrettier = filePath;
if (!fileInfo.inferredParser) {
// Add .yaml extension since prettier was not
// able to infer the parser automatically
filePathForPrettier = `${filePath}.yaml`;
}
// Format with prettier
return prettier.format(sortedContent, {
filepath: filePathForPrettier
});
}
const yamlFileFunctions = {
// Uses the same merge mechanism as JSON files
merge: _json.jsonFileFunctions.merge,
polish
};
exports.yamlFileFunctions = yamlFileFunctions;