UNPKG

matterbridge-roborock-vacuum-plugin

Version:
24 lines 1.24 kB
import { baseCleanModeConfigs } from '../behaviors/roborock.vacuum/core/cleanModeConfig/index.js'; import { getAllModesForDevice, hasSmartPlan } from '../behaviors/roborock.vacuum/core/deviceCapabilityRegistry.js'; import { createDefaultModeResolver, createSmartModeResolver, } from '../behaviors/roborock.vacuum/core/modeResolver.js'; const defaultModeResolver = createDefaultModeResolver(baseCleanModeConfigs); const resolverCache = new Map(); /** * Get the appropriate clean mode resolver based on device model capabilities. * Resolvers are cached per model+featureSet combination for efficiency. */ export function getCleanModeResolver(model, forceRunAtDefault, featureSet, newFeatureSet) { if (forceRunAtDefault) { return defaultModeResolver; } const key = `${model}|${featureSet ?? ''}|${newFeatureSet ?? ''}`; if (!resolverCache.has(key)) { const modes = getAllModesForDevice(model, featureSet, newFeatureSet); const resolver = hasSmartPlan(model, featureSet, newFeatureSet) ? createSmartModeResolver(modes) : createDefaultModeResolver(modes); resolverCache.set(key, resolver); } return resolverCache.get(key); } //# sourceMappingURL=runtimeHelper.js.map