UNPKG

@apolitical/content

Version:

React library to interact with Apolitical's content using Contentful CDA

1 lines 4.03 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("contentful"),require("query-string")):"function"==typeof define&&define.amd?define(["contentful","query-string"],t):"object"==typeof exports?exports.ApoliticalContent=t(require("contentful"),require("query-string")):e.ApoliticalContent=t(e.contentful,e["query-string"])}(this,(function(e,t){return function(){"use strict";var n={897:function(t){t.exports=e},48:function(e){e.exports=t}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var i=r[e]={exports:{}};return n[e](i,i.exports,o),i.exports}o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return function(){o.r(i),o.d(i,{getEntries:function(){return C},getEntry:function(){return T},setContext:function(){return u}});var e=o(897),t=o(48),n={CONTENTFUL:{ENVIRONMENTS_MAPING:{beta:"beta",rc:"rc",live:"master",local:"beta"},LOCALES:{DEFAULT:"en",SUPPORTED:["en","es","fr","pt"]},SPACE:"txbhe1wabmyx",HOSTS:{CDN:"cdn.contentful.com",PREVIEW:"preview.contentful.com"}}};const{CONTENTFUL:{ENVIRONMENTS_MAPING:r,SPACE:s,HOSTS:a}}=n;let c={apiKey:null,previewKey:null,environment:null,isPreview:!1,host:a.CDN,space:s};const u=({apiKey:e,environment:n,isPreview:o=!1,location:i,previewKey:a,space:u=null})=>{c.apiKey=e,c.previewKey=a,c.environment=(e=>{if(!e)throw new Error("Cannot map environment: Environment not defined");if(!r[e])throw new Error(`Cannot map environment: No mapping found for environment ${e}`);return r[e]})(n),c.isPreview=o||(e=>{let n=!1;if(e&&e.search){const r=(0,t.parse)(e.search);n=r.isPreview&&"true"===r.isPreview}return n})(i),c.space=u||s},f=(e=!1)=>{const{apiKey:t,environment:n,isPreview:r,previewKey:o,space:i}=c;return!0===r||!0===e?{accessToken:o,environment:n,host:a.PREVIEW,space:i}:{accessToken:t,environment:n,host:a.CDN,space:i}},l=e=>"object"==typeof e&&null!==e,p=e=>Array.isArray(e)&&e.length,y=(e,t)=>{if(!l(e))throw new Error("Cannot flatten fields");const{fields:n,sys:r,metadata:o}=e;if(!n)throw new Error("Cannot flatten fields");let i={...n};if(l(r)){const{contentType:e,createdAt:t,updatedAt:n}=r;e&&Object.assign(i,{contentType:e.sys.id}),t&&Object.assign(i,{createdAt:t}),n&&Object.assign(i,{updatedAt:n})}if(t&&l(o)){const e=(e=>{const{tags:t}=e;let n=[];if(p(t))for(const e of t)n.push(e.sys.id);return n})(o);p(e)&&Object.assign(i,{tags:e})}return i},{CONTENTFUL:{LOCALES:d}}=n,m=(e,t)=>l(e)&&((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(e,t),w=(e,t)=>{const n=(e=>d.SUPPORTED.includes(e)?e:d.DEFAULT)(t);return m(e,n)?e[n]:m(e,d.DEFAULT)?e[d.DEFAULT]:e},E=e=>l(e)&&e.sys&&"Asset"===e.sys.type,v=(e,t,n)=>{const{title:r,file:o}=y(e);if(!o)throw new Error("Cannot flatten asset");const{contentType:i,fileName:s,url:a,details:c}=w(o,t);if(!a)throw new Error("Cannot flatten asset");return n?{description:r||s,height:c&&c.image&&c.image.height,type:i,url:a,width:c&&c.image&&c.image.width}:a},g=e=>l(e)&&e.sys&&"Entry"===e.sys.type,b=(e,t,n,r)=>{const o={},i=((e,t)=>{const n={};for(const[r,o]of Object.entries(e))n[r]=w(o,t);return n})(y(e,r),t);for(const[e,r]of Object.entries(i))E(r)?o[e]=v(r,t,n):g(r)?o[e]=b(r,t,n):p(r)?o[e]=r.map((e=>E(e)?v(e,t,n):g(e)?b(e,t,n):e)):o[e]=r;return o},h=({items:e})=>{if(!p(e))throw new Error("Cannot read items");return e},O=async(t,n)=>{const r=f(n),o=await(0,e.createClient)(r);return await o.getEntries(t)},T=async(e={},t={},n=!1)=>((e,{flatten:t=!0,locale:n="en",assetDetails:r=!1,tags:o=!1})=>{const i=h(e);return t?b(i[0],n,r,o):i[0]})(await O(e,n),{...e,...t}),C=async(e={},t={},n=!1)=>((e,{flatten:t=!0,locale:n="en",assetDetails:r=!1,tags:o=!1})=>{const i=h(e);return t?((e,t,n,r)=>e.map((e=>b(e,t,n,r))))(i,n,r,o):i})(await O(e,n),{...e,...t})}(),i}()}));