@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
22 lines • 1.36 kB
JavaScript
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()
});