UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

22 lines 1.36 kB
import { isPlainObject } from 'es-toolkit/predicate'; import { clone, normalizeOptionalString } from '../../utils/value.js'; export const RUNTIME_SERVICE_ENVIRONMENTS = ['development', 'production']; const createDefaultRuntimeServiceBinding = () => ({ enabled: false }); export const isRuntimeEnvironmentBindingConfig = serviceConfig => isPlainObject(serviceConfig) && RUNTIME_SERVICE_ENVIRONMENTS.every(environment => isPlainObject(serviceConfig[environment])); export const resolveRuntimeBindingEnvironment = environment => { const normalizedEnvironment = normalizeOptionalString(environment); return RUNTIME_SERVICE_ENVIRONMENTS.includes(normalizedEnvironment) ? normalizedEnvironment : null; }; export const resolveRuntimeEnvironmentBinding = (serviceConfig, environment) => { if (!isRuntimeEnvironmentBindingConfig(serviceConfig)) { return null; } const bindingEnvironment = resolveRuntimeBindingEnvironment(environment); return bindingEnvironment === null ? null : serviceConfig[bindingEnvironment]; }; export const createCompleteRuntimeEnvironmentConfig = serviceConfig => ({ development: isPlainObject(serviceConfig?.development) ? clone(serviceConfig.development) : createDefaultRuntimeServiceBinding(), production: isPlainObject(serviceConfig?.production) ? clone(serviceConfig.production) : createDefaultRuntimeServiceBinding() });