about summary refs log tree commit diff
path: root/website/sandbox/contentful/src/contentful.ts
blob: e09cd8fc4ad3a00ee328bd3cbdd4d6c03c0c690c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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');
    }
  }
}