| 782 | onNonEmpty: Arr.flatMap((value, index) => loopAny(Arr.append(path, keyIndex(index)), value)) |
| 783 | }) |
| 784 | const loopObject = ( |
| 785 | path: ReadonlyArray<KeyComponent>, |
| 786 | value: JsonMap |
| 787 | ): ReadonlyArray<[path: ReadonlyArray<KeyComponent>, value: string]> => |
| 788 | Object.entries(value) |
| 789 | .filter(([, value]) => Predicate.isNotNullable(value)) |
| 790 | .flatMap(([key, value]) => { |
| 791 | const newPath = Arr.append(path, keyName(key)) |
| 792 | const result = loopAny(newPath, value) |
| 793 | if (Arr.isEmptyReadonlyArray(result)) { |
| 794 | return Arr.make([newPath, ""] as [ReadonlyArray<KeyComponent>, string]) |
| 795 | } |
| 796 | return result |
| 797 | }) |
| 798 | return loopObject(Arr.empty(), config) |
| 799 | } |