UNPKG

@geoapify/route-planner-sdk

Version:

TypeScript SDK for the Geoapify Route Planner API. Supports route optimization, delivery planning, and timeline visualization in browser and Node.js

33 lines (32 loc) 1.43 kB
import { REOPTIMIZE, PRESERVE_ORDER, UnknownStrategy } from "../../../../models"; import { JobAssignReoptimizeStrategy } from "./job-assign-reoptimize-strategy"; import { JobAssignPreserveOrderStrategy } from "./job-assign-preserve-order-strategy"; import { JobRemoveReoptimizeStrategy } from "./job-remove-reoptimize-strategy"; import { JobRemovePreserveOrderStrategy } from "./job-remove-preserve-order-strategy"; /** * Factory for creating job-related strategies */ export class JobStrategyFactory { static createAssignStrategy(strategy) { const strategyInstance = this.assignStrategies.get(strategy); if (!strategyInstance) { throw new UnknownStrategy(`Unknown assign strategy: ${strategy}`, strategy, 'assign'); } return strategyInstance; } static createRemoveStrategy(strategy) { const strategyInstance = this.removeStrategies.get(strategy); if (!strategyInstance) { throw new UnknownStrategy(`Unknown remove strategy: ${strategy}`, strategy, 'remove'); } return strategyInstance; } } JobStrategyFactory.assignStrategies = new Map([ [REOPTIMIZE, new JobAssignReoptimizeStrategy()], [PRESERVE_ORDER, new JobAssignPreserveOrderStrategy()], ]); JobStrategyFactory.removeStrategies = new Map([ [REOPTIMIZE, new JobRemoveReoptimizeStrategy()], [PRESERVE_ORDER, new JobRemovePreserveOrderStrategy()], ]);