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

Function getArrayFormatterIssues

packages/effect/src/ParseResult.ts:1989–2030  ·  view source on GitHub ↗
(
  issue: ParseIssue,
  parentTag: ArrayFormatterIssue["_tag"] | undefined,
  path: ReadonlyArray<PropertyKey>
)

Source from the content-addressed store, hash-verified

1987}
1988
1989const 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}

Callers 1

ParseResult.tsFile · 0.85

Calls 7

formatTypeMessageFunction · 0.85
makeArrayFormatterIssueFunction · 0.85
formatForbiddenMessageFunction · 0.85
formatUnexpectedMessageFunction · 0.85
formatMissingMessageFunction · 0.85
getMessageFunction · 0.85
mapFunction · 0.70

Tested by

no test coverage detected