@hackersheet/core

GraphQL APIのクライアントを含むパッケージです。

Next.jsでの使用例

clientの定義

lib/hackersheet/client.ts
import { createClient } from '@hackersheet/core';
import { cache } from 'react';
const client = cache(() =>
  createClient({
    url: process.env.HACKER_SHEET_API_ENDPOINT!,
    accessKey: process.env.HACKER_SHEET_API_ACCESS_KEY!,
  })
)();
export { client };

ドキュメント一覧の取得

page.tsx
import Link from 'next/link';

import { client } from '@/lib/hackersheet/client';

export default async function Home() {
  const { documents } = await client.getDocuments();

  return (
    <main>
      <ul>
        {documents &&
          documents.map((document) => (
            <li key={document.id}>
              <Link href={`/posts/${document.slug}`}>{document.title}</Link>
            </li>
          ))}
      </ul>
    </main>
  );
}