11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

aspidaの隠し機能まとめ

Posted at

まだまだマイナーなライブラリでして、ソースを漁って見つけたREADMEに載ってないような隠し機能がいくつかあるので、まとめておこうと思います。参考になれば幸いです。(今後も見つければ追記するつもりです。)

aspidaとは?

GitHubのrepo

TypeScriptと親和性の高いHTTPクライアントのライブラリ。
パスを文字列として持つのではなくメソッドをそれを経由するので、何が嬉しいかというと

  • パスに補完が効く(うれしい!)
  • 返り値の型を間違えない(うれしい!)

このメソッドを型定義ファイル郡から生成してくれるツールがaspidaです。

api定義ファイルを作る

定義ファイルの書式

  • Methods
    • メソッド(get,post,patch,etc)
      • query
      • reqHeaders
      • reqBody
      • reqFormat (reqBodyの型)
      • resBody

reqBody

interfaceとして渡すことができるほか、次の型を指定することができます:

  • ArrayBuffer
  • Blob
  • string

このどれか指定するとこの型のデータをそのまま送ることができます。

reqFormat

次の型を指定することができます:

  • ArrayBuffer
  • Blob
  • string
  • FormData

指定があるとjsonのかわりにこの形式でエンコードしてくれます。

よく使うinterfaceを別ファイルに置いておきたい

src/createTemplateValues.ts
if (file.startsWith('$') || file.startsWith('@')) return

とあるように、$@で始まるファイルは無視されるため、@types.tsとかを作るといいです。
生成されたファイルではimportしているだけなので問題なく利用できます。

ファイルをpostしたい

aspidaは奥のXHRのライブラリにデータを受け流すだけなので、File型を利用すればよいです。

パスパラメータの型を指定

_id@number.tsといったファイル名にすることで型をnumberに制限できることはreadmeに書かれていますが、この他に自作型を使用することもできます。
大文字始まりの型(非プリミティブ型?)を指定することで、その型を使用できます。
この場合、定義はapis/($api.tsと同ディレクトリ)に@types.tsを作成しexportする必要があります。
また、型チェックが行われていませんが、文字列の形にすることができる必要があるようです。

ビルドする

コマンドライン引数

aspidaコマンドでは--buildのほか--version--watchが引数として有効です。
watchではファイル群を監視して更新があるたび自動でビルドを行ってくれます。

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?