Contentfulで定義したレスポンスをTypeScriptで使う March 18, 2025
このブログはHeadless CMSである
Contentful で記事を作成し、Next.jsでデータを取得して表示しています。
今まで型定義を自前で用意していたのですが、自動で生成するライブラリを使うことにしました。
contentful-typescript-codegen を使う方法を最初試していたのですが、メンテナンスがあまり活発でないことと、Contentfulのv10のアップデート に失敗してしまうことがわかりました。これから対応する方は注意してください。
型情報を含んだjsonを読み込んでTypeScriptの型を作るので、まずはそのjsonを作る準備をします。contentful-cliを使います。
npm install -D contentful-cli jsonを作るスクリプトをpackage.jsonに追加します。export-confing.jsonを別で作り、そこに設定値を入れます。この設定値には公開したくないアクセストークンをいれるので、gitignoreに入れてコミットしないようにします。
ちなみにmanagementTokenはCMA tokensからPATを作成することで取得しました。
{
// ...
"scripts" : {
"contentful-export" : "contentful space export --config export-config.json"
}
}
{
"spaceId" : "XXXX" ,
"managementToken" : "CFPAT-XXXX" ,
"contentFile" : "contentful-export.json" ,
"skipContent" : true ,
"skipRoles" : true ,
"skipWebhooks" : true ,
"skipTags" : true
}npm run contentful-exportを実行することで、型データのjson(contentful-export.json)が作られました。
次にこの型データjsonからTypeScriptの型を作ります。cf-content-types-generatorパッケージをインストールします。
npm install -D cf-content-types-generator package.jsonに以下のスクリプトを追加します
{
// ...
"scripts" : {
"contentful-generate-types" : "cf-content-types-generator contentful-export.json -o ./@types --v10 --response"
}
}スクリプトを実行することで型が生成されます
npm run contentful-generate-types これで型が生成されました。これで安全に開発ができます。
eityans.comドメインを取得してみた March 15, 2025
X(Twitter) もGitHub も全てeityansで統一しているし、せっかくなのでドメインも取得してみました。
Cloudflareで取得。年10$ほどで、それぐらいなら良いかなと思いました。
電車移動中にふと欲しくなったのでその場で取得。帰宅してからこのブログに設定しました。
このブログはVercelにホスティングしており、設定画面のドメインからポチポチするだけで反映されました。便利。
具体的に設定したこと Cloudflare側 Vercel側
テキストコミュニケーションのデメリットは本当にデメリットなのか March 14, 2025
完全リモートの会社に転職して1年半近く経つ。
やり取りは全てSlack。文字だけのコミュニケーションで、会議と言えるものは朝会で一日5分程度。あと面接ぐらいか。同棲していなかったら一言も話さないこともありそう。
仕事を進めるうえで調整しなければならないことが発生したときも全てSlack。突発な会議や打ち合わせは行ったこと無い。それで仕事が進むのかと思う人もいるかも知れないが、案外進むものだ。
かなり極端な会社にいると思う。自分なりにテキストコミュニケーションだけで仕事を進めるメリットとデメリットを考えてみる
メリット 仕事を邪魔されない
透明性
後世に残る
考えが整理される
自己解決することがある
デメリット デメリットを小さくするために メリットとデメリットを見ると、メリットは組織やチームに関係し、デメリットは個人に関係していることに気付く。であるならば、個人の改善が大いに効果を発揮するだろう。以下を意識する。
質問を受けたらすぐに反応する
絵文字や「!」をつける