MCPcopy
hub / github.com/arktypeio/arktype / versionableAssertion

Function versionableAssertion

ark/attest/assert/assertions.ts:50–80  ·  view source on GitHub ↗
(fn: AssertFn)

Source from the content-addressed store, hash-verified

48
49export const versionableAssertion =
50 (fn: AssertFn): AssertFn =>
51 (expected, actual, ctx) => {
52 if (actual instanceof TypeAssertionMapping) {
53 if (!ctx.typeRelationshipAssertionEntries) {
54 throwInternalError(
55 `Unexpected missing typeAssertionEntries when passed a TypeAssertionMapper`
56 )
57 }
58 for (const [version, data] of ctx.typeRelationshipAssertionEntries) {
59 let errorMessage = ""
60 try {
61 const mapped = actual.fn(data, ctx)
62 if (mapped !== null) {
63 fn(
64 "expected" in mapped ? mapped.expected : expected,
65 mapped.actual,
66 ctx
67 )
68 }
69 } catch (e) {
70 errorMessage += `❌TypeScript@${version}:${e}\n`
71 }
72 if (errorMessage) {
73 throwAssertionError({
74 stack: ctx.assertionStack,
75 message: errorMessage
76 })
77 }
78 }
79 } else fn(expected, actual, ctx)
80 }
81
82const unversionedAssertEquals: AssertFn = (expected, actual, ctx) => {
83 if (expected === actual) return

Callers 1

assertions.tsFile · 0.85

Calls 3

throwInternalErrorFunction · 0.90
throwAssertionErrorFunction · 0.85
fnFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…