@jungvonmatt/sb-migrate
Version:
CLI tool for managing Storyblok schema and content migrations
58 lines • 2.4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.configureStoryblok = configureStoryblok;
const picocolors_1 = __importDefault(require("picocolors"));
const config_1 = require("../utils/config");
/**
* Main configuration function for Storyblok CLI.
*
* This function:
* 1. Loads existing configuration from file and environment variables
* 2. If configuration exists:
* - Verifies existing values with user
* - Updates if needed
* 3. If no configuration exists:
* - Prompts for all required values
* 4. Saves the final configuration to .storyblokrc.json
*
* The configuration process follows this flow:
* - First checks for existing config in .storyblokrc.json
* - Then checks for environment variables
* - If found, verifies with user
* - If not found or user wants to update, prompts for new values
*
* @throws {Error} If configuration saving fails
*/
async function configureStoryblok() {
try {
const existingConfig = await (0, config_1.loadConfig)();
const envConfig = await (0, config_1.loadEnvConfig)();
// Check if configuration exists in config file or .env
if (existingConfig ||
envConfig.spaceId ||
envConfig.oauthToken ||
envConfig.region) {
const configToVerify = existingConfig || envConfig;
const verifiedConfig = await (0, config_1.verifyExistingConfig)(configToVerify);
if (verifiedConfig) {
await (0, config_1.saveConfig)(verifiedConfig);
console.log(picocolors_1.default.green("✓ Configuration saved successfully"));
return;
}
}
else {
console.log(picocolors_1.default.yellow("No Storyblok configuration found."));
}
// If no configuration found or user wants to update
const config = await (0, config_1.promptForConfig)(existingConfig || envConfig || {});
await (0, config_1.saveConfig)(config);
console.log(picocolors_1.default.green("✓ Configuration saved successfully"));
}
catch (error) {
console.error(picocolors_1.default.red(`✗ Failed to configure Storyblok: ${error}`));
}
}
//# sourceMappingURL=config.js.map