summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2021-09-14 04:18:02 +0200
committerGitHub <noreply@github.com>2021-09-14 04:18:02 +0200
commit6e3c8a4b058b774b7eb9eebebe8532d04c6fc61e (patch)
tree14717dd05b2105462e01db9020905813bc14c97e
parent94c5cd7b2ce995a2ce9f58da706fc5ec6caf6c77 (diff)
chore: add JSON schema for configuration file (#12062)
-rw-r--r--cli/schemas/config-file.v1.json297
1 files changed, 297 insertions, 0 deletions
diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json
new file mode 100644
index 000000000..6cd33913a
--- /dev/null
+++ b/cli/schemas/config-file.v1.json
@@ -0,0 +1,297 @@
+{
+ "$id": "https://deno.land/schemas/config-file.v1.json",
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "description": "A JSON representation of a Deno configuration file.",
+ "required": [],
+ "title": "Deno configuration file Schema",
+ "type": "object",
+ "properties": {
+ "compilerOptions": {
+ "type": "object",
+ "description": "Instructs the TypeScript compiler how to compile .ts files.",
+ "properties": {
+ "allowJs": {
+ "description": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowJs"
+ },
+ "allowUnreachableCode": {
+ "description": "Disable error reporting for unreachable code.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Disable error reporting for unreachable code.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnreachableCode"
+ },
+ "allowUnusedLabels": {
+ "description": "Disable error reporting for unused labels.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Disable error reporting for unused labels.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnusedLabels"
+ },
+ "checkJs": {
+ "description": "Enable error reporting in type-checked JavaScript files.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Enable error reporting in type-checked JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#checkJs"
+ },
+ "experimentalDecorators": {
+ "description": "Enable experimental support for TC39 stage 2 draft decorators.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Enable experimental support for TC39 stage 2 draft decorators.\n\nSee more: https://www.typescriptlang.org/tsconfig#experimentalDecorators"
+ },
+ "jsx": {
+ "description": "Specify what JSX code is generated.",
+ "default": "react",
+ "enum": [
+ "preserve",
+ "react",
+ "react-jsx",
+ "react-jsxdev",
+ "react-native"
+ ]
+ },
+ "jsxFactory": {
+ "description": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'",
+ "type": "string",
+ "default": "React.createElement",
+ "markdownDescription": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFactory"
+ },
+ "jsxFragmentFactory": {
+ "description": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.",
+ "type": "string",
+ "default": "React.Fragment",
+ "markdownDescription": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFragmentFactory"
+ },
+ "keyofStringsOnly": {
+ "description": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.\n\nSee more: https://www.typescriptlang.org/tsconfig#keyofStringsOnly"
+ },
+ "lib": {
+ "description": "Specify a set of bundled library declaration files that describe the target runtime environment.",
+ "type": "array",
+ "uniqueItems": true,
+ "default": "deno.window",
+ "items": {
+ "type": "string"
+ },
+ "markdownDescription": "Specify a set of bundled library declaration files that describe the target runtime environment.\n\nSee more: https://www.typescriptlang.org/tsconfig#lib"
+ },
+ "noFallthroughCasesInSwitch": {
+ "description": "Enable error reporting for fallthrough cases in switch statements.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Enable error reporting for fallthrough cases in switch statements.\n\nSee more: https://www.typescriptlang.org/tsconfig#noFallthroughCasesInSwitch"
+ },
+ "noImplicitAny": {
+ "description": "Enable error reporting for expressions and declarations with an implied `any` type..",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Enable error reporting for expressions and declarations with an implied `any` type..\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitAny"
+ },
+ "noImplicitReturns": {
+ "description": "Enable error reporting for codepaths that do not explicitly return in a function.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Enable error reporting for codepaths that do not explicitly return in a function.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitReturns"
+ },
+ "noImplicitThis": {
+ "description": "Enable error reporting when `this` is given the type `any`.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Enable error reporting when `this` is given the type `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitThis"
+ },
+ "noImplicitUseStrict": {
+ "description": "Disable adding 'use strict' directives in emitted JavaScript files.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Disable adding 'use strict' directives in emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitUseStrict"
+ },
+ "noStrictGenericChecks": {
+ "description": "Disable strict checking of generic signatures in function types.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Disable strict checking of generic signatures in function types.\n\nSee more: https://www.typescriptlang.org/tsconfig#noStrictGenericChecks"
+ },
+ "noUnusedLocals": {
+ "description": "Enable error reporting when a local variables aren't read.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Enable error reporting when a local variables aren't read.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedLocals"
+ },
+ "noUnusedParameters": {
+ "description": "Raise an error when a function parameter isn't read",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Raise an error when a function parameter isn't read\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedParameters"
+ },
+ "noUncheckedIndexedAccess": {
+ "description": "Add `undefined` to a type when accessed using an index.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Add `undefined` to a type when accessed using an index.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess"
+ },
+ "strict": {
+ "description": "Enable all strict type checking options.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Enable all strict type checking options.\n\nSee more: https://www.typescriptlang.org/tsconfig#strict"
+ },
+ "strictBindCallApply": {
+ "description": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictBindCallApply"
+ },
+ "strictFunctionTypes": {
+ "description": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictFunctionTypes"
+ },
+ "strictPropertyInitialization": {
+ "description": "Check for class properties that are declared but not set in the constructor.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "Check for class properties that are declared but not set in the constructor.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictPropertyInitialization"
+ },
+ "strictNullChecks": {
+ "description": "When type checking, take into account `null` and `undefined`.",
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "When type checking, take into account `null` and `undefined`.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictNullChecks"
+ },
+ "suppressExcessPropertyErrors": {
+ "description": "Disable reporting of excess property errors during the creation of object literals.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Disable reporting of excess property errors during the creation of object literals.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressExcessPropertyErrors"
+ },
+ "suppressImplicitAnyIndexErrors": {
+ "description": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.",
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressImplicitAnyIndexErrors"
+ }
+ }
+ },
+ "lint": {
+ "description": "Configuration for linter",
+ "type": "object",
+ "properties": {
+ "files": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "List of files or directories that will be linted.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "List of files or directories that will not be linted.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "rules": {
+ "type": "object",
+ "properties": {
+ "tags": {
+ "type": "array",
+ "description": "List of tag names that will be run. Empty list disables all tags and will only use rules from `iclude`.",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true
+ },
+ "exclude": {
+ "type": "array",
+ "description": "List of rule names that will be excluded from configured tag sets. If the same rule is in `include` it be run.",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true
+ },
+ "include": {
+ "type": "array",
+ "description": "List of rule names that will be run. Even if the same rule is in `exclude` it will be run.",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 0,
+ "uniqueItems": true
+ }
+ }
+ }
+ }
+ },
+ "fmt": {
+ "description": "Configuration for formatter",
+ "type": "object",
+ "properties": {
+ "files": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "List of files or directories that will be formatted.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "List of files or directories that will not be formatted.",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "options": {
+ "type": "object",
+ "properties": {
+ "useTabs": {
+ "description": "Whether to use tabs (true) or spaces (false) for indentation.",
+ "type": "boolean",
+ "default": false
+ },
+ "lineWidth": {
+ "description": "The width of a line the printer will try to stay under. Note that the printer may exceed this width in certain cases.",
+ "type": "number",
+ "default": 80
+ },
+ "indentWidth": {
+ "description": "The number of characters for an indent.",
+ "type": "number",
+ "default": 2
+ },
+ "singleQuote": {
+ "type": "boolean",
+ "description": "Whether to use single quote (true) or double quote (false) for quotation.",
+ "default": false
+ },
+ "proseWrap": {
+ "description": "Define how prose should be wrapped in Markdown files.",
+ "default": "always",
+ "enum": [
+ "always",
+ "never",
+ "preserve"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}