ForkTsCheckerWebpackPluginOptions.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  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/TypeScriptReporterOptions"
  11. },
  12. "eslint": {
  13. "$ref": "#/definitions/EsLintReporterOptions"
  14. },
  15. "formatter": {
  16. "$ref": "#/definitions/FormatterOptions"
  17. },
  18. "issue": {
  19. "$ref": "#/definitions/IssueOptions"
  20. },
  21. "logger": {
  22. "$ref": "#/definitions/LoggerOptions"
  23. }
  24. },
  25. "additionalProperties": false,
  26. "definitions": {
  27. "Formatter": {
  28. "instanceof": "Function"
  29. },
  30. "ComplexFormatterPreferences": {
  31. "type": "object",
  32. "properties": {
  33. "type": {
  34. "$ref": "#/definitions/FormatterType"
  35. },
  36. "options": {
  37. "type": "object",
  38. "additionalProperties": true
  39. }
  40. },
  41. "required": ["type"]
  42. },
  43. "FormatterType": {
  44. "type": "string",
  45. "enum": ["basic", "codeframe"]
  46. },
  47. "IssueMatch": {
  48. "type": "object",
  49. "properties": {
  50. "origin": {
  51. "type": "string",
  52. "enum": ["typescript", "eslint"]
  53. },
  54. "severity": {
  55. "type": "string",
  56. "enum": ["error", "warning"]
  57. },
  58. "code": {
  59. "type": "string"
  60. },
  61. "file": {
  62. "type": "string"
  63. }
  64. }
  65. },
  66. "IssuePredicate": {
  67. "instanceof": "Function"
  68. },
  69. "IssuePredicateOption": {
  70. "oneOf": [
  71. {
  72. "$ref": "#/definitions/IssuePredicate"
  73. },
  74. {
  75. "$ref": "#/definitions/IssueMatch"
  76. },
  77. {
  78. "type": "array",
  79. "items": {
  80. "oneOf": [
  81. {
  82. "$ref": "#/definitions/IssuePredicate"
  83. },
  84. {
  85. "$ref": "#/definitions/IssueMatch"
  86. }
  87. ]
  88. }
  89. }
  90. ]
  91. },
  92. "LoggerType": {
  93. "type": "string",
  94. "enum": ["console", "webpack-infrastructure", "silent"]
  95. },
  96. "Logger": {
  97. "type": "object",
  98. "properties": {
  99. "error": {
  100. "instanceof": "Function"
  101. },
  102. "info": {
  103. "instanceof": "Function"
  104. },
  105. "log": {
  106. "instanceof": "Function"
  107. }
  108. }
  109. },
  110. "TypeScriptReporterOptions": {
  111. "oneOf": [
  112. {
  113. "type": "boolean",
  114. "description": "Enable TypeScript reporter."
  115. },
  116. {
  117. "type": "object",
  118. "properties": {
  119. "enabled": {
  120. "type": "boolean",
  121. "description": "Enable TypeScript reporter."
  122. },
  123. "memoryLimit": {
  124. "type": "number",
  125. "description": "Memory limit for TypeScript reporter process."
  126. },
  127. "configFile": {
  128. "type": "string",
  129. "description": "Path to tsconfig.json. By default plugin uses context or process.cwd() to localize tsconfig.json file."
  130. },
  131. "context": {
  132. "type": "string",
  133. "description": "The base path for finding files specified in the tsconfig.json. Same as context option from the ts-loader."
  134. },
  135. "build": {
  136. "type": "boolean",
  137. "description": "The equivalent of the `--build` flag from the `tsc`."
  138. },
  139. "mode": {
  140. "type": "string",
  141. "enum": ["readonly", "write-tsbuildinfo", "write-dts", "write-references"],
  142. "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"
  143. },
  144. "compilerOptions": {
  145. "type": "object",
  146. "description": "Custom compilerOptions to be passed to the TypeScript compiler.",
  147. "additionalProperties": true
  148. },
  149. "diagnosticOptions": {
  150. "type": "object",
  151. "description": "Types of diagnostics to be reported.",
  152. "properties": {
  153. "syntactic": {
  154. "type": "boolean"
  155. },
  156. "semantic": {
  157. "type": "boolean"
  158. },
  159. "declaration": {
  160. "type": "boolean"
  161. },
  162. "global": {
  163. "type": "boolean"
  164. }
  165. }
  166. },
  167. "extensions": {
  168. "type": "object",
  169. "properties": {
  170. "vue": {
  171. "$ref": "#/definitions/TypeScriptVueExtensionOptions"
  172. }
  173. }
  174. },
  175. "profile": {
  176. "type": "boolean",
  177. "description": "Measures and prints timings related to the TypeScript performance."
  178. },
  179. "typescriptPath": {
  180. "type": "string",
  181. "description": "If supplied this is a custom path where TypeScript can be found."
  182. }
  183. }
  184. }
  185. ]
  186. },
  187. "TypeScriptVueExtensionOptions": {
  188. "oneOf": [
  189. {
  190. "type": "boolean",
  191. "description": "Enable TypeScript Vue extension."
  192. },
  193. {
  194. "type": "object",
  195. "properties": {
  196. "enabled": {
  197. "type": "boolean",
  198. "description": "Enable TypeScript Vue extension."
  199. },
  200. "compiler": {
  201. "type": "string",
  202. "description": "Custom vue-template-compiler package"
  203. }
  204. }
  205. }
  206. ]
  207. },
  208. "EsLintReporterOptions": {
  209. "type": "object",
  210. "properties": {
  211. "files": {
  212. "oneOf": [
  213. {
  214. "type": "array",
  215. "items": {
  216. "type": "string"
  217. },
  218. "minItems": 1,
  219. "uniqueItems": true
  220. },
  221. {
  222. "type": "string"
  223. }
  224. ],
  225. "description": "List of glob patterns or files to be linted."
  226. },
  227. "enabled": {
  228. "type": "boolean",
  229. "description": "Enable EsLint reporter."
  230. },
  231. "memoryLimit": {
  232. "type": "number",
  233. "description": "Memory limit for EsLint reporter process."
  234. },
  235. "options": {
  236. "type": "object",
  237. "description": "Custom options to be passed to the EsLint engine.",
  238. "additionalProperties": true
  239. }
  240. },
  241. "required": ["files"]
  242. },
  243. "FormatterOptions": {
  244. "oneOf": [
  245. {
  246. "$ref": "#/definitions/FormatterType"
  247. },
  248. {
  249. "$ref": "#/definitions/ComplexFormatterPreferences"
  250. },
  251. {
  252. "$ref": "#/definitions/Formatter"
  253. }
  254. ]
  255. },
  256. "IssueOptions": {
  257. "type": "object",
  258. "properties": {
  259. "include": {
  260. "$ref": "#/definitions/IssuePredicateOption"
  261. },
  262. "exclude": {
  263. "$ref": "#/definitions/IssuePredicateOption"
  264. }
  265. }
  266. },
  267. "LoggerOptions": {
  268. "type": "object",
  269. "properties": {
  270. "infrastructure": {
  271. "oneOf": [
  272. {
  273. "$ref": "#/definitions/LoggerType"
  274. },
  275. {
  276. "$ref": "#/definitions/Logger"
  277. }
  278. ]
  279. },
  280. "issues": {
  281. "oneOf": [
  282. {
  283. "$ref": "#/definitions/LoggerType"
  284. },
  285. {
  286. "$ref": "#/definitions/Logger"
  287. }
  288. ]
  289. },
  290. "devServer": {
  291. "type": "boolean",
  292. "description": "Enable reporting to Webpack Dev Server."
  293. }
  294. }
  295. }
  296. }
  297. }