Files
vscode-debug-visualizer/data-extraction/src/DataExtractionResult.ts

36 lines
727 B
TypeScript

export type DataExtractionResult = {
data: ExtractedData;
usedExtractor: DataExtractorInfo;
availableExtractors: DataExtractorInfo[];
};
/**
* Instances must be valid json values.
*/
export type ExtractedData = {
kind: Record<string, true>;
};
export type DataExtractorInfo = {
id: DataExtractorId;
name: string;
priority: number;
};
export type DataExtractorId = {
__brand: "DataExtractorId";
} & string;
export function isExtractedData(val: unknown): val is ExtractedData {
if (typeof val !== "object" || !val || !("kind" in val)) {
return false;
}
const obj = val as any;
if (typeof obj.kind !== "object" || !obj.kind) {
return false;
}
return Object.values(obj.kind).every(val => val === true);
}