UNPKG

@boykaframework/boyka-cli

Version:

🧑🏻‍💻 Command line assistant for Boyka Framework

56 lines (55 loc) 1.84 kB
import { updateWeb } from '../../update/web.js'; import { defaultFrameworkSetting, defaultNewWebSetting, defaultUiSetting, } from '../../../types/default-type-values.js'; import { createConfigFile, loadJSON } from '../../../utils/json.js'; import { configBlockExists, createConfigMessages, executeTask } from '../../../utils/constants.js'; import { BoykaError } from '../../../utils/boyka-error.js'; import { getWebInputs } from '../../user-inputs.js'; export const createWebSetting = (inputs) => { const frameworkSetting = { ...defaultFrameworkSetting, ui: { ...defaultUiSetting, web: { ...defaultNewWebSetting(inputs.config_name), }, }, }; const web = frameworkSetting.ui?.web; if (web) updateWeb(inputs, web[inputs.config_name]); return frameworkSetting; }; export const handleAddWebConfig = async (argv) => { const name = argv.name; const path = argv.path; const configPath = path === '.' ? process.cwd() : path; const inputs = { platform: 'ui', sub_platform: 'Web', }; await getWebInputs(inputs); const settings = loadJSON(configPath); let uiSetting = settings.ui; let webSetting; if (uiSetting) { webSetting = uiSetting.web; if (webSetting?.[name]) { throw new BoykaError(configBlockExists('Web', name)); } } else { uiSetting = { ...defaultUiSetting, }; } const newWebSetting = defaultNewWebSetting(name); updateWeb(inputs, newWebSetting[name]); settings.ui = { ...uiSetting, web: { ...webSetting, ...newWebSetting, }, }; await executeTask(createConfigFile(configPath, settings), createConfigMessages(configPath, 'updated')); };