UNPKG

sb-mig

Version:

CLI to rule the world. (and handle stuff related to Storyblok CMS)

48 lines (47 loc) 1.8 kB
import { managementApi } from "../../api/managementApi.js"; import { removeAllComponents, removeSpecifiedComponents, } from "../../api/migrate.js"; import Logger from "../../utils/logger.js"; import { apiConfig } from "../api-config.js"; import { unpackElements } from "../utils/cli-utils.js"; const REMOVE_COMMANDS = { story: "story", components: "components", roles: "roles", datasources: "datasources", }; export const remove = async (props) => { const { input, flags } = props; const command = input[1]; switch (command) { case REMOVE_COMMANDS.components: if (flags["all"]) { Logger.warning("Removing ALL components from storyblok..."); await removeAllComponents(apiConfig); } if (!flags["all"]) { Logger.warning("Removing PROVIDED components..."); const componentToRemove = unpackElements(input); await removeSpecifiedComponents({ components: componentToRemove, }, apiConfig); } break; case REMOVE_COMMANDS.roles: Logger.warning(`No functionality so far - v5 approaching`); break; case REMOVE_COMMANDS.datasources: Logger.warning(`No functionality so far - v5 approaching`); break; case REMOVE_COMMANDS.story: Logger.warning(`Removing all stories from: ${flags.from}`); if (flags["all"] && flags["from"]) { await managementApi.stories.removeAllStories({ ...apiConfig, spaceId: flags.from, }); } break; default: Logger.log(`no command like that: ${command}`); } };