refactor(javascript): group domain semantics and contracts (#907)

This commit is contained in:
ysopwnable authored and GitHub committed 2026-10-07 17:16:58 +08:00
1 parent d5f28fb29c
commit f6a58f1062
253 files changed
+432 -410

No files matched your search

@@ -0,0 +1,23 @@
import canonicalize from "canonicalize";
import {
javaScriptSemanticGraphSchema,
type JavaScriptSemanticGraph,
} from "./javascriptSemanticGraph.js";
const canonicalJson = (value: unknown): string => {
const encoded = canonicalize(value);
if (encoded === undefined)
throw new TypeError(
"JavaScript semantic graph could not canonicalize data",
);
return encoded;
};
/** Parse a stored semantic graph and reject stale IDs. */
export const parseJavaScriptSemanticGraph = (
input: unknown,
): JavaScriptSemanticGraph => javaScriptSemanticGraphSchema.parse(input);
/** Serialize a verified semantic graph as canonical JSON. */
export const serializeJavaScriptSemanticGraph = (input: unknown): string =>
canonicalJson(parseJavaScriptSemanticGraph(input));