@luno-cms/sdk
v0.1.0
Published
TypeScript client for LUNO public content API
Readme
@luno-cms/sdk
LUNO 公開コンテンツ API(/public/v1/...)向けの軽量 TypeScript クライアントです。fetch のみに依存し、Node 20・Edge・Cloudflare Workers で利用できます。
使い方
import { LunoClient } from "@luno-cms/sdk";
const luno = new LunoClient({
apiUrl: "https://your-api.example.com",
apiKey: "luno_pub_…", // 任意(`X-Luno-Public-Api-Key`)
});
const { items, total } = await luno.entries.list("blog", { page: 1, limit: 10 });
const entry = await luno.entries.get("blog", "my-post");
const mediaUrl = luno.media.getUrl("luno-asset:<tenantId>:<assetId>");開発
pnpm --filter @luno-cms/sdk build # 先に openapi-typescript で src/generated/openapi.ts を生成してから tsup
pnpm --filter @luno-cms/sdk testOpenAPI だけ再生成する場合:
pnpm --filter @luno-cms/sdk run generate:openapi生成物は src/generated/openapi.ts(.gitignore 対象)。@luno-cms/sdk からは paths / components 等を src/openapi-types.ts 経由で再エクスポートしています。
npm への公開
スコープ @luno で npm に公開する(publishConfig.access: public)。初回は npm 上で @luno スコープの権限と Automation / publish 用トークンを用意する。
手動(リポジトリルート)
pnpm install
pnpm --filter @luno-cms/sdk publish --access public
# ローカルで npm にログイン済みの場合。未ログインなら先に npm loginGitHub Actions
リポジトリにシークレット NPM_TOKEN を設定し、ワークフロー「Publish @luno-cms/sdk」を workflow_dispatch で実行する。実行前に packages/sdk/package.json の version を上げてコミットする(同バージョンの再 publish は不可)。
