about summary refs log tree commit diff
path: root/users/wpcarro/website/sandbox/contentful/src/contentful.ts
blob: 02ebc92b68df4823eb3463a7e0e3d2ff3dee104b (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
26
27
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"
      );
    }
  }
};