sb-mig
Version:
CLI to rule the world. (and handle stuff related to Storyblok CMS)
48 lines (47 loc) • 1.79 kB
JavaScript
import { managementApi } from "../../api/managementApi.js";
import { removeAllComponents, removeSpecifiedComponents, } from "../../api/migrate.js";
import Logger from "../../utils/logger.js";
import { unpackElements } from "../../utils/main.js";
import { apiConfig } from "../api-config.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);
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}`);
}
};