mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-20 06:35:22 +02:00
74 lines
1.8 KiB
TypeScript
74 lines
1.8 KiB
TypeScript
import _ from "lodash";
|
|
import type {
|
|
ComposeSpecification,
|
|
DefinitionsConfig,
|
|
DefinitionsService,
|
|
} from "../types";
|
|
|
|
export const addSuffixToConfigsRoot = (
|
|
configs: { [key: string]: DefinitionsConfig },
|
|
suffix: string,
|
|
): { [key: string]: DefinitionsConfig } => {
|
|
const newConfigs: { [key: string]: DefinitionsConfig } = {};
|
|
|
|
_.forEach(configs, (config, configName) => {
|
|
const newConfigName = `${configName}-${suffix}`;
|
|
newConfigs[newConfigName] = _.cloneDeep(config);
|
|
});
|
|
|
|
return newConfigs;
|
|
};
|
|
|
|
export const addSuffixToConfigsInServices = (
|
|
services: { [key: string]: DefinitionsService },
|
|
suffix: string,
|
|
): { [key: string]: DefinitionsService } => {
|
|
const newServices: { [key: string]: DefinitionsService } = {};
|
|
|
|
_.forEach(services, (serviceConfig, serviceName) => {
|
|
const newServiceConfig = _.cloneDeep(serviceConfig);
|
|
|
|
// Reemplazar nombres de configs en configs
|
|
if (_.has(newServiceConfig, "configs")) {
|
|
newServiceConfig.configs = _.map(newServiceConfig.configs, (config) => {
|
|
if (_.isString(config)) {
|
|
return `${config}-${suffix}`;
|
|
}
|
|
if (_.isObject(config) && config.source) {
|
|
return {
|
|
...config,
|
|
source: `${config.source}-${suffix}`,
|
|
};
|
|
}
|
|
return config;
|
|
});
|
|
}
|
|
|
|
newServices[serviceName] = newServiceConfig;
|
|
});
|
|
|
|
return newServices;
|
|
};
|
|
|
|
export const addSuffixToAllConfigs = (
|
|
composeData: ComposeSpecification,
|
|
suffix: string,
|
|
): ComposeSpecification => {
|
|
const updatedComposeData = { ...composeData };
|
|
if (composeData?.configs) {
|
|
updatedComposeData.configs = addSuffixToConfigsRoot(
|
|
composeData.configs,
|
|
suffix,
|
|
);
|
|
}
|
|
|
|
if (composeData?.services) {
|
|
updatedComposeData.services = addSuffixToConfigsInServices(
|
|
composeData.services,
|
|
suffix,
|
|
);
|
|
}
|
|
|
|
return updatedComposeData;
|
|
};
|