| "use strict"; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| exports.getParserServices = void 0; |
| const ERROR_MESSAGE = 'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.'; |
| /** |
| * Try to retrieve typescript parser service from context |
| */ |
| function getParserServices(context, allowWithoutFullTypeInformation = false) { |
| var _a; |
| // backwards compatibility check |
| // old versions of the parser would not return any parserServices unless parserOptions.project was set |
| if (!context.parserServices || |
| !context.parserServices.program || |
| !context.parserServices.esTreeNodeToTSNodeMap || |
| !context.parserServices.tsNodeToESTreeNodeMap) { |
| throw new Error(ERROR_MESSAGE); |
| } |
| const hasFullTypeInformation = (_a = context.parserServices.hasFullTypeInformation) !== null && _a !== void 0 ? _a : |
| /* backwards compatible */ true; |
| // if a rule requires full type information, then hard fail if it doesn't exist |
| // this forces the user to supply parserOptions.project |
| if (!hasFullTypeInformation && !allowWithoutFullTypeInformation) { |
| throw new Error(ERROR_MESSAGE); |
| } |
| return context.parserServices; |
| } |
| exports.getParserServices = getParserServices; |
| //# sourceMappingURL=getParserServices.js.map |