UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

94 lines (87 loc) 2.69 kB
import { CliLeaf } from '@alwaysai/alwayscli'; import * as logSymbols from 'log-symbols'; import { AppJsonFile } from '../../../core/app'; import { echo } from '../../../util'; export const show = CliLeaf({ name: 'show', description: `Show your current application analytics configuration`, action() { const appCfgFile = AppJsonFile(); const appCfg = appCfgFile.read(); const analytics = appCfg.analytics ? appCfg.analytics : {}; echo(analytics); } }); export function printAnalytics(opts: { changed: boolean; analytics? }) { const { changed, analytics } = opts; const log = changed ? `${logSymbols.success} Updated analytics configuration.` : `${logSymbols.warning} Analytics configuration not updated.`; echo(log); echo(`analytics: ${JSON.stringify(analytics || {}, null, 2)}`); } export const enableCloudPublish = CliLeaf({ name: 'enable-cloud-publish', description: `Enable analytics cloud publish`, action() { const appCfgFile = AppJsonFile(); const result = appCfgFile.update((appCfg) => { const analytics = appCfg.analytics || {}; appCfg.analytics = { ...analytics, enable_cloud_publish: true }; }); printAnalytics({ changed: result.changed, analytics: appCfgFile.read().analytics }); } }); export const disableCloudPublish = CliLeaf({ name: 'disable-cloud-publish', description: `Disable analytics cloud publish`, action() { const appCfgFile = AppJsonFile(); const result = appCfgFile.update((appCfg) => { if (appCfg.analytics) { appCfg.analytics.enable_cloud_publish = false; } }); printAnalytics({ changed: result.changed, analytics: appCfgFile.read().analytics }); } }); export const enableFilePublish = CliLeaf({ name: 'enable-file-publish', description: `Enable analytics file publish`, action() { const appCfgFile = AppJsonFile(); const result = appCfgFile.update((appCfg) => { if (!appCfg.analytics) { appCfg.analytics = { enable_file_publish: true }; } else { appCfg.analytics.enable_file_publish = true; } }); printAnalytics({ changed: result.changed, analytics: appCfgFile.read().analytics }); } }); export const disableFilePublish = CliLeaf({ name: 'disable-file-publish', description: `Disable analytics file publish`, action() { const appCfgFile = AppJsonFile(); const result = appCfgFile.update((appCfg) => { if (appCfg.analytics) { appCfg.analytics.enable_file_publish = false; } }); printAnalytics({ changed: result.changed, analytics: appCfgFile.read().analytics }); } });