matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
22 lines • 1.06 kB
JavaScript
import { baseCleanModeConfigs } from '../behaviors/roborock.vacuum/core/cleanModeConfig.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 for efficiency.
*/
export function getCleanModeResolver(model, forceRunAtDefault) {
if (forceRunAtDefault) {
return defaultModeResolver;
}
const key = model;
if (!resolverCache.has(key)) {
const modes = getAllModesForDevice(key);
const resolver = hasSmartPlan(key) ? createSmartModeResolver(modes) : createDefaultModeResolver(modes);
resolverCache.set(key, resolver);
}
return resolverCache.get(key);
}
//# sourceMappingURL=runtimeHelper.js.map