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.51 kB
import { REOPTIMIZE, PRESERVE_ORDER, UnknownStrategy } from "../../../../models"; import { ShipmentAssignReoptimizeStrategy } from "./shipment-assign-reoptimize-strategy"; import { ShipmentAssignPreserveOrderStrategy } from "./shipment-assign-preserve-order-strategy"; import { ShipmentRemoveReoptimizeStrategy } from "./shipment-remove-reoptimize-strategy"; import { ShipmentRemovePreserveOrderStrategy } from "./shipment-remove-preserve-order-strategy"; /** * Factory for creating shipment-related strategies */ export class ShipmentStrategyFactory { 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; } } ShipmentStrategyFactory.assignStrategies = new Map([ [REOPTIMIZE, new ShipmentAssignReoptimizeStrategy()], [PRESERVE_ORDER, new ShipmentAssignPreserveOrderStrategy()], ]); ShipmentStrategyFactory.removeStrategies = new Map([ [REOPTIMIZE, new ShipmentRemoveReoptimizeStrategy()], [PRESERVE_ORDER, new ShipmentRemovePreserveOrderStrategy()], ]);