UNPKG

@viewdo/dxp-story-cli

Version:

DXP Story Management CLI

42 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationFileService = void 0; const FileService_1 = require("./FileService"); const class_transformer_1 = require("class-transformer"); const JSONFormatService_1 = require("./JSONFormatService"); const Utilities_1 = require("./Utilities"); const typedi_1 = require("typedi"); class ConfigurationFileService { constructor(file_path, type) { this.file_path = file_path; this.type = type; this.file_service = typedi_1.Container.get(FileService_1.FileService); this.format_service = typedi_1.Container.get(JSONFormatService_1.JSONFormatService); } read(default_data = {}) { let content = this.file_service && this.file_service.read(this.file_path); if (content) { let data = this.format_service.fromContent(content) || {}; return this.deserialize(data); } return this.deserialize(default_data); } deserialize(data = {}) { return (0, class_transformer_1.plainToClass)(this.type, data, { exposeDefaultValues: true }); } write(model, removeNull = true) { let data = (0, class_transformer_1.classToPlain)(model); if (removeNull) (0, Utilities_1.removeNullProperties)(data); let content = this.format_service.toContent(data); this.file_service.write(this.file_path, content); } ensure() { this.file_service.ensure(this.file_path); } exists() { return this.file_service.exists(this.file_path); } } exports.ConfigurationFileService = ConfigurationFileService; //# sourceMappingURL=ConfigurationFileService.js.map