@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
107 lines • 4.77 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplateMapper = void 0;
var core_1 = require("../../core");
var TemplateMapper = /** @class */ (function () {
function TemplateMapper(sourceGuid, targetGuid) {
this.sourceGuid = sourceGuid;
this.targetGuid = targetGuid;
this.directory = 'templates';
// this will provide access to the /agility-files/{GUID} folder
this.fileOps = new core_1.fileOperations(targetGuid);
this.mappings = this.loadMapping();
}
TemplateMapper.prototype.getTemplateMapping = function (template, type) {
if (!template)
return null;
var mapping = this.mappings.find(function (m) {
return type === 'source'
? m.sourcePageTemplateID === template.pageTemplateID
: m.targetPageTemplateID === template.pageTemplateID;
});
if (!mapping)
return null;
return mapping;
};
TemplateMapper.prototype.getTemplateMappingByPageTemplateID = function (pageTemplateID, type) {
var mapping = this.mappings.find(function (m) {
return type === 'source' ? m.sourcePageTemplateID === pageTemplateID : m.targetPageTemplateID === pageTemplateID;
});
if (!mapping)
return null;
return mapping;
};
TemplateMapper.prototype.getTemplateMappingByPageTemplateName = function (pageTemplateName, type) {
var mapping = this.mappings.find(function (m) {
return type === 'source' ? m.sourcePageTemplateName === pageTemplateName : m.targetPageTemplateName === pageTemplateName;
});
if (!mapping)
return null;
return mapping;
};
TemplateMapper.prototype.getMappedEntity = function (mapping, type) {
if (!mapping)
return null;
var guid = type === 'source' ? mapping.sourceGuid : mapping.targetGuid;
var pageTemplateID = type === 'source' ? mapping.sourcePageTemplateID : mapping.targetPageTemplateID;
var fileOps = new core_1.fileOperations(guid);
var templateData = fileOps.readJsonFile("templates/".concat(pageTemplateID, ".json"));
if (!templateData)
return null;
return templateData;
};
TemplateMapper.prototype.addMapping = function (sourceTemplate, targetTemplate) {
var mapping = this.getTemplateMapping(targetTemplate, 'target');
if (mapping) {
this.updateMapping(sourceTemplate, targetTemplate);
}
else {
var newMapping = {
sourceGuid: this.sourceGuid,
targetGuid: this.targetGuid,
sourcePageTemplateID: sourceTemplate.pageTemplateID,
targetPageTemplateID: targetTemplate.pageTemplateID,
sourcePageTemplateName: sourceTemplate.pageTemplateName,
targetPageTemplateName: targetTemplate.pageTemplateName,
};
this.mappings.push(newMapping);
}
this.saveMapping();
};
TemplateMapper.prototype.updateMapping = function (sourceTemplate, targetTemplate) {
var mapping = this.getTemplateMapping(targetTemplate, 'target');
if (mapping) {
mapping.sourceGuid = this.sourceGuid;
mapping.targetGuid = this.targetGuid;
mapping.sourcePageTemplateID = sourceTemplate.pageTemplateID;
mapping.targetPageTemplateID = targetTemplate.pageTemplateID;
mapping.sourcePageTemplateName = sourceTemplate.pageTemplateName;
mapping.targetPageTemplateName = targetTemplate.pageTemplateName;
}
this.saveMapping();
};
TemplateMapper.prototype.loadMapping = function () {
var mapping = this.fileOps.getMappingFile(this.directory, this.sourceGuid, this.targetGuid);
return mapping;
};
TemplateMapper.prototype.saveMapping = function () {
this.fileOps.saveMappingFile(this.mappings, this.directory, this.sourceGuid, this.targetGuid);
};
TemplateMapper.prototype.hasTargetChanged = function (template) {
if (!template)
return false;
var mapping = this.getTemplateMapping(template, 'target');
if (!mapping)
return false;
return mapping.targetPageTemplateID !== template.pageTemplateID;
};
TemplateMapper.prototype.hasSourceChanged = function (template) {
var mapping = this.getTemplateMapping(template, 'source');
if (!mapping)
return false;
return mapping.sourcePageTemplateID !== template.pageTemplateID;
};
return TemplateMapper;
}());
exports.TemplateMapper = TemplateMapper;
//# sourceMappingURL=template-mapper.js.map