Contentfulで定義したレスポンスをTypeScriptで使う
このブログは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
これで型が生成されました。これで安全に開発ができます。
FeedlyからFeederに移行した
RSSリーダーを地味に使っている。全ての記事を追うつもりはないが、たまに見ると気になるブログが更新されたりしていて面白い。
Feedlyを使っていた理由は特にない、基本的にツールにこだわりはない人間なので、気になるブログやサイトの記事の新着が通知されればなんでもいい。特にChrome拡張機能が嬉しく、右上のアイコンから手軽に記事を見に行けるのが良かった。
FeedlyからFeederに移行したのはこの拡張機能が使えなくなったからだ。やはり動線がないと記事を読みにいかない。他のツールを探し、ぱっと目についた
Feederに移行した。
移行方法はあるのかもしれないが、いまいちすぐに方法を見つけられなかった。面倒だが、せっかくなのでこれを機に購読するサイトの整理をした。
整理してみると面白く、自分の関心事が移っていることがわかった。例えばCSS周りのテクを紹介するサイトは移行しなかった。転職する前はフロントエンドの細かい実装も行っていたが、今の職場はそれらができるデザイナがいる。彼に任せればよくなったので、そのあたりを追いかける必要性が薄くなったりしている。
他にも、逆に何年も更新していないブログを見て、この人は今どうなっているんだろうと思いを馳せたりした。逆に、もしかしたらこのブログに対して同じようなことを考えている人がいるかもと思い、このできことを書いてみることにした。
移行作業は最初は面倒だと思ったが、自分やいろんな人が変わっていることを感じて案外面白かった。作業自体は1時間程度。定期的に整理するのは今後もやってみようと思った。
2025年に読んだ本
随時更新していく。上に行くほど最近読んだ本。
八丈島に行ったり、柏島に行ったり、旅行中にこういう本を読むとテンションが上がる。
この本はインドの話がメイン。とても面白い。インドは学生のうちに行けばよかったなぁと思っている。まだ間に合うかな
6/30 読了
深夜特急の2冊目。出てくる人物が面白い。
旅の思い出ってそこで出会った人が大きかったりするよなと思ったり。出てくる人が個性的で、どこか悲しい。
6/14 読了
構造学習論という、小学校の国語の授業を大人に向けて展開した本。
後半は社会人一年目に向けた文章(なぜ議事録作成が大事なのか?みたいな)になっており、少し飛ばして読んだ。
大事な観点を伝えているので、その観点を知らない人からしたら有益な本かもしれない。ただ、観点は知っているが日々の実務や生活でどう活かすのか悩む人にはあまり解決にならないかも。
6/8 読了
沢木耕太郎の冒険譚。1974年春の話。今から50年以上前に、26歳で一人で冒険を始めた人の話。実際の旅の様子が伝わり読んでいて楽しい。香港の話では2023年の台湾で10日ほど過ごした日々を思い出した。現地の人とのふれあいに戸惑う様子が共感できる一方、驚くほど大胆な選択をしていく姿は尊敬すらある。
マカオの大小の話が面白い。自分は韓国で大小をしたことがあるが、あまりイカサマを感じてはいなかった。
巻末の対談で、一人で行くから地図やガイドブック無しで過ごせて良い。という話があってとても共感した。複数人で旅をするとどうしても計画が必要になりスタンプラリーのような感覚になってしまう。誰かと行く旅行も思い出としては最高だけど、一人で行く旅も良い。大学院自体にドイツで過ごした日々を今でも思い出すことがある。旅をしたくなった。
6/8 読了
思考のアンチパターンが52個紹介されている。新聞のコラムを本にしたもので、一つ一つが3~4ページほどでサクサク読める。行動経済学や認知心理学に関する話が多く、どこかで聞いたほうな話が多い。人間が陥りやすい誤った思考法を知ることで、誤った考えを防いで有意義に生きようという趣旨の本。
社会のためにボランティアで素人労働をするぐらいなら、その時間本業で稼ぎ募金をしてその道のプロにやらせたほうが仕事が生まれるし生産的だという話が印象に残っている。確かに。
6/7 読了
よくきく話がタイトルになっている。きっと古典的な本なのだろう。顧客はモノではなく価値を買っているというのは過去の会社や、大学院でデザイン思考の授業を取った経験から身を持って感じている。
この本はそれをベースに、マーケティングの基礎であるベネフィット、セグメンテーション、差別化、4Pの話をしている。
日常でなにかモノを買ったりサービスを利用するときの視点が増えるいい本だった。
6/1 読了
難病に苦しむ著者の半生と、安楽死を求めてスイスに行った話がこの本のメイン。安楽死直前で断念しているため、著者はまだ生きている。その気持も綴られている。
壮絶というべきか、重すぎる内容にしんどい気持ちになる。著者の医者に対する怒りが随所に現れているが、読んでいるとそれもしょうがないだろう。
最後に父親と母親の思いが書かれている。どちらの内容も正直で、整理しきれていない思いが伝わってくる。内容は重いが、知らない世界を知ることが出来た。
5/27 読了
たまにはこういうライトな自己啓発を読みたくなる。電車移動にちょうどよかった
5/26 読了
新興宗教や新興政党、マルチなどが使うテクニックを知ることができる。書かれている内容はどれも納得感があり、さらに一部の人々がそれらのカルトにハマる理由も腹落ちした。
ボルダリングでよく一緒に登っていた人からマルチの勧誘を受けた経験があるので、知識として持っておくことはとても大事。読み物としても面白かった。
ビジネス書っぽい体裁を取ろうとしているが、なんだかんだマルチテクニック紹介で収まっている感じ。
気になった言葉:ラビットホール、レッドピル、マンデラ・エフェクト
5/25 読了
「SCRUM MASTER THE BOOK」を読んだ
ここ最近リーダーっぽいことをやっているので、関連するような本を読んでいる。「,まず自分はスクラムについて少し誤解していたようだ。これまではスクラムのことを何らかのミーティング手法の集合ような感じで認識していたが、それは違った。,スクラムの目標はチームを自己組織化した状態にすることであり、決まった方法があるものではない。スクラムマスターは常にチームを観察し、ときに導き、ときに教え、障害物をなくし、会…
5/23 読了
チームの成果を上げるために何かヒントにならないかと読んだ本。スクラムはプロダクトオーナーと協力し、何を作るのか、どのように作るのかを考えていく。今自分が進めているのはどういうものを作るのかは既に決まっていて、いかに個人が与えられたタスクを消化し、最大限の能力を発揮できるかというところに関心があるため、少しズレているかも知れないなと思った。ただスクラムについて体系的な本をこれまで読んだことがなかったのでとても興味深かったのと、哲学やプラクティスは役に立ちそうと思った。
キーワードとして自己組織化がある。スクラムの最終目標は自己組織化するチームになることなのだと思う。
5/18読了
最近リーダーをやっているので読んでる。心構えのようなものを知った。
5/14読了
読み物として面白かった
5/13 読了
コードレビューで安易に質問形式を使うとチームが疲弊する
修正依頼の意図があるならば、素直にその内容を書いたほうが良い。安易に質問形式を使うとチームが疲弊する。,,質問形式のレビューとは,例えばユーザーのidを抽出したいときに以下のコードがあったとして,user_ids = User.where(hoge).map(&:id),それに対して,,みたいな質問形式。これ、なるべくやめたほうが良い。,「この処理で必要なのはIDだけなので、pluck(:id)を…
前に書いたこの内容をより充実させた感じ。同意しかない。
5/2 読了
1,2年目ぐらいの人が読む本だなと思い、途中から流し読み程度に読んだ。そりゃそうだよねーという内容が書かれているので、新しい発見はあまりなかったかも。
ただレビューのコミュニケーションの話はとても良くまとまっていて、人に教えたりするときに使えるかも
4/29読了
SOFT SKILLSを書いた人の本。名前の通り、キャリアについて深く考えた。
4/17 読了
名著。中身ももちろん良かった。至極真っ当なことを述べている。読みながら反省することが多い本。
人を動かすというタイトルだが、より正確に言うならば、「相手の立場や意見、感情を一番に尊重し、相手が自発的により良い方向に気持ちよく行動させるための方法」を教えてくれる。
原則は相手に重要感を与えること。自分はそういうトーンで仕事を依頼したり会話をしたりできているだろうか。言い方だけの話ではなく、相手のことを自分がどう見るのかを教えてくれる本なので、この本から得た視点で人を見ていきたい。
相手を議論や結果で打ち負かしたとき、自分は気持ちいいかもしれないが、相手の気持ちはどうだろうか。そういう短期的な快楽を自己中心的な理由で選択するのは得策ではない。振り返ると、それぐらい相手に譲ってやれよという場面がいくつかある。相手の誤りを指摘することは正しいかもしれないが、合理的とは言えない。
自分はどれだけ人のことを褒めているだろうか、今日から褒めていきたい。
3/30 読了
本の存在は知っていたが読んでいなかった本。第二版があるとのことなので読んでみた。
もっと早く読めば良かったかもしれないし、今読んでちょうどいい本だったかもしれない。
この本を読んですぐに行動を変えようと思ったことが二つある。一つはブログを継続的にメンテしようと考えた。ドメインを取得したのもそのせいだ。放置していたら叱ってほしい。二つ目はポモドーロ・テクニックだ。今日が日曜日なので、明日の仕事で活かすのが楽しみ。
読んで良かった。
3/16読了
話題になっているので読んだ。リーダブルコードのような本かと思ったが、コードの整理方法を紹介すると言うよりは、コードを整理すること前提で行動して過度なコストを払っていないだろうか?という気づきを与えてくれる本。
本書曰く整頓はプリングルスのようなもので、少し始めるとどんどん止まらなくなるものらしい。すごくわかる。それによってPRが肥大化するのもわかる。かといって整理しないのも将来の負債だし。
整頓周りの要バラをより深く考察している本。
整頓の顧客は自分自身という言葉も響いた。整頓はある意味自己満足かもしれない。とりあえず何でもかんでも整理することはなくなりそう。
3/8 読了
ドキュメンテーションの重要性は常々思っている。特に今の会社ではフルリモート&非同期コミュニケーションがほとんどなのでその思いは強くなっている。
社内で共有して同じ考え方や近い考え方で行動できるようにしても良いかもしれない。
3/4 読了
フェルマーの最終定理の歴史が著者の楽しい文章で紹介されている。サイモン・シンの
フェルマーの最終定理を読んでいたため、歴史の大枠は知っていたが、この話は何度聞いても感動する。今回も感動した。
一日であっという間に読んでしまった。
2/6 読了
世界史の勉強をしたことがないので、教養として読んだ。
権力が集中すると荒れてコケるパターンが本当に多い。二枚舌外交の意味を知った。
2/2 読了
難しい。ただ確実に一つ上のレベルに引き上げてくれる。
定期的に読み返す予定。トーナメントの章を読んで久しぶりにトナメやりたくなってきた。
1/27 読了
哲学ブーム来てる。自分は哲学については全く知らなかったが、とても楽しく読めた。
歴史上の様々な哲学を紹介している。なぜその考えが生まれたのかの説明と、その考えの内容が次々に展開される。その結末は予想外だった。面白い時代に生きているのだと思う。
1/18 読了