firebase の設定ファイルの検証や補完ができるツールを作った

thumbnail

この記事は sadnessOjisan Advent Calendar 2021 5 日目の記事です。

「firebase の設定ファイルに何を書いたら良いか分からない」、「firebase.json と .firebaserc ってどっちがどっちだっけ」とよく悩むので、それを解決するライブラリを作りました。

それが firebase-config-type-definition です。

FYI: https://github.com/sadnessOjisan/firebase-config-type-definition

使い方

設定ファイルに型注釈をつけるとどこが間違っているかを教えてくれたり、補完ができるようになります。

import { Firebaserc } from "firebase-config-type-definition";
const json: Firebaserc = {
  hosting: [
    {
      target: "hoge",
      public: "packages/lib/hoge",
      ignore: ["firebase.json", "**/.*", "**/node_modules/**"],
    },
    {
      target: "fuga",
      public: "packages/fuga/public",
      ignore: ["firebase.json", "**/.*", "**/node_modules/**"],
    },
  ],
};

現実には設定ファイルは TS ファイルではないので、それをオンラインで簡単に試せるよう CodeSandbox にチェックできる環境を用意しました。

仕組み

.firebaserc に関しては手動で型定義ファイルを書きましたが、 firebase-config.json は本家が JSON Schema を持っているので、そこから生成しました。

FYI: https://github.com/firebase/firebase-tools/blob/master/schema/firebase-config.json

このような schema があるので、あとは quicktype などを通せば TS の定義を生成できるというわけです。