(issue: ParseIssue)
| 1899 | } |
| 1900 | |
| 1901 | const formatTree = (issue: ParseIssue): Effect.Effect<Tree<string>> => { |
| 1902 | switch (issue._tag) { |
| 1903 | case "Type": |
| 1904 | return map(formatTypeMessage(issue), makeTree) |
| 1905 | case "Forbidden": |
| 1906 | return Either.right(makeTree(getParseIssueTitle(issue), [makeTree(formatForbiddenMessage(issue))])) |
| 1907 | case "Unexpected": |
| 1908 | return Either.right(makeTree(formatUnexpectedMessage(issue))) |
| 1909 | case "Missing": |
| 1910 | return map(formatMissingMessage(issue), makeTree) |
| 1911 | case "Transformation": |
| 1912 | return flatMap(getMessage(issue), (message) => { |
| 1913 | if (message !== undefined) { |
| 1914 | return Either.right(makeTree(message)) |
| 1915 | } |
| 1916 | return map( |
| 1917 | formatTree(issue.issue), |
| 1918 | (tree) => makeTree(getParseIssueTitle(issue), [makeTree(formatTransformationKind(issue.kind), [tree])]) |
| 1919 | ) |
| 1920 | }) |
| 1921 | case "Refinement": |
| 1922 | return flatMap(getMessage(issue), (message) => { |
| 1923 | if (message !== undefined) { |
| 1924 | return Either.right(makeTree(message)) |
| 1925 | } |
| 1926 | return map( |
| 1927 | formatTree(issue.issue), |
| 1928 | (tree) => makeTree(getParseIssueTitle(issue), [makeTree(formatRefinementKind(issue.kind), [tree])]) |
| 1929 | ) |
| 1930 | }) |
| 1931 | case "Pointer": |
| 1932 | return map(formatTree(issue.issue), (tree) => makeTree(util_.formatPath(issue.path), [tree])) |
| 1933 | case "Composite": |
| 1934 | return flatMap(getMessage(issue), (message) => { |
| 1935 | if (message !== undefined) { |
| 1936 | return Either.right(makeTree(message)) |
| 1937 | } |
| 1938 | const parseIssueTitle = getParseIssueTitle(issue) |
| 1939 | return util_.isNonEmpty(issue.issues) |
| 1940 | ? map(Effect.forEach(issue.issues, formatTree), (forest) => makeTree(parseIssueTitle, forest)) |
| 1941 | : map(formatTree(issue.issues), (tree) => makeTree(parseIssueTitle, [tree])) |
| 1942 | }) |
| 1943 | } |
| 1944 | } |
| 1945 | |
| 1946 | /** |
| 1947 | * Represents an issue returned by the {@link ArrayFormatter} formatter. |
no test coverage detected
searching dependent graphs…