prettier/website/playground/util.js

54 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-04-19 20:26:18 +03:00
export function fixPrettierVersion(version) {
const match = version.match(/^\d+\.\d+\.\d+-pr.(\d+)$/);
if (match) {
return `pr-${match[1]}`;
}
return version;
}
2018-04-20 17:50:36 +03:00
export function getDefaults(availableOptions, optionNames) {
const defaults = {};
for (const option of availableOptions) {
if (optionNames.includes(option.name)) {
2018-05-25 03:11:12 +03:00
defaults[option.name] =
option.name === "parser" ? "babel" : option.default;
2018-04-20 17:13:09 +03:00
}
2018-04-20 17:50:36 +03:00
}
return defaults;
2018-04-19 20:26:18 +03:00
}
export function buildCliArgs(availableOptions, options) {
const args = [];
2018-04-19 20:46:29 +03:00
for (const option of availableOptions) {
2018-04-19 20:26:18 +03:00
const value = options[option.name];
2018-04-20 17:13:09 +03:00
if (typeof value === "undefined") {
continue;
}
2018-04-19 20:26:18 +03:00
if (option.type === "boolean") {
if ((value && !option.inverted) || (!value && option.inverted)) {
args.push([option.cliName, true]);
}
2018-04-20 17:13:09 +03:00
} else if (value !== option.default || option.name === "rangeStart") {
2018-04-19 20:26:18 +03:00
args.push([option.cliName, value]);
}
}
return args;
}
export function getCodemirrorMode(parser) {
switch (parser) {
case "css":
case "less":
case "scss":
return "css";
case "graphql":
return "graphql";
case "markdown":
return "markdown";
default:
return "jsx";
}
}