UNPKG

@viewdo/dxp-story-cli

Version:

DXP Story Management CLI

145 lines 6.41 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PreviewService = void 0; const TokenizationService_1 = require("./TokenizationService"); const typedi_1 = require("typedi"); let PreviewService = class PreviewService { constructor(tokenization_service) { this.tokenization_service = tokenization_service; } _getProgressMap(milestones) { let progressMap = { new: 0, sent: 2, opened: 4, started: 6, completed: 100, converted: 101, }; let index = 6; milestones.forEach((m) => { progressMap[m.toLowerCase()] = index++; }); progressMap.completed = 100; progressMap.converted = 101; return progressMap; } _fixPath(long_path, key) { return long_path.replace(`./stories/${key}`, ""); } _formatStory(story, asset_config, story_data) { var _a, _b, _c; let { key, publicKey, name, description, milestones, inputs } = story; let htmlTemplates = {}; (_a = story.htmlTemplates) === null || _a === void 0 ? void 0 : _a.forEach((t) => { let asset_definition = story.getAssetDefinition(`html_templates.${t.key}`); htmlTemplates[t.key] = this._fixPath(asset_config.getLocalPath(asset_definition), story.key); }); let textTemplates = {}; (_b = story.textTemplates) === null || _b === void 0 ? void 0 : _b.forEach((t) => { let asset_definition = story.getAssetDefinition(`text_templates.${t.key}`); textTemplates[t.key] = this._fixPath(asset_config.getLocalPath(asset_definition), story.key); }); let episodes = story.episodes.map((e) => { let { key, name, description } = e; return { key, name, description, }; }); let events = ((_c = story.events) === null || _c === void 0 ? void 0 : _c.map((e) => e.key)) || []; let progressMap = this._getProgressMap(story.milestones); this.tokenization_service.detokenizeData(story_data); const inputObject = {}; inputs.forEach((input) => { inputObject[input.key] = input; }); return { key, publicKey, name, description, milestones, progressMap, events, externalEvents: story.externalEvents, storyEvents: story.events, links: story.customLinks.map((l) => { return { name: l.name, url: l.targetUrl, key: l.key, }; }), episodes, htmlTemplates, textTemplates, hasJsFile: false, hasJSONFile: false, hasCSSFile: false, data: story_data, inputs: inputObject, inputArray: inputs, }; } _formatOrganization(organization, child_entity_key) { var _a, _b; let { key, name, entities, dataPoints, url } = organization; let data = {}; let entity = (_a = organization.entities) === null || _a === void 0 ? void 0 : _a.find((e) => e.key == child_entity_key); let dataPointsObject = {}; (_b = organization.dataPoints) === null || _b === void 0 ? void 0 : _b.forEach((dataPoint) => { data[dataPoint.key] = dataPoint.value; if (entity && entity.data[dataPoint.key]) { data[dataPoint.key] = entity.data[dataPoint.key]; } dataPointsObject[dataPoint.key] = dataPoint; }); return { key, name, url, entity, entities, data, dataPoints: dataPointsObject, }; } formatPreview(preview_config, organization, story, asset_config, episode_key, story_data) { var _a, _b, _c; preview_config.currentEpisodeKey = episode_key == "default" ? null : episode_key; story.inputs.forEach((input) => { preview_config.data[input.key] = preview_config.data[input.key] || input.value || ""; }); preview_config.story = this._formatStory(story, asset_config, story_data); if (preview_config.childEntityKey && !((_a = organization.entities) === null || _a === void 0 ? void 0 : _a.find(e => e.key == preview_config.childEntityKey))) throw new Error("Preview entity " + preview_config.childEntityKey + " not found in organization-config.yml"); preview_config.organization = this._formatOrganization(organization, preview_config.childEntityKey); if (preview_config.milestone && !((_b = preview_config.story.milestones) === null || _b === void 0 ? void 0 : _b.includes(preview_config.milestone))) { throw new Error("Preview milestone " + preview_config.milestone + " not found in story-config.yml"); } (_c = preview_config.events) === null || _c === void 0 ? void 0 : _c.forEach((event) => { if (!preview_config.story.events.includes(event)) { throw new Error("Preview event " + event + " not found in story-config.yml"); } }); return preview_config; } }; exports.PreviewService = PreviewService; exports.PreviewService = PreviewService = __decorate([ (0, typedi_1.Service)(), __metadata("design:paramtypes", [TokenizationService_1.TokenizationService]) ], PreviewService); //# sourceMappingURL=PreviewService.js.map