Skip to content

Commit 478aaca

Browse files
authored
feat: allow empty inputs and outputs (#265)
Part of #253. Empty `inputs:` or `outputs:` are sometimes used, just to show that no inputs/outputs are defined. We also allow it in the schema.
1 parent 0897378 commit 478aaca

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/jvmMain/kotlin/it/krzeminski/githubactionstyping/ManifestsToReport.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ fun manifestsToReport(manifestAndPath: Pair<String, Path>?, typesManifest: Strin
3232
}
3333
val parsedManifest = parseManifest(manifestAndPath.first)
3434

35-
val inputsInTypesManifest = parsedTypesManifest.inputs.keys
35+
val inputsInTypesManifest = parsedTypesManifest.inputs?.keys ?: emptySet()
3636
val inputsInManifest = parsedManifest.inputs.keys
3737

38-
val outputsInTypesManifest = parsedTypesManifest.outputs.keys
38+
val outputsInTypesManifest = parsedTypesManifest.outputs?.keys ?: emptySet()
3939
val outputsInManifest = parsedManifest.outputs.keys
4040

4141
if (inputsInManifest != inputsInTypesManifest || outputsInManifest != outputsInTypesManifest) {

src/jvmMain/kotlin/it/krzeminski/githubactionstyping/parsing/TypesManifestParsing.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import kotlinx.serialization.decodeFromString
99

1010
@Serializable
1111
data class TypesManifest(
12-
val inputs: Map<String, ApiItem> = emptyMap(),
13-
val outputs: Map<String, ApiItem> = emptyMap(),
12+
val inputs: Map<String, ApiItem>? = null,
13+
val outputs: Map<String, ApiItem>? = null,
1414
)
1515

1616
@Serializable

src/jvmMain/kotlin/it/krzeminski/githubactionstyping/validation/ManifestValidation.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import it.krzeminski.githubactionstyping.validation.types.validateString
1111
import java.nio.file.Path
1212

1313
fun TypesManifest.validate(manifestPath: Path): RepoValidationResult {
14-
val inputValidationResults = this.inputs.mapValues { (_, value) -> value.validate() }
15-
val outputValidationResults = this.outputs.mapValues { (_, value) -> value.validate() }
14+
val inputValidationResults = this.inputs?.mapValues { (_, value) -> value.validate() } ?: emptyMap()
15+
val outputValidationResults = this.outputs?.mapValues { (_, value) -> value.validate() } ?: emptyMap()
1616
val isSomethingInvalid = (inputValidationResults.values + outputValidationResults.values)
1717
.any { it != ItemValidationResult.Valid }
1818

0 commit comments

Comments
 (0)