UNPKG

eslint-plugin-tsc

Version:
58 lines (57 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.config = exports.create = void 0; const tslib_1 = require("tslib"); const ts = tslib_1.__importStar(require("typescript")); const typescript_service_1 = require("typescript-service"); let service; function create(context) { const { compilerOptions, configFile } = context.options[0] || { compilerOptions: {}, configFile: undefined, }; if (!service) { service = typescript_service_1.createService({ compilerOptions, configFile }); } const fileName = context.getFilename(); const soureText = context.getSourceCode().text; const diagnostics = service.getDiagnostics(fileName, soureText); diagnostics.forEach((diagnostic) => { if (diagnostic.file && diagnostic.start !== undefined) { const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); context.report({ message, loc: { line: line + 1, column: character }, messageId: undefined, }); } }); return {}; } exports.create = create; exports.config = { create, meta: { docs: { description: 'Wraps a TypeScript compiler checks', category: 'TypeScript', }, schema: [ { type: 'object', additionalProperties: false, required: ['configFile'], properties: { configFile: { type: 'string', }, compilerOptions: { type: 'object', additionalProperties: true, }, }, }, ], }, };