mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-10-30 14:49:14 +00:00
68 lines
1.8 KiB
TypeScript
68 lines
1.8 KiB
TypeScript
import {
|
|
ParentAutogroupNode,
|
|
SiblingAutogroupNode,
|
|
type TraceTree,
|
|
type TraceTreeNode,
|
|
} from './traceTree';
|
|
|
|
export function isMissingInstrumentationNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<TraceTree.MissingInstrumentationSpan> {
|
|
return !!(
|
|
node.value &&
|
|
'type' in node.value &&
|
|
node.value.type === 'missing_instrumentation'
|
|
);
|
|
}
|
|
|
|
export function isSpanNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<TraceTree.Span> {
|
|
return (
|
|
!!(node.value && !('transaction' in node.value) && 'span_id' in node.value) &&
|
|
!('autogrouped_by' in node.value)
|
|
);
|
|
}
|
|
|
|
export function isTransactionNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<TraceTree.Transaction> {
|
|
return !!(node.value && 'transaction' in node.value);
|
|
}
|
|
|
|
export function isParentAutogroupedNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is ParentAutogroupNode {
|
|
return node instanceof ParentAutogroupNode;
|
|
}
|
|
|
|
export function isSiblingAutogroupedNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is SiblingAutogroupNode {
|
|
return node instanceof SiblingAutogroupNode;
|
|
}
|
|
|
|
export function isAutogroupedNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is ParentAutogroupNode | SiblingAutogroupNode {
|
|
return !!(node.value && 'autogrouped_by' in node.value);
|
|
}
|
|
|
|
export function isTraceErrorNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<TraceTree.TraceError> {
|
|
return !!(node.value && 'level' in node.value);
|
|
}
|
|
|
|
export function isRootNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<null> {
|
|
return !!(node.value && node.value === null);
|
|
}
|
|
|
|
export function isTraceNode(
|
|
node: TraceTreeNode<TraceTree.NodeValue>
|
|
): node is TraceTreeNode<TraceTree.Trace> {
|
|
return !!(node.value && 'orphan_errors' in node.value);
|
|
}
|