CMS SDK v2 への移行
このドキュメントでは、CMS SDK v1 から v2 への移行手順と注意点について説明します。
変更点の概要
- CLI の廃止
- NextAuth 連携 API のモジュール分離とリネーム
@orizm/common
依存を peerDependency から削除
移行手順
CLI の変更
@orizm/cms-sdk
に含まれていた CLI コマンド (orizm-cms
) は廃止され、@orizm/cli
パッケージに統合されました。コマンドを呼び出すプロジェクトで専用の CLI パッケージをインストールし、コマンドを修正してください。
npm install --save-dev @orizm/cli
# 旧
orizm-cms update
# 新
orizm push
@orizm/cms-sdk
v2 を利用する場合、CLI も v2 を利用する必要があります。
CLI の利用方法の詳細は ドキュメント を参照してください。
NextAuth 連携の変更
NextAuth 連携用の API を import するパスが変更され、リネームされました。また、一部のクラスは廃止されました。
次の変更を行ってください。
OrizmNextAuth.generate
を generateOrizmNextAuth
に置き換える
// 旧コード
import { OrizmNextAuth } from "@orizm/cms-sdk";
const orizmAuth = OrizmNextAuth.generate({
id: "Orizm",
name: "Orizm",
clientId: env.ORIZM_CLIENT_ID,
clientSecret: env.ORIZM_CLIENT_SECRET,
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
});
// 新コード
import { generateOrizmNextAuth } from "@orizm/cms-sdk/next-auth";
const orizmAuth = generateOrizmNextAuth({
id: "Orizm",
name: "Orizm",
clientId: env.ORIZM_CLIENT_ID,
clientSecret: env.ORIZM_CLIENT_SECRET,
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
});
OrizmCMSClient_NextAuthSession
を OrizmNextAuthCMSClient
に置き換える
// 旧コード
import { OrizmCMSClient_NextAuthSession } from "@orizm/cms-sdk";
import { CMSClient } from "@repo/orizm/cms";
import { getServerSession } from "next-auth";
import { authOptions } from "../auth/auth-options";
import { env } from "@/env";
export function getServerSideOrizmClient(): CMSClient {
return new CMSClient(
new OrizmCMSClient_NextAuthSession(
{
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
baseURL: env.NEXT_PUBLIC_ORIZM_BASE_URL,
},
async () => (await getServerSession(authOptions)) ?? undefined,
),
);
}
// 新コード
import { OrizmNextAuthCMSClient } from "@orizm/cms-sdk/next-auth";
import { CMSClient } from "@repo/orizm/cms";
import { getServerSession } from "next-auth";
import { authOptions } from "../auth/auth-options";
import { env } from "@/env";
export function getServerSideOrizmClient(): CMSClient {
return new CMSClient(
new OrizmNextAuthCMSClient(
{
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
baseURL: env.NEXT_PUBLIC_ORIZM_BASE_URL,
},
async () => await getServerSession(authOptions),
),
);
}
OrizmCMSClient_NextAuthFront
の廃止
OrizmCMSClient_NextAuthFront
クラスは廃止されました。代わりに OrizmNextAuthCMSClient
クラスを使用してください。
// 旧コード
import { OrizmCMSClient_NextAuthFront } from "@orizm/cms-sdk";
import { CMSClient } from "@repo/orizm/cms";
import { env } from "@/env";
const client = new CMSClient(
new OrizmCMSClient_NextAuthFront({
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
baseURL: env.NEXT_PUBLIC_ORIZM_BASE_URL,
}),
);
// 新コード
import { OrizmNextAuthCMSClient } from "@orizm/cms-sdk/next-auth";
import { CMSClient } from "@repo/orizm/cms";
import { getSession } from "next-auth/react";
import { env } from "@/env";
const client = new CMSClient(
new OrizmNextAuthCMSClient(
{
projectName: env.NEXT_PUBLIC_ORIZM_PROJECT,
baseURL: env.NEXT_PUBLIC_ORIZM_BASE_URL,
},
async () => getSession(),
),
);
@orizm/common
のアンインストール
@orizm/common
を @orizm/cms-sdk
の peer dependencies から dependencies に変更しました。@orizm/common
をコードで利用していない場合は、アンインストールできます。
npm uninstall @orizm/common
ただし、@orizm/common
をコードで利用している場合は、最新バージョンがリリースされているためアップデートしてください。
npm install @orizm/common@latest