UNPKG

@viewdo/dxp-story-cli

Version:

DXP Story Management CLI

48 lines 2.23 kB
"use strict"; 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