From 85a2a0a7bc643798241ed361c8501ca6288082bf Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 23 Dec 2024 10:47:53 +0000 Subject: Check types for shed.examples and shed.profiles --- .../shedlang/compiler/config/ProjectConfig.java | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java index c45725cc..4b1c9ff9 100644 --- a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java +++ b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java @@ -67,19 +67,27 @@ public record ProjectConfig( } public static List examplesFromToml(TomlTableWithSource table) { - var examplesArray = table.table().getArrayOrEmpty(List.of("shed", "examples")); - - return IntStream.range(0, examplesArray.size()) - .mapToObj(exampleIndex -> ExampleConfig.fromToml(examplesArray.getTable(exampleIndex))) - .toList(); + return table + .getTable("shed") + .flatMap(shed -> shed.getArray("examples")) + .map(examples -> + IntStream.range(0, examples.size()) + .mapToObj(exampleIndex -> ExampleConfig.fromToml(examples.getTable(exampleIndex))) + .toList() + ) + .orElseGet(() -> List.of()); } public static List profilesFromToml(TomlTableWithSource table) { - var profilesArray = table.table().getArrayOrEmpty(List.of("shed", "profiles")); - - return IntStream.range(0, profilesArray.size()) - .mapToObj(profileIndex -> ProfileConfig.fromToml(profilesArray.getTable(profileIndex))) - .toList(); + return table + .getTable("shed") + .flatMap(shed -> shed.getArray("profiles")) + .map(profiles -> + IntStream.range(0, profiles.size()) + .mapToObj(profileIndex -> ProfileConfig.fromToml(profiles.getTable(profileIndex))) + .toList() + ) + .orElseGet(() -> List.of()); } public Path targetDir() { -- cgit v1.2.3