@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
30 lines (29 loc) • 933 B
JavaScript
/**
* Safe narrowing of unknown event payloads into AnalyticsQualityScore.
*/
/**
* Convert an unknown quality-score payload into AnalyticsQualityScore.
* Returns undefined for missing, null, or malformed values.
*/
export function parseAnalyticsQualityScore(value) {
if (!value || typeof value !== "object") {
return undefined;
}
const record = value;
// Reject NaN/Infinity — typeof NaN === "number"
if (!Number.isFinite(record.overall) ||
!Number.isFinite(record.relevance) ||
!Number.isFinite(record.accuracy) ||
!Number.isFinite(record.completeness)) {
return undefined;
}
return {
overall: record.overall,
relevance: record.relevance,
accuracy: record.accuracy,
completeness: record.completeness,
...(typeof record.reasoning === "string"
? { reasoning: record.reasoning }
: {}),
};
}