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
JavaScript
;
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 = {};