{
  "$schema": "https://json.schemastore.org/tsconfig",
  "display": "@nozomiishii/tsconfig/tsconfig.nextjs.json",
  "extends": "./tsconfig.json",

  "compilerOptions": {
    // ----------------------------------------------------------------
    // Transpiling
    // ----------------------------------------------------------------
    // tsconfig.tsbuildinfoを生成して差分コンパイルにより時間短縮するか
    "incremental": true,

    // TSC以外でTranspileする場合
    "moduleResolution": "Bundler",
    "module": "ESNext",
    "noEmit": true,

    // ----------------------------------------------------------------
    // JSX
    // ----------------------------------------------------------------
    // tsxファイルの変換方法。preserveは.jsファイルに変換せずにそのまま.jsxを出力する
    // Nextjs使う場合はpreserveのままが良い
    "jsx": "preserve",

    // ----------------------------------------------------------------
    // Libs
    // ----------------------------------------------------------------
    // TypeScript 6.0で`dom.iterable`は`dom`にマージ予定のため指定しない
    // https://gist.github.com/privatenumber/3d2e80da28f84ee30b77d53e1693378f
    "lib": ["dom", "ESNext"],

    // ----------------------------------------------------------------
    // plugins
    // ----------------------------------------------------------------
    "plugins": [
      {
        "name": "next"
      }
    ]
  }
}
