mirror of
https://github.com/morluto/rea.git
synced 2026-11-09 16:26:36 +00:00
fix(native): attribute deferred Evidence input failures
This commit is contained in:
1 parent
2721650884
commit
f8876e5405
5 files changed
+134
-10
No files matched your search
@@ -0,0 +1,23 @@
|
||||
import { evidenceInputSchema } from "../../domain/evidenceReference.js";
|
||||
import { AnalysisInputError } from "../../domain/analysisErrorCore.js";
|
||||
import { EvidenceIntegrityError } from "../../domain/evidenceErrors.js";
|
||||
import { projectInputIssues } from "../../domain/inputIssueProjection.js";
|
||||
|
||||
/** Attribute malformed caller values after admission; authenticated facts keep integrity semantics. */
|
||||
export const nativeMatchingInputError = (
|
||||
input: unknown,
|
||||
path: readonly (string | number)[],
|
||||
operation: string,
|
||||
failure: EvidenceIntegrityError,
|
||||
): AnalysisInputError | EvidenceIntegrityError => {
|
||||
const shape = evidenceInputSchema.safeParse(input);
|
||||
if (shape.success) return failure;
|
||||
return new AnalysisInputError(
|
||||
operation,
|
||||
{ cause: failure },
|
||||
projectInputIssues(shape.error.issues, input).map((issue) => ({
|
||||
...issue,
|
||||
path: [...path, ...issue.path],
|
||||
})),
|
||||
);
|
||||
};
|
||||
Reference in new issue
Block a user