UNPKG

ddl-manager

Version:

store postgres procedures and triggers in files

50 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findMinimalRoute = void 0; function findMinimalRoute(params) { const allRoutes = []; findAllRoutes({ graph: params.graph, start: params.start, end: params.end, allRoutes, prevRoute: [] }); let minimalRoute = allRoutes[0]; for (let i = 1, n = allRoutes.length; i < n; i++) { const route = allRoutes[i]; if (route.length < minimalRoute.length) { minimalRoute = route; } } return minimalRoute; } exports.findMinimalRoute = findMinimalRoute; function findAllRoutes(params) { const currentRoute = [...params.prevRoute, params.start]; if (params.start === params.end) { params.allRoutes.push(currentRoute); return; } for (const points of params.graph) { const lineHasStart = points.includes(params.start); if (!lineHasStart) { continue; } const nextPoints = points.filter(point => point !== params.start); for (const nextPoint of nextPoints) { const pointExistsInCurrentRoute = currentRoute.includes(nextPoint); if (pointExistsInCurrentRoute) { continue; } findAllRoutes({ graph: params.graph, start: nextPoint, end: params.end, allRoutes: params.allRoutes, prevRoute: currentRoute }); } } } //# sourceMappingURL=findMinimalRoute.js.map