about summary refs log blame commit diff
path: root/website/sandbox/contentful/src/contentful.ts
blob: e09cd8fc4ad3a00ee328bd3cbdd4d6c03c0c690c (plain) (tree)
























                                                                                    
import { createClient } from "contentful";
import type { ContentfulClientApi } from "contentful";

const space = process.env.CONTENTFUL_SPACE_ID;
const accessToken = process.env.CONTENTFUL_ACCESS_TOKEN;

let client: ContentfulClientApi;

// Idempotent way to get a reference to the Contentful client.
export const getClient = (): ContentfulClientApi => {
  if (typeof client !== 'undefined') {
    return client;
  } else {
    if (typeof space === 'string' && typeof accessToken === 'string') {
      let client = createClient({
        space,
        accessToken,
      });

      return client;
    } else {
      throw new Error('Please set CONTENTFUL_SPACE_ID and CONTENTFUL_ACCESS_TOKEN');
    }
  }
}