🖼️
GyazoのNodeJSライブラリーをTypescriptで作った話
Gyazoのnodejs用のclientライブラリーgyazo-api-ts を作って、OSSで公開しました。
人生で初めて、個人のnpmパッケージを公開したのですが、思ったより簡単でした。
きっかけ
個人で自分用のraycastの拡張アプリを作っていて、そこでgyazoに画像をアップロードする必要があり、npmパッケージを探した結果、 gyazo-api がありましたが、かなり古くて型情報がなかったのと、依存パッケージが古かったので、新しくTSのパッケージがほしいと思ったのがきっかけでした。
API設計
基本的に Gyazo API に書かれている内容を簡単に呼び出せるようにしてくれる、ごく単純なライブラリーです。
なので、元々あった node-api をフォークして型だけつけようと思いましたが、結局かなり改修してしまいました。
ただ、基本的にやっていることは一緒です。
例外を投げないようにする
個人的にsupabaseのjs clientが結構すきで、そのAPI通りにsuccessとerrorを返すようにしました、おそらくsupabaseはgoっぽい書き方をしている気もします。
import { Gyazo } from 'gyazo-api-ts';
const gyazo = new Gyazo('your-access-token');
const { success, error} = await gyazo.get('image-id');
if(error) {
console.error(error);
} else {
console.log(success);
}
その他の開発周り
最後に
今はAuthを含まない画像操作系のラッパーだけです、今後もし必要になったら、Gyazoはoauth対応しているので、認証・認可機能を追加しようと思っています。
PRとIssueお待ちしております。
Discussion