UNPKG

@apolitical/content

Version:

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

1 lines 4.2 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={696:function(t){t.exports=e},754: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={};o.r(i),o.d(i,{getEntries:function(){return S},getEntry:function(){return C},setContext:function(){return y}});var s=o(696),a=o(754),c={CONTENTFUL:{ENVIRONMENTS_MAPING:{beta:"beta",rc:"rc",live:"master",local:"beta"},LOCALES:{DEFAULT:"en",SUPPORTED:["en","es","fr","pt"]},SPACE:"gs9txytepevj",HOSTS:{HOSTNAME:"apolitical.co",CDN_PATH:"/contentful",PREVIEW_PATH:"/contentful-preview"}}};const{CONTENTFUL:{ENVIRONMENTS_MAPING:l,SPACE:u,HOSTS:f}}=c;let p={apiKey:null,previewKey:null,environment:null,isPreview:!1,space:u};const y=({apiKey:e,environment:t,isPreview:n=!1,location:r,previewKey:o,space:i=null})=>{p.apiKey=e,p.previewKey=o,p.environment=(e=>{if(!e)throw new Error("Cannot map environment: Environment not defined");if(!l[e])throw new Error(`Cannot map environment: No mapping found for environment ${e}`);return l[e]})(t),p.isPreview=n||(e=>{let t=!1;if(e&&e.search){const n=(0,a.parse)(e.search);t=n.isPreview&&"true"===n.isPreview}return t})(r),p.space=i||u,p.isLocal="local"===t},d=(e=!1)=>{const{apiKey:t,environment:n,isPreview:r,previewKey:o,space:i,isLocal:s}=p;let a,c;return c=!0===r||!0===e?f.PREVIEW_PATH:f.CDN_PATH,a="master"===n?f.HOSTNAME:"beta"!==n&&"rc"!==n||s?"localhost":`${n}.${f.HOSTNAME}`,!0===r||!0===e?{accessToken:o,environment:n,host:a,basePath:c,space:i}:{accessToken:t,environment:n,host:a,basePath:c,space:i}},E=e=>"object"==typeof e&&null!==e,w=e=>Array.isArray(e)&&e.length,m=(e,t)=>{if(!E(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(E(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&&E(o)){const e=(e=>{const{tags:t}=e;let n=[];if(w(t))for(const e of t)n.push(e.sys.id);return n})(o);w(e)&&Object.assign(i,{tags:e})}return i},{CONTENTFUL:{LOCALES:v}}=c,T=(e,t)=>E(e)&&((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(e,t),g=(e,t)=>{const n=(e=>v.SUPPORTED.includes(e)?e:v.DEFAULT)(t);return T(e,n)?e[n]:T(e,v.DEFAULT)?e[v.DEFAULT]:e},O=e=>E(e)&&e.sys&&"Asset"===e.sys.type,P=(e,t,n)=>{const{title:r,file:o}=m(e);if(!o)throw new Error("Cannot flatten asset");const{contentType:i,fileName:s,url:a,details:c}=g(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},A=e=>E(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]=g(o,t);return n})(m(e,r),t);for(const[e,r]of Object.entries(i))O(r)?o[e]=P(r,t,n):A(r)?o[e]=b(r,t,n):w(r)?o[e]=r.map(e=>O(e)?P(e,t,n):A(e)?b(e,t,n):e):o[e]=r;return o},h=({items:e})=>{if(!w(e))throw new Error("Cannot read items");return e},N=async(e,t)=>{const n=d(t),r=await(0,s.createClient)(n);return await r.getEntries(e)},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?b(i[0],n,r,o):i[0]})(await N(e,n),{...e,...t}),S=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 N(e,n),{...e,...t});return i}()});