@ts-for-gir/lib
Version:
Typescript .d.ts generator from GIR for gjs
43 lines (30 loc) • 1.45 kB
text/typescript
import type { IntrospectedNamespace } from "../gir/namespace.ts";
import { IntrospectedRecord } from "../gir/record.ts";
import { ClassStructTypeIdentifier } from "../gir.ts";
export default {
namespace: "Tracker",
version: "1.0",
modifier(namespace: IntrospectedNamespace) {
const SparqlError = namespace.getEnum("Error");
if (!SparqlError) throw new Error("Error enum not found in Tracker.");
namespace.members.delete("Error");
SparqlError.name = "SparqlError";
namespace.members.set("SparqlError", SparqlError);
// Hack around broken references in Tracker
const CursorClass = namespace.members.get("SparqlCursorClass");
if (CursorClass instanceof IntrospectedRecord) {
// @ts-expect-error This is a private property by Tracker is cursed
CursorClass._structFor = new ClassStructTypeIdentifier("SparqlCursor", "Tracker");
}
const ConnectionClass = namespace.members.get("SparqlConnectionClass");
if (ConnectionClass instanceof IntrospectedRecord) {
// @ts-expect-error This is a private property by Tracker is cursed
ConnectionClass._structFor = new ClassStructTypeIdentifier("SparqlConnection", "Tracker");
}
const BuilderClass = namespace.members.get("SparqlBuilderClass");
if (BuilderClass instanceof IntrospectedRecord) {
// @ts-expect-error This is a private property by Tracker is cursed
BuilderClass._structFor = new ClassStructTypeIdentifier("SparqlBuilder", "Tracker");
}
},
};