-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathvalidations.ts
More file actions
57 lines (50 loc) · 2.45 KB
/
validations.ts
File metadata and controls
57 lines (50 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import packageJson from "@/../package.json" with { type: "json" };
import type { ENSIndexerPublicConfig } from "@ensnode/ensnode-sdk";
import type { ZodCheckFnInput } from "@ensnode/ensnode-sdk/internal";
import { ensApiVersionInfo } from "@/lib/version-info";
// Invariant: ENSIndexerPublicConfig VersionInfo must match ENSApi
export function invariant_ensIndexerPublicConfigVersionInfo(
ctx: ZodCheckFnInput<{
ensIndexerPublicConfig: ENSIndexerPublicConfig;
}>,
) {
const {
value: { ensIndexerPublicConfig },
} = ctx;
// Invariant: ENSApi & ENSDB must match version numbers
if (ensIndexerPublicConfig.versionInfo.ensDb !== packageJson.version) {
ctx.issues.push({
code: "custom",
path: ["ensIndexerPublicConfig.versionInfo.ensDb"],
input: ensIndexerPublicConfig.versionInfo.ensDb,
message: `Version Mismatch: ENSDB@${ensIndexerPublicConfig.versionInfo.ensDb} !== ENSApi@${packageJson.version}`,
});
}
// Invariant: ENSApi & ENSIndexer must match version numbers
if (ensIndexerPublicConfig.versionInfo.ensIndexer !== packageJson.version) {
ctx.issues.push({
code: "custom",
path: ["ensIndexerPublicConfig.versionInfo.ensIndexer"],
input: ensIndexerPublicConfig.versionInfo.ensIndexer,
message: `Version Mismatch: ENSIndexer@${ensIndexerPublicConfig.versionInfo.ensIndexer} !== ENSApi@${packageJson.version}`,
});
}
// Invariant: ENSApi & ENSRainbow must match version numbers
if (ensIndexerPublicConfig.ensRainbowPublicConfig.version !== packageJson.version) {
ctx.issues.push({
code: "custom",
path: ["ensIndexerPublicConfig.ensRainbowPublicConfig.version"],
input: ensIndexerPublicConfig.ensRainbowPublicConfig.version,
message: `Version Mismatch: ENSRainbow@${ensIndexerPublicConfig.ensRainbowPublicConfig.version} !== ENSApi@${packageJson.version}`,
});
}
// Invariant: `@adraffy/ens-normalize` package version must match between ENSApi & ENSIndexer
if (ensIndexerPublicConfig.versionInfo.ensNormalize !== ensApiVersionInfo.ensNormalize) {
ctx.issues.push({
code: "custom",
path: ["ensIndexerPublicConfig.versionInfo.ensNormalize"],
input: ensIndexerPublicConfig.versionInfo.ensNormalize,
message: `Dependency Version Mismatch: '@adraffy/ens-normalize' version must be the same between ENSIndexer and ENSApi. Found ENSApi@${ensApiVersionInfo.ensNormalize} and ENSIndexer@${ensIndexerPublicConfig.versionInfo.ensNormalize}`,
});
}
}