tips chips

日々の作業で出てきた技術メモの切れ端を置いておくページ

notion-sdk-jsの内部で使われるfetchにオプションを渡したりモックしたりする

外部からfetchを渡すことができるオプションがちゃんと存在しているよ、という話

https://github.com/makenotion/notion-sdk-js

Notion公式のJSライブラリ。しっかりとTSの型が当たっていて大変便利でこのサイトでも使っている。

このライブラリは内部でfetchを使ってリクエストを投げているわけだが、そのfetchにオプションを渡したいというようなことが時々あったりなかったりする。(このサイトではnextのrevalidateオプションを渡したい、という欲求が発生したりしている)

これを書いている時点ではREADMEとかには書いていないが、ちゃんと外部からfetchの実装を渡すことができる作りになっているので以下のような感じで大丈夫だった。これを使えばレスポンスmockしてテスト書いたりもできそう。

new Client({ auth: 'SECRET_KEY', fetch: (url, init) => { return fetch(url, { ...init, next: { revalidate } }) // ここでお好きなオプションを渡すなどする })