1 | {
|
2 | "$schema": "http://json-schema.org/draft-07/schema#",
|
3 | "type": "object",
|
4 | "properties": {
|
5 | "async": {
|
6 | "type": "boolean",
|
7 | "description": "When true, plugin will not block compilation to finish issues checking"
|
8 | },
|
9 | "typescript": {
|
10 | "$ref": "#/definitions/TypeScriptOptions"
|
11 | },
|
12 | "formatter": {
|
13 | "$ref": "#/definitions/FormatterOptions"
|
14 | },
|
15 | "issue": {
|
16 | "$ref": "#/definitions/IssueOptions"
|
17 | },
|
18 | "logger": {
|
19 | "$ref": "#/definitions/Logger"
|
20 | },
|
21 | "devServer": {
|
22 | "type": "boolean",
|
23 | "description": "Enable reporting to Webpack Dev Server."
|
24 | }
|
25 | },
|
26 | "additionalProperties": false,
|
27 | "definitions": {
|
28 | "Formatter": {
|
29 | "instanceof": "Function"
|
30 | },
|
31 | "ComplexFormatterPreferences": {
|
32 | "type": "object",
|
33 | "properties": {
|
34 | "type": {
|
35 | "$ref": "#/definitions/FormatterType"
|
36 | },
|
37 | "options": {
|
38 | "type": "object",
|
39 | "additionalProperties": true
|
40 | }
|
41 | },
|
42 | "required": ["type"]
|
43 | },
|
44 | "FormatterType": {
|
45 | "type": "string",
|
46 | "enum": ["basic", "codeframe"]
|
47 | },
|
48 | "IssueMatch": {
|
49 | "type": "object",
|
50 | "properties": {
|
51 | "severity": {
|
52 | "type": "string",
|
53 | "enum": ["error", "warning"]
|
54 | },
|
55 | "code": {
|
56 | "type": "string"
|
57 | },
|
58 | "file": {
|
59 | "type": "string"
|
60 | }
|
61 | }
|
62 | },
|
63 | "IssuePredicate": {
|
64 | "instanceof": "Function"
|
65 | },
|
66 | "IssuePredicateOption": {
|
67 | "oneOf": [
|
68 | {
|
69 | "$ref": "#/definitions/IssuePredicate"
|
70 | },
|
71 | {
|
72 | "$ref": "#/definitions/IssueMatch"
|
73 | },
|
74 | {
|
75 | "type": "array",
|
76 | "items": {
|
77 | "oneOf": [
|
78 | {
|
79 | "$ref": "#/definitions/IssuePredicate"
|
80 | },
|
81 | {
|
82 | "$ref": "#/definitions/IssueMatch"
|
83 | }
|
84 | ]
|
85 | }
|
86 | }
|
87 | ]
|
88 | },
|
89 | "Logger": {
|
90 | "oneOf": [
|
91 | {
|
92 | "type": "object",
|
93 | "properties": {
|
94 | "error": {
|
95 | "instanceof": "Function"
|
96 | },
|
97 | "log": {
|
98 | "instanceof": "Function"
|
99 | }
|
100 | }
|
101 | },
|
102 | {
|
103 | "type": "string",
|
104 | "enum": ["webpack-infrastructure"]
|
105 | }
|
106 | ]
|
107 | },
|
108 | "TypeScriptOptions": {
|
109 | "type": "object",
|
110 | "properties": {
|
111 | "memoryLimit": {
|
112 | "type": "number",
|
113 | "description": "Memory limit for TypeScript reporter process."
|
114 | },
|
115 | "configFile": {
|
116 | "type": "string",
|
117 | "description": "Path to tsconfig.json. By default plugin uses context or process.cwd() to localize tsconfig.json file."
|
118 | },
|
119 | "context": {
|
120 | "type": "string",
|
121 | "description": "The base path for finding files specified in the tsconfig.json. Same as context option from the ts-loader."
|
122 | },
|
123 | "build": {
|
124 | "type": "boolean",
|
125 | "description": "The equivalent of the `--build` flag from the `tsc`."
|
126 | },
|
127 | "mode": {
|
128 | "type": "string",
|
129 | "enum": ["readonly", "write-tsbuildinfo", "write-dts", "write-references"],
|
130 | "description": "`readonly` keeps all emitted files in memory, `write-tsbuildinfo` which writes only .tsbuildinfo files, `write-dts` writes .tsbuildinfo and type definition files, and `write-references` which writes both .tsbuildinfo and referenced projects output"
|
131 | },
|
132 | "compilerOptions": {
|
133 | "type": "object",
|
134 | "description": "Custom compilerOptions to be passed to the TypeScript compiler.",
|
135 | "additionalProperties": true
|
136 | },
|
137 | "diagnosticOptions": {
|
138 | "type": "object",
|
139 | "description": "Types of diagnostics to be reported.",
|
140 | "properties": {
|
141 | "syntactic": {
|
142 | "type": "boolean"
|
143 | },
|
144 | "semantic": {
|
145 | "type": "boolean"
|
146 | },
|
147 | "declaration": {
|
148 | "type": "boolean"
|
149 | },
|
150 | "global": {
|
151 | "type": "boolean"
|
152 | }
|
153 | }
|
154 | },
|
155 | "extensions": {
|
156 | "type": "object",
|
157 | "properties": {
|
158 | "vue": {
|
159 | "$ref": "#/definitions/TypeScriptVueExtensionOptions"
|
160 | }
|
161 | }
|
162 | },
|
163 | "profile": {
|
164 | "type": "boolean",
|
165 | "description": "Measures and prints timings related to the TypeScript performance."
|
166 | },
|
167 | "typescriptPath": {
|
168 | "type": "string",
|
169 | "description": "If supplied this is a custom path where TypeScript can be found."
|
170 | }
|
171 | }
|
172 | },
|
173 | "TypeScriptVueExtensionOptions": {
|
174 | "oneOf": [
|
175 | {
|
176 | "type": "boolean",
|
177 | "description": "Enable TypeScript Vue extension."
|
178 | },
|
179 | {
|
180 | "type": "object",
|
181 | "properties": {
|
182 | "enabled": {
|
183 | "type": "boolean",
|
184 | "description": "Enable TypeScript Vue extension."
|
185 | },
|
186 | "compiler": {
|
187 | "type": "string",
|
188 | "description": "Custom vue-template-compiler package"
|
189 | }
|
190 | }
|
191 | }
|
192 | ]
|
193 | },
|
194 | "FormatterOptions": {
|
195 | "oneOf": [
|
196 | {
|
197 | "$ref": "#/definitions/FormatterType"
|
198 | },
|
199 | {
|
200 | "$ref": "#/definitions/ComplexFormatterPreferences"
|
201 | },
|
202 | {
|
203 | "$ref": "#/definitions/Formatter"
|
204 | }
|
205 | ]
|
206 | },
|
207 | "IssueOptions": {
|
208 | "type": "object",
|
209 | "properties": {
|
210 | "include": {
|
211 | "$ref": "#/definitions/IssuePredicateOption"
|
212 | },
|
213 | "exclude": {
|
214 | "$ref": "#/definitions/IssuePredicateOption"
|
215 | }
|
216 | }
|
217 | }
|
218 | }
|
219 | }
|