{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "SPFx Fast Serve configuration",
  "description": "Defines cli and serve configuration structure",
  "type": "object",
  "properties": {
    "cli": {
      "type": "object",
      "description": "Contains spfx-fast-serve CLI related settings. If you change the spfx-fast-serve cli properties in config.json, you should run spfx-fast-serve again (without parameters) so that it updates your project according to a new configuration",
      "properties": {
        "isLibraryComponent": {
          "type": "boolean"
        },
        "port": {
          "type": "integer"
        }
      },
      "required": [
        "isLibraryComponent"
      ]
    },
    "serve": {
      "type": "object",
      "description": "Contains serve specific properties. You can change these settings and see the immediate effect after running 'npm run serve'",
      "properties": {
        "open": {
          "type": "boolean",
          "description": "[Obsolete in SPFx 1.13+] Whether to open a browser after the starting serve. You can configure opening url by using 'openUrl' property"
        },
        "openUrl": {
          "type": "string",
          "description": "The url, which will be opened after the serve."
        },
        "fullScreenErrors": {
          "type": "boolean",
          "description": "Whether to show errors with a full-screen overlay on UI or not (only in console)"
        },
        "loggingLevel": {
          "type": "string",
          "enum": [
            "minimal",
            "normal",
            "detailed"
          ]
        },
        "hotRefresh": {
          "type": "boolean",
          "description": "[SPFx 1.12+] Enables Hot Module Replacement (HMR). This feature currently is experimental. Read more https://github.com/s-KaiNet/spfx-fast-serve#configuration-options"
        },
        "eslint": {
          "type": "boolean",
          "description": "[SPFx 1.13+] Enables eslint for the project. Read more https://github.com/s-KaiNet/spfx-fast-serve#configuration-options"
        },
        "reactProfiling": {
          "type": "boolean",
          "description": "[SPFx 1.13+] Enables react profiling mode. You can profile SPFx solution using React Chromium extension"
        },
        "containers": {
          "type": "boolean",
          "description": "[SPFx 1.13+] By default fast-serve automatically detects containerized environment (like Docker) and applies needed configuration. But if it doesn't work for you, you can explicitly disable or enable support for containers using this option."
        }
      }
    }
  },
  "required": [
    "cli"
  ]
}
