{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/typewiz-json/latest.json",
  "title": "Typewiz configuration schema",
  "x-lintel": {
    "source": "https://www.schemastore.org/typewiz.json",
    "sourceSha256": "04586001bf4bfad8f17762a9d1f6160999a8127ff23b3ab96101c211cbcfa5c9",
    "fileMatch": [
      "typewiz.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "common": {
      "type": "object",
      "properties": {
        "rootDir": {
          "type": "string",
          "description": "If given, all the file paths in the collected type info will be resolved relative to this directory."
        },
        "tsConfig": {
          "type": "string",
          "description": "Path to your project's tsconfig file. This is required for several other options like implicit this instrumentation and type inference using static analysis."
        }
      }
    },
    "instrument": {
      "type": "object",
      "properties": {
        "instrumentCallExpressions": {
          "type": "boolean",
          "description": "Try to find even more types by combining static analysis with the runtime analysis. TypeWiz will try to use TypeScript's inferred types when determining the type of a function argument.",
          "default": false
        },
        "instrumentImplicitThis": {
          "type": "boolean",
          "description": "Find type of this in non-class member functions. Requires common.tsConfig to be set",
          "default": false
        },
        "skipTwizDeclarations": {
          "type": "boolean",
          "description": "Don't add a declaration of $_$twiz to instrumented files.",
          "default": false
        }
      }
    },
    "applyTypes": {
      "type": "object",
      "properties": {
        "prefix": {
          "type": "string",
          "description": "A prefix that will be added in front of each type applied. You can use a javascript comment to mark the automatically added types. The prefix will be added after the colon character, just before the actual type."
        }
      }
    }
  },
  "additionalProperties": false
}
