src/nodes/case.js in prettier-1.2.0 vs src/nodes/case.js in prettier-1.2.1
- old
+ new
@@ -6,56 +6,60 @@
hardline,
indent,
line
} = require("../prettier");
-module.exports = {
- case: (path, opts, print) => {
- const statement = ["case"];
+function printCase(path, opts, print) {
+ const statement = ["case"];
- // You don't need to explicitly have something to test against in a case
- // statement (without it it effectively becomes an if/elsif chain).
- if (path.getValue().body[0]) {
- statement.push(" ", path.call(print, "body", 0));
- }
+ // You don't need to explicitly have something to test against in a case
+ // statement (without it it effectively becomes an if/elsif chain).
+ if (path.getValue().body[0]) {
+ statement.push(" ", path.call(print, "body", 0));
+ }
- return concat(
- statement.concat([hardline, path.call(print, "body", 1), hardline, "end"])
- );
- },
- when: (path, opts, print) => {
- const [_preds, _stmts, addition] = path.getValue().body;
+ return concat(
+ statement.concat([hardline, path.call(print, "body", 1), hardline, "end"])
+ );
+}
- // The `fill` builder command expects an array of docs alternating with
- // line breaks. This is so it can loop through and determine where to break.
- const preds = fill(
- path.call(print, "body", 0).reduce((accum, pred, index) => {
- if (index === 0) {
- return [pred];
- }
+function printWhen(path, opts, print) {
+ const [_preds, _stmts, addition] = path.getValue().body;
- // Pull off the last element and make it concat with a comma so that
- // we can maintain alternating lines and docs.
- return accum
- .slice(0, -1)
- .concat([concat([accum[accum.length - 1], ","]), line, pred]);
- }, null)
- );
+ // The `fill` builder command expects an array of docs alternating with
+ // line breaks. This is so it can loop through and determine where to break.
+ const preds = fill(
+ path.call(print, "body", 0).reduce((accum, pred, index) => {
+ if (index === 0) {
+ return [pred];
+ }
- const stmts = path.call(print, "body", 1);
- const parts = [concat(["when ", align("when ".length, preds)])];
+ // Pull off the last element and make it concat with a comma so that
+ // we can maintain alternating lines and docs.
+ return accum
+ .slice(0, -1)
+ .concat([concat([accum[accum.length - 1], ","]), line, pred]);
+ }, null)
+ );
- // It's possible in a when to just have empty void statements, in which case
- // we would skip adding the body.
- if (!stmts.parts.every((part) => !part)) {
- parts.push(indent(concat([hardline, stmts])));
- }
+ const stmts = path.call(print, "body", 1);
+ const parts = [concat(["when ", align("when ".length, preds)])];
- // This is the next clause on the case statement, either another `when` or
- // an `else` clause.
- if (addition) {
- parts.push(hardline, path.call(print, "body", 2));
- }
+ // It's possible in a when to just have empty void statements, in which case
+ // we would skip adding the body.
+ if (!stmts.parts.every((part) => !part)) {
+ parts.push(indent(concat([hardline, stmts])));
+ }
- return group(concat(parts));
+ // This is the next clause on the case statement, either another `when` or
+ // an `else` clause.
+ if (addition) {
+ parts.push(hardline, path.call(print, "body", 2));
}
+
+ return group(concat(parts));
+}
+
+module.exports = {
+ case: printCase,
+ when: printWhen
};