MCPcopy Create free account
hub / github.com/Effect-TS/effect / formatIssue

Function formatIssue

packages/effect/src/SchemaIssue.ts:1156–1191  ·  view source on GitHub ↗
(issue: Issue, path: string)

Source from the content-addressed store, hash-verified

1154export const defaultFormatter = makeFormatterDefault()
1155
1156function formatIssue(issue: Issue, path: string): string {
1157 let message: string
1158 switch (issue._tag) {
1159 case "Filter": {
1160 const annotated = defaultCheckHook(issue)
1161 if (annotated !== undefined) {
1162 message = annotated
1163 } else {
1164 if (issue.issue._tag !== "InvalidValue") {
1165 return formatIssue(issue.issue, path)
1166 }
1167 const expected = findExpected(issue.issue)
1168 message = expected === undefined
1169 ? getExpectedMessage(formatCheck(issue.filter), issue)
1170 : getExpectedMessage(expected, issue.issue)
1171 }
1172 break
1173 }
1174 case "Encoding":
1175 return formatIssue(issue.issue, path)
1176 case "Pointer":
1177 return formatIssue(issue.issue, path + formatPath(issue.path))
1178 case "Composite":
1179 case "AnyOf": {
1180 if (issue._tag === "Composite" || issue.issues.length > 0) {
1181 return issue.issues.map((issue) => formatIssue(issue, path)).join("\n")
1182 }
1183 message = findMessage(issue) ?? getExpectedMessage(InternalAnnotations.getExpected(issue.ast), issue)
1184 break
1185 }
1186 default:
1187 message = defaultLeafHook(issue)
1188 break
1189 }
1190 return path ? `${message}\n at ${path}` : message
1191}
1192
1193function findMessage(issue: Issue): string | undefined {
1194 if (issue._tag === "Pointer") return

Callers 8

Formatter.test.tsFile · 0.85
assertXmlFailureFunction · 0.85
Schema.test.tsFile · 0.85
makeFormatterDefaultFunction · 0.85

Calls 10

formatPathFunction · 0.90
defaultCheckHookFunction · 0.85
findExpectedFunction · 0.85
getExpectedMessageFunction · 0.85
formatCheckFunction · 0.85
findMessageFunction · 0.85
defaultLeafHookFunction · 0.85
joinMethod · 0.80
mapMethod · 0.45
getExpectedMethod · 0.45

Tested by 1

assertXmlFailureFunction · 0.68