eslint-plugin-tsc
Version:
Wraps a TypeScript compiler checks
58 lines (57 loc) • 1.91 kB
JavaScript
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,
},
},
},
],
},
};
;