@viewdo/dxp-story-cli
Version:
DXP Story Management CLI
48 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JSONAssetConverter = void 0;
const JSONFormatService_1 = require("./JSONFormatService");
const DataTemplateMutator_1 = require("./DataTemplateMutator");
const AssetConverter_1 = require("./AssetConverter");
const typedi_1 = require("typedi");
class JSONAssetConverter extends AssetConverter_1.AssetConverter {
constructor(cdn_path, directory, name) {
super(cdn_path);
this.data_template_mutator = new DataTemplateMutator_1.DataTemplateMutator(directory, name);
this.format_service = typedi_1.Container.get(JSONFormatService_1.JSONFormatService);
}
convertFromRemote(content) {
let result = super.convertFromRemote(content);
// remote content is ALWAYS JSON
let parsed = JSON.parse(result);
if (!parsed || Object.keys(parsed).length === 0)
return '';
// strip HTML template from data
this.data_template_mutator.stripHtml(parsed);
// replace html template-paths that use [xapi.url]/v1/story...> w/ template tokens
this.data_template_mutator.fixXAPITokens(parsed);
//this.data_template_mutator.stripStates(parsed)
return this.format_service.toContent(parsed);
}
convertFromLocal(content) {
// convert the format to JSON data, no matter what
let parsed = this.format_service.fromContent(content);
if (!parsed || Object.keys(parsed).length === 0)
return '';
// restore HTML to data from templates
this.data_template_mutator.restoreHtml(parsed);
let converted = JSON.stringify(parsed);
return super.convertFromLocal(converted);
}
convertForPreview(content) {
// convert the format to JSON data, no matter what
let parsed = this.format_service.fromContent(content);
if (!parsed || Object.keys(parsed).length === 0)
return '';
// restore HTML to data from templates
this.data_template_mutator.restoreHtml(parsed);
return super.convertForPreview(JSON.stringify(parsed, null, 2));
}
}
exports.JSONAssetConverter = JSONAssetConverter;
//# sourceMappingURL=JSONAssetConverter.js.map