UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

67 lines 2.33 kB
import inquirer from "inquirer"; import { isinternalDatasource } from "../../src/index.js"; import { publishDatasources } from "../base/datasources/index.js"; import { getProjectClient } from "../base/project/projectClient.js"; // This is a standalone script used as a CLI command with a top-level function const projectPath = process.argv[2]; const projectClient = getProjectClient(projectPath); const internalDatasources = projectClient.datasources.filter((ds) => isinternalDatasource(ds)); const numDs = internalDatasources.length; const publishAllAnswers = await publishAllQuestion(numDs); if (publishAllAnswers.publish === "yes") { await publishDatasources(projectClient); } else { const dsAnswers = await datasourcesQuestion(internalDatasources); await publishDatasources(projectClient, { matcher: dsAnswers.datasources }); } export async function publishAllQuestion(numDs) { return inquirer.prompt([ { type: "list", name: "publish", message: `Do you want to publish all ${numDs} datasources at once?`, default: "no", choices: [ { value: "no", name: "No, let me choose", }, { value: "yes", name: "Yes", }, ], }, ]); } export async function datasourcesQuestion(datasources) { const datasourcesQuestion = await getDatasourcesQuestion(datasources); const answer = await inquirer.prompt([ datasourcesQuestion, ]); return answer; } export async function getDatasourcesQuestion(datasources) { if (datasources.length === 0) { console.error("No datasources found, exiting"); process.exit(); } const datasourceQuestion = { type: "checkbox", name: "datasources", message: "What datasources would you like to publish? (select as many as you want)", choices: [], }; return { ...datasourceQuestion, choices: [ ...datasourceQuestion.choices, ...datasources.map((ds) => ({ value: ds.datasourceId, name: `${ds.datasourceId} - ${ds.geo_type}`, })), ], }; } //# sourceMappingURL=publishData.js.map