@becklyn/contentful-adapter
Version:
[](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)
67 lines (66 loc) • 3.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeReference = exports.normalizeLabeledLink = void 0;
const api_1 = require("../contentful/api");
const util_1 = require("./util");
const normalizeLabeledLink = async (data, service) => {
var _a;
if (!data) {
return null;
}
if (!data.fields) {
// load missing data
data = await (0, api_1.findOneEntryBySys)(data.sys, service.client, { depth: 10 });
}
if (!data || !data.fields || !data.fields.reference) {
return null;
}
return {
label: (_a = (0, util_1.getValueOfField)(data.fields.label, service.locale)) !== null && _a !== void 0 ? _a : null,
reference: await (0, exports.normalizeReference)((0, util_1.getValueOfField)(data.fields.reference, service.locale), service),
};
};
exports.normalizeLabeledLink = normalizeLabeledLink;
const normalizeReference = async (data, service) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
if (!data) {
return null;
}
if (!data.fields) {
// load missing data
data = await (0, api_1.findOneEntryBySys)(data.sys, service.client, { depth: 10 });
}
if (!data || !data.fields) {
return null;
}
if ("internalReference" === data.sys.contentType.sys.id) {
const referenceSlug = await service.resolveInternalReferencePath((0, util_1.getValueOfField)(data.fields.reference, service.locale));
if (null === referenceSlug) {
return null;
}
const anchor = (0, util_1.getValueOfField)(data.fields.anchor, service.locale)
? `#${(0, util_1.getValueOfField)(data.fields.anchor, service.locale)}`
: "";
return {
title: (_a = (0, util_1.getValueOfField)(data.fields.title, service.locale)) !== null && _a !== void 0 ? _a : null,
url: `${referenceSlug}${anchor}`,
inNewTab: (_b = (0, util_1.getValueOfField)(data.fields.inNewTab, service.locale)) !== null && _b !== void 0 ? _b : false,
};
}
if ("externalReference" === data.sys.contentType.sys.id) {
return {
title: (_c = (0, util_1.getValueOfField)(data.fields.title, service.locale)) !== null && _c !== void 0 ? _c : null,
url: (_d = (0, util_1.getValueOfField)(data.fields.url, service.locale)) !== null && _d !== void 0 ? _d : null,
inNewTab: (_e = (0, util_1.getValueOfField)(data.fields.inNewTab, service.locale)) !== null && _e !== void 0 ? _e : false,
};
}
if ("assetReference" === data.sys.contentType.sys.id) {
return {
title: (_f = (0, util_1.getValueOfField)(data.fields.title, service.locale)) !== null && _f !== void 0 ? _f : null,
url: (_k = (0, util_1.getValueOfField)((_j = (_h = (_g = data.fields.asset) === null || _g === void 0 ? void 0 : _g.fields) === null || _h === void 0 ? void 0 : _h.file) === null || _j === void 0 ? void 0 : _j.url, service.locale)) !== null && _k !== void 0 ? _k : null,
inNewTab: true,
};
}
return null;
};
exports.normalizeReference = normalizeReference;