UNPKG

growthbook

Version:

The GrowthBook command-line interface (CLI) for working with the GrowthBook A/B testing, feature flagging, and experimentation platform

50 lines (49 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@oclif/core"); const cli_1 = require("../../utils/cli"); const constants_1 = require("../../utils/constants"); const config_1 = require("../../utils/config"); const experiments_repository_1 = require("../../repositories/experiments.repository"); class ExperimentsList extends core_1.Command { async run() { const { flags: { profile, apiBaseUrl, offset, limit, experiment, project, datasource, }, } = await this.parse(ExperimentsList); const profileUsed = profile || constants_1.DEFAULT_GROWTHBOOK_PROFILE; const { apiKey, apiBaseUrl: configApiBaseUrl } = (0, config_1.getGrowthBookProfileConfigAndThrowForCommand)(profileUsed, this); const baseUrlUsed = apiBaseUrl || configApiBaseUrl || constants_1.DEFAULT_GROWTHBOOK_BASE_URL; const experimentsRepo = new experiments_repository_1.ExperimentsRepository({ apiKey, apiBaseUrl: baseUrlUsed, }); const experiments = await experimentsRepo.listExperiments({ limit, offset, projectId: project, datasourceId: datasource, experimentId: experiment, }); this.logJson(experiments); } } exports.default = ExperimentsList; ExperimentsList.description = 'Get all experiments'; ExperimentsList.examples = [ '<%= config.bin %> <%= command.id %>', ]; ExperimentsList.flags = { ...cli_1.baseGrowthBookCliFlags, ...cli_1.paginationCliFlags, project: core_1.Flags.string({ description: 'Project ID filter', required: false, }), datasource: core_1.Flags.string({ description: 'Datasource ID filter', required: false, }), experiment: core_1.Flags.string({ description: 'Filter the returned list by the experiment tracking key (id)', required: false, }), }; ExperimentsList.args = {};