--- /dev/null
+"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
\ No newline at end of file