@botonic/plugin-contentful
Version:
## What Does This Plugin Do?
36 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTargetCallback = void 0;
const tslib_1 = require("tslib");
const cms = tslib_1.__importStar(require("../../cms"));
const cms_1 = require("../../cms");
const cms_2 = require("../../cms/cms");
const enums_1 = require("../../util/enums");
const delivery_utils_1 = require("../delivery-utils");
function getTargetCallback(target, context) {
const model = delivery_utils_1.ContentfulEntryUtils.getContentModel(target);
try {
switch (model) {
case cms_1.ContentType.URL: {
const urlFields = target;
if (!urlFields.fields.url && context.ignoreFallbackLocale) {
return cms.Callback.empty();
}
return cms.Callback.ofUrl(urlFields.fields.url || '');
}
case cms_1.ContentType.PAYLOAD: {
const payloadFields = target;
return cms.Callback.ofPayload(payloadFields.fields.payload);
}
}
if ((0, enums_1.isOfType)(model, cms_2.TopContentType)) {
return new cms.ContentCallback(model, target.sys.id);
}
throw new Error('Unexpected type: ' + model);
}
catch (e) {
throw new cms_1.CmsException(`Error delivering button with id '${target.sys.id}'`, e);
}
}
exports.getTargetCallback = getTargetCallback;
//# sourceMappingURL=callback-delivery.js.map