denormalize static method

List<Map<String, dynamic>> denormalize(
  1. Map<String, dynamic> op
)

Implementation

static List<Map<String, dynamic>> denormalize(Map<String, dynamic> op) {
  final insertValue = op['insert'];
  if (insertValue is Map || insertValue == newLine) {
    return <Map<String, dynamic>>[op];
  }

  final List<String> newlinedArray = tokenizeWithNewLines(insertValue.toString());

  if (newlinedArray.length == 1) {
    return <Map<String, dynamic>>[op];
  }

  // Copy op in to keep its attributes, but replace the insert value with a newline.
  final Map<String, dynamic> nlObj = <String, dynamic>{
    ...op,
    ...<String, String>{'insert': newLine}
  };

  return newlinedArray.map((String line) {
    if (line == newLine) {
      return nlObj;
    }
    return <String, dynamic>{
      ...op,
      ...<String, String>{'insert': line},
    };
  }).toList();
}