UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

66 lines 2.42 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.listExperiments = listExperiments; const client_1 = require("../client"); const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const DEFAULT_PAGE_SIZE = 50; /** * List all experiments for a dataset with automatic pagination handling. * * This function automatically handles pagination behind the scenes and returns * a simple list of experiments. * * @example * ```ts * import { listExperiments } from "@arizeai/phoenix-client/experiments"; * * const experiments = await listExperiments({ * datasetId: "dataset_123", * }); * * for (const experiment of experiments) { * console.log(`Experiment: ${experiment.id}, Runs: ${experiment.successfulRunCount}`); * } * ``` */ async function listExperiments({ client: _client, datasetId, }) { var _a, _b; const client = _client || (0, client_1.createClient)(); const experiments = []; let cursor = null; do { const res = await client.GET("/v1/datasets/{dataset_id}/experiments", { params: { path: { dataset_id: datasetId, }, query: { cursor, limit: DEFAULT_PAGE_SIZE, }, }, }); cursor = ((_a = res.data) === null || _a === void 0 ? void 0 : _a.next_cursor) || null; const data = (_b = res.data) === null || _b === void 0 ? void 0 : _b.data; (0, tiny_invariant_1.default)(data, "Failed to list experiments"); experiments.push(...data.map((exp) => ({ id: exp.id, datasetId: exp.dataset_id, datasetVersionId: exp.dataset_version_id, repetitions: exp.repetitions, metadata: exp.metadata || {}, projectName: exp.project_name || null, createdAt: exp.created_at, updatedAt: exp.updated_at, exampleCount: exp.example_count, successfulRunCount: exp.successful_run_count, failedRunCount: exp.failed_run_count, missingRunCount: exp.missing_run_count, }))); } while (cursor != null); return experiments; } //# sourceMappingURL=listExperiments.js.map