prettier-plugin-curly
Version:
Prettier plugin to enforce consistent brace style for all control statements. 🥌
35 lines (34 loc) • 1 kB
JavaScript
function wrapInBlock(node) {
return {
body: [node],
directives: [],
type: "BlockStatement"
};
}
const allowedBodyNodeTypes = /* @__PURE__ */ new Set(["BlockStatement", "EmptyStatement"]);
const allowedIfAlternateNodeTypes = /* @__PURE__ */ new Set(["BlockStatement", "IfStatement"]);
function modifyNodeIfMissingBrackets(path) {
const { node } = path;
switch (node.type) {
case "DoWhileStatement":
case "ForInStatement":
case "ForOfStatement":
case "ForStatement":
case "WhileStatement":
if (!allowedBodyNodeTypes.has(node.body.type)) {
node.body = wrapInBlock(node.body);
}
break;
case "IfStatement": {
if (!allowedBodyNodeTypes.has(node.consequent.type)) {
node.consequent = wrapInBlock(node.consequent);
}
if (node.alternate && !allowedIfAlternateNodeTypes.has(node.alternate.type)) {
node.alternate = wrapInBlock(node.alternate);
}
}
}
}
export {
modifyNodeIfMissingBrackets
};