( issue: ParseIssue, parentTag: ArrayFormatterIssue["_tag"] | undefined, path: ReadonlyArray<PropertyKey> )
| 1987 | } |
| 1988 | |
| 1989 | const getArrayFormatterIssues = ( |
| 1990 | issue: ParseIssue, |
| 1991 | parentTag: ArrayFormatterIssue["_tag"] | undefined, |
| 1992 | path: ReadonlyArray<PropertyKey> |
| 1993 | ): Effect.Effect<Array<ArrayFormatterIssue>> => { |
| 1994 | const _tag = issue._tag |
| 1995 | switch (_tag) { |
| 1996 | case "Type": |
| 1997 | return map(formatTypeMessage(issue), (message) => [makeArrayFormatterIssue(parentTag ?? _tag, path, message)]) |
| 1998 | case "Forbidden": |
| 1999 | return Either.right([makeArrayFormatterIssue(_tag, path, formatForbiddenMessage(issue))]) |
| 2000 | case "Unexpected": |
| 2001 | return Either.right([makeArrayFormatterIssue(_tag, path, formatUnexpectedMessage(issue))]) |
| 2002 | case "Missing": |
| 2003 | return map(formatMissingMessage(issue), (message) => [makeArrayFormatterIssue(_tag, path, message)]) |
| 2004 | case "Pointer": |
| 2005 | return getArrayFormatterIssues(issue.issue, undefined, path.concat(issue.path)) |
| 2006 | case "Composite": |
| 2007 | return flatMap(getMessage(issue), (message) => { |
| 2008 | if (message !== undefined) { |
| 2009 | return Either.right([makeArrayFormatterIssue(_tag, path, message)]) |
| 2010 | } |
| 2011 | return util_.isNonEmpty(issue.issues) |
| 2012 | ? map(Effect.forEach(issue.issues, (issue) => getArrayFormatterIssues(issue, undefined, path)), Arr.flatten) |
| 2013 | : getArrayFormatterIssues(issue.issues, undefined, path) |
| 2014 | }) |
| 2015 | case "Refinement": |
| 2016 | return flatMap(getMessage(issue), (message) => { |
| 2017 | if (message !== undefined) { |
| 2018 | return Either.right([makeArrayFormatterIssue(_tag, path, message)]) |
| 2019 | } |
| 2020 | return getArrayFormatterIssues(issue.issue, issue.kind === "Predicate" ? _tag : undefined, path) |
| 2021 | }) |
| 2022 | case "Transformation": |
| 2023 | return flatMap(getMessage(issue), (message) => { |
| 2024 | if (message !== undefined) { |
| 2025 | return Either.right([makeArrayFormatterIssue(_tag, path, message)]) |
| 2026 | } |
| 2027 | return getArrayFormatterIssues(issue.issue, issue.kind === "Transformation" ? _tag : undefined, path) |
| 2028 | }) |
| 2029 | } |
| 2030 | } |
no test coverage detected
searching dependent graphs…