先月ぐらいからユーザーエージェント文字列をみて、端末の判別をしはじめました。 AndroidとかiPadとかiPhoneとか特定の文字列が含まれるかだけチェックしています。
ユーザーエージェント文字列を扱うAPIは、汎用的な設計ができるものなのでしょうか? かなりユースケースに依存するので、汎用化できなさそうに思えます。 npmパッケージを調べてみました。
ua-parser-js - npm
ユーザーエージェント文字列をパースしてオブジェクトにしたものが取れます。 結果がファジーというか、オブジェクトのどのパラメータにどの文字列が入っているか知らないと使えなさそうです。 ユーザーエージェント文字列自体がファジーなので、まあ、そうなりますよね。
Navigator.userAgentData - Web APIs | MDN のAPIも似た感じなので、うーん、まあ、そうですよね。
も、似たようなAPIです。
universal-user-agent - npm
Nodeでエラーが起きなくするためのラッパーのようです。 ユーザーエージェント文字列をつかいやすくAPIでは、なさそうです。
https://www.npmjs.com/package/user-agents
ユーザーエージェント情報をランダム生成します。 テスト用でしょうか? 今回は関係なさそうです。
@aws-sdk/util-user-agent-browser - npm
aws-sdkのサブパッケージで直接使うものではないようです。 こういうのも親パッケージが人気であれば、上位に来てしまいますね。
まとめ
汎用化するとユースケースが薄まって、単にパーサーになってしまうようです。