MCPcopy
hub / github.com/Effect-TS/effect / formatTree

Function formatTree

packages/effect/src/ParseResult.ts:1901–1944  ·  view source on GitHub ↗
(issue: ParseIssue)

Source from the content-addressed store, hash-verified

1899}
1900
1901const 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.

Callers 1

ParseResult.tsFile · 0.85

Calls 10

formatTypeMessageFunction · 0.85
makeTreeFunction · 0.85
getParseIssueTitleFunction · 0.85
formatForbiddenMessageFunction · 0.85
formatUnexpectedMessageFunction · 0.85
formatMissingMessageFunction · 0.85
getMessageFunction · 0.85
formatTransformationKindFunction · 0.85
formatRefinementKindFunction · 0.85
mapFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…