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

Function toDefaultIssues

packages/effect/src/SchemaIssue.ts:1055–1096  ·  view source on GitHub ↗
(
  issue: Issue,
  path: ReadonlyArray<PropertyKey>,
  leafHook: LeafHook,
  checkHook: CheckHook
)

Source from the content-addressed store, hash-verified

1053}
1054
1055function toDefaultIssues(
1056 issue: Issue,
1057 path: ReadonlyArray<PropertyKey>,
1058 leafHook: LeafHook,
1059 checkHook: CheckHook
1060): Array<DefaultIssue> {
1061 switch (issue._tag) {
1062 case "Filter": {
1063 const message = checkHook(issue)
1064 if (message !== undefined) {
1065 return [{ path, message }]
1066 }
1067 if (issue.issue._tag !== "InvalidValue") {
1068 return toDefaultIssues(issue.issue, path, leafHook, checkHook)
1069 }
1070 const expected = findExpected(issue.issue)
1071 return [{
1072 path,
1073 message: expected === undefined
1074 ? getExpectedMessage(formatCheck(issue.filter), issue)
1075 : getExpectedMessage(expected, issue.issue)
1076 }]
1077 }
1078 case "Encoding":
1079 return toDefaultIssues(issue.issue, path, leafHook, checkHook)
1080 case "Pointer":
1081 return toDefaultIssues(issue.issue, [...path, ...issue.path], leafHook, checkHook)
1082 case "Composite":
1083 return issue.issues.flatMap((issue) => toDefaultIssues(issue, path, leafHook, checkHook))
1084 case "AnyOf": {
1085 if (issue.issues.length === 0) {
1086 return [{
1087 path,
1088 message: findMessage(issue) ?? getExpectedMessage(InternalAnnotations.getExpected(issue.ast), issue)
1089 }]
1090 }
1091 return issue.issues.flatMap((issue) => toDefaultIssues(issue, path, leafHook, checkHook))
1092 }
1093 default:
1094 return [{ path, message: leafHook(issue) }]
1095 }
1096}
1097
1098function formatCheck<T>(check: SchemaAST.Check<T>): string {
1099 const expected = check.annotations?.expected

Callers 1

Calls 5

findExpectedFunction · 0.85
getExpectedMessageFunction · 0.85
formatCheckFunction · 0.85
findMessageFunction · 0.85
getExpectedMethod · 0.45

Tested by

no test coverage detected