@nestjs-mod/docker-compose
Version:
Docker Compose is a tool for defining and running multi-container applications. It is the key to unlocking a streamlined and efficient development and deployment experience. (Generator docker-compose.yml for https://docs.docker.com/compose)
83 lines • 3.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerComposeFileService = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const fs_1 = require("fs");
const path_1 = require("path");
const yaml_1 = require("yaml");
const docker_compose_configuration_1 = require("./docker-compose.configuration");
let DockerComposeFileService = class DockerComposeFileService {
constructor(dockerComposeConfiguration) {
this.dockerComposeConfiguration = dockerComposeConfiguration;
}
getDockerComposeFilePath() {
return this.dockerComposeConfiguration.dockerComposeFile;
}
readFile(dockerComposeFile) {
if (dockerComposeFile && (0, fs_1.existsSync)(dockerComposeFile)) {
try {
return (0, yaml_1.parse)((0, fs_1.readFileSync)(dockerComposeFile).toString());
}
catch (err) {
return undefined;
}
}
return undefined;
}
writeFile(dockerComposeFile, data, header) {
if (!dockerComposeFile) {
return;
}
try {
const fileDir = (0, path_1.dirname)(dockerComposeFile);
if (fileDir && !(0, fs_1.existsSync)(fileDir)) {
(0, fs_1.mkdirSync)(fileDir, { recursive: true });
}
for (const serviceName of Object.keys(data.services || {})) {
delete data.services[serviceName].excludeContainerNameFromEnvironmentName;
delete data.services[serviceName].keysOfEnvironmentsWithStaticValue;
}
(0, fs_1.writeFileSync)(dockerComposeFile, [
header,
(0, yaml_1.stringify)(data, { defaultStringType: yaml_1.Scalar.QUOTE_DOUBLE, defaultKeyType: yaml_1.Scalar.PLAIN, lineWidth: 0 })
.split(fileDir)
.join('.'),
].join('\n'));
}
catch (err) {
//
}
}
read() {
const dockerComposeFile = this.getDockerComposeFilePath();
if (!dockerComposeFile) {
return undefined;
}
return this.readFile(dockerComposeFile);
}
write(data, header) {
const dockerComposeFile = this.getDockerComposeFilePath();
if (!dockerComposeFile) {
return;
}
try {
const fileDir = (0, path_1.dirname)(dockerComposeFile);
if (fileDir) {
if (!(0, fs_1.existsSync)(fileDir)) {
(0, fs_1.mkdirSync)(fileDir, { recursive: true });
}
this.writeFile(dockerComposeFile, data, header);
}
}
catch (err) {
return;
}
}
};
exports.DockerComposeFileService = DockerComposeFileService;
exports.DockerComposeFileService = DockerComposeFileService = tslib_1.__decorate([
(0, common_1.Injectable)(),
tslib_1.__metadata("design:paramtypes", [docker_compose_configuration_1.DockerComposeConfiguration])
], DockerComposeFileService);
//# sourceMappingURL=docker-compose-file.service.js.map
;