UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

63 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteSpan = deleteSpan; const client_1 = require("../client"); /** * Delete a single span by identifier. * * **Important**: This operation deletes ONLY the specified span itself and does NOT * delete its descendants/children. All child spans will remain in the trace and * become orphaned (their parent_id will point to a non-existent span). * * Behavior: * - Deletes only the target span (preserves all descendant spans) * - Child spans become orphaned but remain in the database * - Returns successfully if span is found and deleted * - Throws error if span is not found (404) or other errors occur * * @experimental this function is experimental and may change in the future * * @param params - The parameters to delete a span * @returns Promise that resolves when the span is successfully deleted * @throws Error if the span is not found or deletion fails * * @example * ```ts * // Delete by OpenTelemetry span_id * await deleteSpan({ * client, * spanIdentifier: "abc123def456" * }); * * // Delete by Phoenix Global ID * await deleteSpan({ * client, * spanIdentifier: "U3BhbjoyMzQ1Njc4OQ==" * }); * ``` */ async function deleteSpan({ client: _client, spanIdentifier, }) { const client = _client !== null && _client !== void 0 ? _client : (0, client_1.createClient)(); const { error } = await client.DELETE("/v1/spans/{span_identifier}", { params: { path: { span_identifier: spanIdentifier, }, }, }); if (error) { const isNotFound = typeof error === "object" && error !== null && "status" in error && error.status === 404; if (isNotFound) { throw new Error(`Span not found: ${spanIdentifier}`); } // Extract meaningful error information const errorMessage = typeof error === "object" && error !== null ? JSON.stringify(error, null, 2) : String(error); throw new Error(`Failed to delete span: ${errorMessage}`); } } //# sourceMappingURL=deleteSpan.js.map