UNPKG

@pmouli/isy-matter-server

Version:

Service to expose an ISY device as a Matter Border router

36 lines 1.65 kB
var RequirementType; (function (RequirementType) { RequirementType[RequirementType["Client"] = 1] = "Client"; RequirementType[RequirementType["Server"] = 2] = "Server"; RequirementType[RequirementType["Optional"] = 4] = "Optional"; RequirementType[RequirementType["Mandatory"] = 8] = "Mandatory"; RequirementType[RequirementType["All"] = 15] = "All"; /*AllServer = Server | Optional | Mandatory, AllClient = Client | Optional | Mandatory, AllOptional = Server | Client | Optional, AllMandatory = Server | Client | Mandatory*/ })(RequirementType || (RequirementType = {})); function hasFlag(value, flag) { return (value & flag) === flag; } export function getRequiredBehaviors(deviceType, requirements = RequirementType.All) { let behaviors = {}; if (hasFlag(requirements, RequirementType.Client)) { if (hasFlag(requirements, RequirementType.Mandatory)) { behaviors = { ...behaviors, ...(deviceType.requirements.client?.mandatory ?? {}) }; } if (hasFlag(requirements, RequirementType.Optional)) { behaviors = { ...behaviors, ...(deviceType.requirements.client?.optional ?? {}) }; } } if (hasFlag(requirements, RequirementType.Server)) { if (hasFlag(requirements, RequirementType.Mandatory)) { behaviors = { ...behaviors, ...(deviceType.requirements.server?.mandatory ?? {}) }; } if (hasFlag(requirements, RequirementType.Optional)) { behaviors = { ...behaviors, ...(deviceType.requirements.server?.optional ?? {}) }; } } return behaviors; } //# sourceMappingURL=Utils.js.map