in src/helpers/whatif.ts [342:412]
function formatPropertyChange(
builder: ColorStringBuilder,
propertyChange: WhatIfPropertyChange,
maxPathLength: number,
indentLevel: number,
): void {
const propertyChangeType = propertyChange.propertyChangeType;
const before = propertyChange.before;
const after = propertyChange.after;
const children = propertyChange.children || [];
switch (propertyChangeType) {
case "Create":
formatPropertyChangePath(
builder,
propertyChange,
propertyChange.after,
maxPathLength,
indentLevel,
);
formatPropertyCreate(builder, after, indentLevel + 1);
break;
case "Delete":
formatPropertyChangePath(
builder,
propertyChange,
propertyChange.before,
maxPathLength,
indentLevel,
);
formatPropertyDelete(builder, before, indentLevel + 1);
break;
case "Modify":
formatPropertyChangePath(
builder,
propertyChange,
propertyChange.before,
maxPathLength,
indentLevel,
);
formatPropertyModify(builder, before, after, children, indentLevel + 1);
break;
case "Array":
formatPropertyChangePath(
builder,
propertyChange,
propertyChange.children,
maxPathLength,
indentLevel,
);
formatPropertyArrayChange(
builder,
propertyChange,
children,
indentLevel + 1,
);
break;
case "NoEffect":
formatPropertyChangePath(
builder,
propertyChange,
propertyChange.after,
maxPathLength,
indentLevel,
);
formatPropertyNoEffect(builder, after, indentLevel + 1);
break;
default:
throw new Error(`Unknown property change type: ${propertyChangeType}.`);
}
}