@boykaframework/boyka-cli
Version:
🧑🏻💻 Command line assistant for Boyka Framework
41 lines (40 loc) • 1.52 kB
JavaScript
import { updateApi } from '../../update/api.js';
import { defaultFrameworkSetting, defaultNewApiSetting, } from '../../../types/default-type-values.js';
import { createConfigFile, loadJSON } from '../../../utils/json.js';
import { configBlockExists, createConfigMessages, executeTask } from '../../../utils/constants.js';
import { getApiInputs } from '../../user-inputs.js';
import { BoykaError } from '../../../utils/boyka-error.js';
export const createApiSetting = (inputs) => {
const frameworkSetting = {
...defaultFrameworkSetting,
api: {
...defaultNewApiSetting(inputs.config_name),
},
};
const api = frameworkSetting.api;
if (api)
updateApi(inputs, api[inputs.config_name]);
return frameworkSetting;
};
export const handleAddApiConfig = async (argv) => {
const name = argv.name;
const path = argv.path;
const configPath = path === '.' ? process.cwd() : path;
const inputs = {
platform: 'api',
config_name: name,
};
await getApiInputs(inputs);
const settings = loadJSON(configPath);
const apiSetting = settings.api;
if (apiSetting?.[name]) {
throw new BoykaError(configBlockExists('API', name));
}
const newApiSetting = defaultNewApiSetting(name);
updateApi(inputs, newApiSetting[name]);
settings.api = {
...apiSetting,
...newApiSetting,
};
await executeTask(createConfigFile(configPath, settings), createConfigMessages(configPath, 'updated'));
};