buildFlattenKey function

String buildFlattenKey(
  1. List<String> pathSegments,
  2. FlattenKeyStyle style
)

Builds the canonical lookup key for a JSON path using style.

Implementation

String buildFlattenKey(List<String> pathSegments, FlattenKeyStyle style) {
  if (pathSegments.isEmpty) {
    return '';
  }

  switch (style) {
    case FlattenKeyStyle.dot:
      return pathSegments.join('.');
    case FlattenKeyStyle.camel:
      if (pathSegments.length == 1) {
        return _toCamelCase(pathSegments.single);
      }
      return pathSegments.first +
          pathSegments.skip(1).map(_capitalizeFirstCharPreservingRest).join();
    case FlattenKeyStyle.pascal:
      if (pathSegments.length == 1) {
        return _toPascalCase(pathSegments.single);
      }
      return pathSegments.map(_capitalizeFirstCharPreservingRest).join();
    case FlattenKeyStyle.snake:
      if (pathSegments.length == 1) {
        return _toSnakeCase(pathSegments.single);
      }
      return pathSegments.map(_toSnakeCase).join('_');
    case FlattenKeyStyle.kebab:
      if (pathSegments.length == 1) {
        return _toKebabCase(pathSegments.single);
      }
      return pathSegments.map(_toKebabCase).join('-');
  }
}