UNPKG

@autobe/agent

Version:

AI backend server code generator

36 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPrerequisites = void 0; const utils_1 = require("@autobe/utils"); const tstl_1 = require("tstl"); const getPrerequisites = (props) => { const visited = new Set(); const result = new tstl_1.HashMap(utils_1.AutoBeOpenApiEndpointComparator.hashCode, utils_1.AutoBeOpenApiEndpointComparator.equals); const traverse = (endpoint) => { const key = `${endpoint.method}:${endpoint.path}`; // prevent circular structure: skip visited endpoint if (visited.has(key)) return; visited.add(key); const operation = props.document.operations.find((op) => op.method === endpoint.method && op.path === endpoint.path); if (operation === undefined) return; // add current operation's prerequisites for (const prerequisite of operation.prerequisites) { // check if already in result to avoid duplicates const exists = result.has(prerequisite.endpoint); if (!exists) { result.set(prerequisite.endpoint, [prerequisite]); } // recursively traverse prerequisite's prerequisites traverse(prerequisite.endpoint); } }; traverse(props.endpoint); return result .toJSON() .map((it) => it.second) .flat(); }; exports.getPrerequisites = getPrerequisites; //# sourceMappingURL=getPrerequisites.js.map