nextjs-seo-manager
Version:
2 lines (1 loc) • 6.78 kB
JavaScript
import e from"react";import t from"axios";function a(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var r=a.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a}function l(e,t,a,r){return new(a||(a=Promise))(function(n,o){function l(e){try{i(r.next(e))}catch(e){o(e)}}function s(e){try{i(r.throw(e))}catch(e){o(e)}}function i(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a(function(e){e(t)})).then(l,s)}i((r=r.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const s=()=>{let e={};return process.env.SEO_MANAGER_MODULE_SECRETKEY&&(e.secretKey=process.env.SEO_MANAGER_MODULE_SECRETKEY),process.env.SEO_MANAGER_MODULE_PROJECTKEY&&(e.projectKey=process.env.SEO_MANAGER_MODULE_PROJECTKEY),process.env.SEO_MANAGER_MODULE_PROJECTID&&(e.projectId=process.env.SEO_MANAGER_MODULE_PROJECTID),e},i=e=>{process.env.SEO_MANAGER_MODULE_PROJECTPLAN=JSON.stringify(e)},c=(e,a="put",r,n,o)=>new Promise((i,c)=>l(void 0,void 0,void 0,function*(){var l,d,m;try{const d=s();if(!(null==d?void 0:d.projectId))return c({results:!1,error:"Project Id is required"});const m=p(e),u=n||("Test"!==process.env.NEXT_PUBLIC_NODE_ENV_MANAGER&&"Development"!==process.env.NEXT_PUBLIC_NODE_ENV_MANAGER?`https://v1.seomanager.dev/${m}`:"Test"===process.env.NEXT_PUBLIC_NODE_ENV_MANAGER?`http://localhost:3002/${m}`:`https://v1-testing.seomanager.dev/${m}`);let g={X_ProjectId:null==d?void 0:d.projectId,X_ProjectKey:(null==d?void 0:d.projectKey)||""};o&&(g=Object.assign(Object.assign({},g),o));const E=yield t(u,{method:a,data:r||{},headers:g});return i(Object.assign(Object.assign({},(null==E?void 0:E.data)||{}),{results:null===(l=null==E?void 0:E.data)||void 0===l?void 0:l.results,statusCode:E.status}))}catch(e){return console.log("SERVER CALL ERROR:",e),i(Object.assign(Object.assign({},(null===(d=null==e?void 0:e.response)||void 0===d?void 0:d.data)||{}),{results:!1,data:null===(m=null==e?void 0:e.response)||void 0===m?void 0:m.data,statusCode:e.response.status}))}})),p=e=>{let t=e;return"/"===t[0]&&(t=t.replace("/","")),t},d=e.lazy(()=>import("./index-10e9b395.js"));class m extends e.Component{constructor(t){super(t),a(this,"componentDidMount",async()=>{this.setState({loading:!1,loaded:!0,componentLoaded:!0});try{await c("/seo/ping","put",{projectId:this.props?.data?.global?.projectId||"",pageId:this.props?.data?.page?.pageId||"",clientTime:(new Date).toISOString(),path:this.props?.data?.page?.path||"",userAgent:navigator.userAgent})}catch(e){console.error("PING API ERROR")}}),a(this,"componentDidUpdate",e=>{JSON.stringify(e?.data)!==JSON.stringify(this.props?.data)&&this.props?.data&&this.props?.head&&this.setState({data:this.props?.data,head:this.props.head(this.formatHead(this.props?.data))})}),a(this,"checkComponentErrors",e=>{if(!e.head)throw"Please add this tag to your SEOHelper component 'head={(data) => (<Head>{data}</Head>)}'. If your not using NextJS replace <Head>{data}</Head> with <Helmet>{data}</Helmet> from npm react-helmet."}),a(this,"formatHead",t=>t&&!1!==t.valid?e.createElement(e.Fragment,null,e.createElement("meta",{property:"og:locale",content:"en_US"}),e.createElement("meta",{property:"og:type",content:"website"}),e.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),e.createElement("meta",{name:"robots",content:`${t?.page?.index||"index"}, ${t?.page?.follow||"follow"}`}),t?.global?.themeColor&&e.createElement("meta",{name:"theme-color",content:t?.global?.themeColor}),t?.global?.favicon?.url&&e.createElement("link",{rel:"icon",type:"image/x-icon",href:t.global.favicon.url,sizes:"192x192"}),t?.global?.canonicalURL&&t?.page?.path&&e.createElement("link",{href:`${t.global.canonicalURL}${t.page.path}`,rel:"canonical"}),t?.global?.canonicalURL&&t?.page?.path&&e.createElement("meta",{property:"og:url",content:`${t.global.canonicalURL}${t.page.path}`}),t?.page?.image?.url&&e.createElement("meta",{property:"og:image",content:t.page.image.url}),t?.page?.image?.url&&e.createElement("meta",{name:"twitter:image",content:t.page.image.url}),e.createElement("title",null,t?.page?.title||t?.global?.defaultTitle||""),e.createElement("meta",{property:"og:title",content:t?.page?.title||t?.global?.defaultTitle||""}),e.createElement("meta",{name:"twitter:title",content:t?.page?.title||t?.global?.defaultTitle||""}),e.createElement("meta",{name:"description",content:t?.page?.description||t?.global?.defaultDescription||"",key:"description"}),e.createElement("meta",{property:"og:description",content:t?.page?.description||t?.global?.defaultDescription||""}),e.createElement("meta",{name:"twitter:description",content:t?.page?.description||t?.global?.defaultDescription||""}),t?.page?.keywords&&e.createElement("meta",{name:"keywords",content:t.page.keywords}),t?.page?.ldJson&&e.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:t.page.ldJson}}),t?.page?.events&&e.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t.page.events)}})):null),this.checkComponentErrors(t),this.state={data:t.data,head:t.head(this.formatHead(t.data)),loading:!0,loaded:!1,componentLoaded:!1}}render(){return e.createElement(e.Fragment,null,!1===this.state.loaded?e.createElement(e.Fragment,null,this.state.head):e.createElement(e.Fragment,null,this.props.head(this.formatHead(this.state.data))),!0===this.state.componentLoaded?e.createElement(e.Suspense,{fallback:e.createElement(e.Fragment,null)},e.createElement(d,{data:this.state.data})):null)}}export{m as S,n as _,a,l as b,i as c,o as d,s as r,c as s};