@forge/lint

5.14.1-next.75.15.0-next.8
out/lint/linters/endpoint-linter/invoke-endpoint-linter.js
out/lint/linters/endpoint-linter/invoke-endpoint-linter.js
+39
Index: package/out/lint/linters/endpoint-linter/invoke-endpoint-linter.js
===================================================================
--- package/out/lint/linters/endpoint-linter/invoke-endpoint-linter.js
+++ package/out/lint/linters/endpoint-linter/invoke-endpoint-linter.js
@@ -0,0 +1,39 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.InvokeEndpointLinter = void 0;
+const tslib_1 = require("tslib");
+const base_linter_1 = tslib_1.__importDefault(require("../../base-linter"));
+const invoke_endpoint_interface_1 = require("./invoke-endpoint-interface");
+const invoke_endpoint_verifier_1 = require("./verifiers/invoke-endpoint-verifier");
+const invoke_endpoint_call_visitor_1 = require("./visitors/invoke-endpoint-call-visitor");
+class InvokeEndpointLinter extends base_linter_1.default {
+    manifest;
+    constructor(environment, manifest, logger) {
+        super(environment, logger);
+        this.manifest = manifest;
+    }
+    async bootstrap() {
+        this.nodeVisitors = [new invoke_endpoint_call_visitor_1.InvokeEndpointCallVisitor()];
+        this.verifiers = {
+            invokeEndpoint: new invoke_endpoint_verifier_1.InvokeEndpointVerifier(this.environment, this.manifest)
+        };
+    }
+    addLintCriteriaMatch(usage, filepath) {
+        const criteriaMatches = this.matches.get(filepath);
+        if (usage.type === invoke_endpoint_interface_1.InvokeEndpointTypes.DIRECT_CALL || usage.type === invoke_endpoint_interface_1.InvokeEndpointTypes.MEMBER_CALL) {
+            criteriaMatches.invokeEndpoint.invokeEndpointCalls.push(usage);
+        }
+        else if (usage.type === invoke_endpoint_interface_1.InvokeEndpointTypes.IMPORT_LIST) {
+            criteriaMatches.invokeEndpoint.imports.push(...usage.imports);
+        }
+    }
+    setupMatchesMap(filePath) {
+        this.matches.set(filePath, {
+            invokeEndpoint: {
+                invokeEndpointCalls: [],
+                imports: []
+            }
+        });
+    }
+}
+exports.InvokeEndpointLinter = InvokeEndpointLinter;