UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

50 lines (40 loc) 1.1 kB
import { join } from 'path'; import { ALWAYSAI_CONFIG_DIR, ConfigFile } from '@alwaysai/config-nodejs'; import * as t from 'io-ts'; import { ICognitoStorage } from 'amazon-cognito-identity-js'; const codec = t.record(t.string, t.any); export const PLEASE_LOG_IN_MESSAGE = 'Authentication is required for this action. Please run "alwaysai user login"'; const ENOENT = { message: PLEASE_LOG_IN_MESSAGE, code: 'TERSE', }; const path = join(ALWAYSAI_CONFIG_DIR, 'alwaysai.credentials.json'); const configFile = ConfigFile({ path, codec, ENOENT, initialValue: {}, }); configFile.update(() => { // No-op: to write the file if it does not already exist }); const storage: ICognitoStorage = { setItem(key: string, value: string) { configFile.update(config => { config[key] = value; }); }, getItem(key: string) { return configFile.read()[key]; }, removeItem(key: string) { configFile.update(config => { delete config[key]; }); }, clear() { configFile.remove(); }, }; export const credentialsStore = { ...configFile, ...storage };